はじめに
「やっといて、って言ったタスクどうなった?」とか「これ、指示したものと違うな...」なんて言われている駆け出しプログラマーのあなた。
それ、もしかしたら5W2Hが抜けてるのかもしれません!
対象者
この記事は下記のような人を対象にしています。
- 駆け出しエンジニア
- プログラミング初学者
- よく上司やクライアントから「何かちょっと違うんだよな〜」と言われがち
結論
要件定義でも、自分のタスクの整理にも5W2Hは大活躍!
What 何を【 課題 】
Why なぜ 【 動機 】
Who 誰が 【 対象 】
When いつ 【 時期 】
Where どこで 【 場所 】
How どのように 【 手段 】
How much いくら 【 費用 】
What 何を 【 課題 】
1つめのWはWhat、つまり、「何を作るのか」です。
プログラムはただのコードの塊ではなく、「顧客の課題を解決する手段」です。
「とにかくイケてるサイトを作りたい!」
「ダサくてもいいから利益が出るサイトが欲しい」
上記の2つだと、同じWEBサイトを作るにしても、全然違うものになりそうですね。
Why なぜ 【 動機 】
2つめのWはWhy、つまり「なぜそれを作るのか」です。
顧客は何らかの事情でシステム作成を依頼しています。
「上司から言われたから仕方なく頼んでいる」
「売上を最大化するために、社員の働き方を効率化したい」
などなど、理由は顧客によって様々です。
顧客の動機によって、作るシステムの要件も変わってくるので、しっかり把握しましょう。
Who 誰が 【 対象 】
3つめのWはwho、つまり「誰がそれを使うのか」です。
依頼者=使用者であれば非常に簡単。
目の前の人に対して仕様を固めていけば良いですね。
しかし、「社長が発注するけど、実際には社員が使う」というケースもあるでしょう。
その場合、社長の言う通りに作ってしまうと、現場の社員に使いづらいシステムになってしまうかもしれません。
実際に使う社員さんへのヒアリングも必要になるでしょう。
When いつ 【 時期 】
4つめのWはWhen、つまり「いつまでに作るのか」です。
これは簡単に言うと納期ですね。
最終的な納期だけでなく、プロトタイプの提出、テスト運用の開始など、大事なイベントがいつ頃までに必要か、も確認しておきましょう。
顧客と一緒にスケジュールを組むことで、後で「あれやっといて、って言ったじゃん!」という事態を避けることができます。
Where どこで 【 場所 】
5つめのWhere、つまり「どこで使われるのか」です。
屋内、屋外、PC、スマホなどなど...使われる環境によって必要な機能も変わってきます。
きちんとヒアリングしましょう。
How どのように 【 手段 】
1つめのHはHow、「どのように作るか」です。
ここはプログラマであれば説明の必要はないでしょう。
というか、ここしか考えない人が多すぎるので要注意です。
サーバーの構成、プログラムの言語、データベースの構成などなど...ここら辺は言われなくても考えられる人が多いと思うので省略します。
How much いくら 【 費用 】
2つめのHはHow much、つまり「いくらで作るのか」です。
この視点が抜けてるプログラマが多いので、きちんと意識しましょう。
費用と言っても、サーバーにどれくらいお金かけるか、という話だけではありません。
どれくらいの人数のプログラマを何人月稼働させるか、と言うのも大事なファクターです。
きちんと利益の出るプロジェクトにしなければいけませんからね!
具体例1 WEBサイト作成の仕様書
めちゃくちゃ適当ですが、ある商品販売ページの作成依頼があった場合、5W2Hで考えてみました。
5W2H | 内容 |
---|---|
What | 商品販売ページ |
Why | 従来顧客とは違う層にアプローチするためのWEBサイトが欲しい |
Who | ターゲットは20代女性、ページのメンテナンスはPCが得意でない社員でも扱えるようにして欲しい |
When | 1ヶ月以内に |
Where | 電車の中でスマホで見る |
How | Wordpress |
How much | 50万円 |
このようにリストアップすると、要件定義のヒントになりそうな情報がサクッとまとめられましたね。
具体例2 与えられたタスク
「自分はまだ要件定義とかしない、駆け出しプログラマなのですが...」というあなたにも5W2Hは強力なツールです。
例えば、今週にやって欲しい、と上司から指示されたタスクを5W2Hで考えてみましょう。
5W2H | 内容 |
---|---|
What | ラジオボタンのコンポーネント |
Why | 単一選択式のフォームを多用するため、共通化する必要があるから。 |
Who | フロントエンドチームが今後使う予定 |
When | 今週中に |
Where | Gitにpushして、stagingにデプロイ |
How | ライブラリを使用せずに、自分で実装してみる! |
How much | 10時間くらいでできそう |
個人のタスクにおけるHow muchはお金、と言うよりは持っている時間のうち、どれくらい使う?という感覚で良いと思います。
各タスクでこのように整理できれば、優先順位をつける手助けになるでしょう。
おわりに
プログラマーにとって大事な5W2Hについてまとめました。
What 何を【 課題 】
Why なぜ 【 動機 】
Who 誰が 【 対象 】
When いつ 【 時期 】
Where どこで 【 場所 】
How どのように 【 手段 】
How much いくら 【 費用 】