こんにちは。
システムチームサブリーダー/プログラマーのNです。
入社して2年半になり、主に弊社サービスのデキテル・抱きしめ~るの開発を担当しています。
今年の前半は、こちらも弊社サービスのシナジーチャット新規開発も担当しました。
プログラマー歴は3年ほどで、38才からのスタートになるのでかなり珍しい部類に入るのかなと思います。
年齢が高いことで、考え方の部分で凝り固まったところも多くあり、考え方を変えるという部分で苦労をしました。
プログラムのことは、また別の機会に書くとして、今回はプログラマーが持つべき基本的な考えについて書きたいと思います。
5W1H
5W1Hというフレームワークはご存じでしょうか?
これは、
Why(だれが)
When(いつ)
Where(どこで)
What(なにを)
Why(なぜ)
How(どのように)
を指し示す言葉です。
私は、その言葉自体は知っていても内容自体を深く知りませんでした。
プログラマーには必要のないものとすら思っていました。
しかし、いざプログラマーとして働きだすと、このフレームワークの必要性を感じることが多々あることに気づきました。
いくら綺麗なコードを書こうが、派手な動きのプログラムを作ろうが、根本の部分、使う人が求めていなければそれは商品にはなりません。
単なる自己満足に過ぎず趣味の領域を超えられません。
シナジーデザインでは実装作業だけでなく、ヒアリングから仕様作成も同時にします。
5W1Hはそのヒアリング・仕様作成において効果的です。
ヒアリングはWhy(なぜ)から入る
なぜそれを作るのか
なぜ必要なのか
ヒアリングの段階で、まずWHYから入り、要望を形にします。
Whyの部分を明確にすると次にWhy(要件)が見えてきます。
What(要件)を固めると
->When(いつ使うのか)
->Who(誰が使うのか)
->Where(どこで使うのか)
->How(どのように使うのか)
と順番に明確にしていきます。
入社したばかりのときは、この5W1Hを深く考えることができませんでした。
どうしてもコードをどう書こうであるとか、プログラムのことを先に考えてしまい要望・要件を深く掘り下げて明確にすることができませんでした。
要望を満たしていないものを作ろうとしてることに自分で気づいていなかったんですね。
その状態で作業を続けると、最終的に的外れなものができてしまい手戻りになってしまいます。
ではそれを解決するにはどのようにすればいいのでしょうか。
相手への返答を「はい」だけで終わらせない
これは弊社代表にアドバイスをいただき、
「はい」だけで返答していたところを、その後にレスポンスを返すように強制をしました。
何でもいいので返すように癖付けていきました。
すると、相手が喋っている間に返す言葉を考えるようになり、自然と相手の言葉の意味を深く理解しようとするようになりました。
これによって、より深くヒアリングができるようになりましたし、コミュニケーション能力も上がったと思います。
間違っている場合はその場で修正ができるので、手戻りの時間のロスも最小限に抑えることができます。
ヒアリング能力が上がるとプログラマーとしても成長できると思っています。
プログラマーに必要な考え方
プログラマーに必要なものは要望を的確に捉え、それをいかに効率よく具現化できるかだと思います。
要望・要件がずれていると、いくら技術を上げても意味のないものになってしまうからです。
常にそこは意識して作業したいと思っています。
長くなりましたが、最後まで読んでいただきありがとうございました。