仕様, 設計が 甘くて 禿げた
はじめに
Gashoo inc. Engineer の しゅん(@shunn_93) | Twitterです~
GASHOO Inc. Advent Calendar 2017年12月18日 を飾ります。
前回引き続き 自身の1年の振り返りとともに
過去に 機能提案 → 実装 まで 行っていて , いろいろ 食い違っていたり, 自分の設計などが 甘くて, ハゲたときの お話です。
それから、今後 ハゲたくないという思いから , Gashooで 提案の際に 最低限 守っていることを お伝えできればなと思います。
2017年7月 ~ 9月
7月 他の言語を勉強する VPSを借りてみる マネジメント能力を求められるが ないことに気づく 新機能実装にあたり 無我夢中にキーボードを叩く
どちらかというと, これまで 自分がマネジメントされていたので、 誰かを マネジメントするということが できなさすぎて、自分 全然できないなと思う。
8月 仕様,設計の重要性を痛感 自身の成長を感じれない プロジェクトマネージメントをしてもらう
7月に ひたすら書いてたコードを全てやり直すことになり, ハゲる。
原因は, 仕様, 設計などなどの甘さ 設計に 時間をもっと割くべきだ という思考になる。
9月 同じ界隈のエンジニアを知り比べられている対象を知る レビュー会という定期ミーティングが行われるようになる PMがいているだけで, だいぶと助かるということを知る
なんだかんだ この時期で 8 - 9ヶ月間 エンジニアをやっていて、 すごい だとか 褒められたりしていたのですが、 自分ができるなんて 思ったことなかったのですが、 比較されている対象を知って ざっくりというと「あぁぁ」 となった。笑
提案の際に 最低限 守っていること
Gashooのように 少人数の組織で行っているからこそ、 こういう問題はしっかり気をつけたほうがいいと思います。
例えば,
ある日
提案者 ) こういう機能が欲しい!!!作って!!
実装者 ) よっしゃ作ろう!!!
...
...
...
実装者 ) よっしゃ できたで!!!
提案者 ) おぉ ええやん!! あ、ここの機能 こうできる??
実装者 ) えっ、あっ、は、はい。できるんですけど...
fin...
ってな感じの 悲しい結末になった経験が幾度とあります。
で、なにを していれば こういった フワフワした機能実装提案を 今の僕達で 防げるのか...と考えました。
考えた結果,
「 その機能に対して, 5W1Hをしっかりと言えるようにする 」
5W1H(ごだぶりゅーいちえいち)とは - コトバンク
これだけで 良いと思いました。
エンジニアじゃない人だと, あそこの処理をこうして、ここの処理でこのリクエストを...とか考えれないので、
「いつ(When)、どこで(Where)、だれが(Who)、なにを(What)、なぜ(Why)、どのように(How)」
これを 考えるだけで、提案する人も作る人も 幸せになります。
恐らく これくらいだと 誰でも できるはずです。
これがないと、「ほんまかぁぁ~~」となって 提案の提案です。
' ブレイン・ストーミングブレインストーミングとは - コトバンク ' のようなディスカッションの場では, バンバン 言いまくって良いかもしれませんが、ガチで提案するのなら, きちんと考えるべきであり, どうにかして作る方向にもっていくと思います。
そういった提案, 要望を伝えられてから, どう実現するのか, DBはどうするだとか, 正規化や マイクロなどなど の話は エンジニアの役割だと思っています。
5W1H提案を推奨する理由
いいね 機能を作って!!! と言われた場合 アナタはどう思い, なにをイメージしますか??
Twitter の いいね のような機能で いいねしたら 自分が いいね したツイートのリストが見れて... とイメージするのか
Facebook の いいね のような機能を イメージするのか, それとも Instagramのような いいね を イメージするのか...
人によって 様々だと思います。
こういった 共通認識の ズレを 最低限 解消できるのが 5W1H である。
例えば Gashooに いいね 機能を 実装するとしたら、(既にありますが...)
Gashooで (When) 作品の詳細画面で (Where) ユーザーさんが (Who) その作品に対して いいね できる。 (What) なぜなら、いいね されたら嬉しいし, いい作品には 良いと 伝えたいから(Why) 作品詳細画面で 作品を見終わった後に, いいね というボタンがあって押すだけで完了するようにする (How)
正直 これだけでもよい..w
こういう提案の始まり方をすれば、最低限の 情報を 共有してスタートなので、 次のステップにも 行きやすい。
いいねボタンの場所はどうする? デザインはどうする? いいね したあとは どうする? された側は? いいね したら、自分いいねした一覧って必要かな? ...etc
といったように どんどん 出て来る。
となると, 設計の イメージも 湧いてきたりする。
せっかく , 案を 出したのに, せっかく , 実装したのに , 使われなくなったり , なくなるのは 悲しいので 両者幸せになるためには、基本的なことではあるが、5W1H で 提案しましょう~~。
以上🙇
余談
前回の古川のアドベントカレンダー 見積もりは, あくまでも見積もり - GASHOO BLOG
過去のGASHOO Inc. アドベントカレンダーの記事はこちら adventar.org