昨日は開発工程の全容を勉強したので、今日からは各フェーズについて調べていこうと思います。
要件定義とは
上流工程の1番最初に行われるのが「要件定義」です。
要件定義では、利用者の要望を聞いて
それを実現するためにはどの機能が必要か
どんな性能があれば対応可能かなどをまとめる作業をおこないます。
まとめた後は「要件定義書」として文書化することが多いです。
夕飯の準備でいうところの「何が食べたいか聞いて、条件に当てはまるメニューを挙げてく」ってところでしょうか。
(まだ続いてますよ、この例え)
どんなスキルが必要?
まだ作業に取り掛かるわけでもないし、要望聞くだけだし誰でもできそう~
いやいや、そう簡単にはいきません。
「じゃがいもと鶏肉と茄子が食べたくて、ピリ辛で~麵料理で~ヘルシーで~」など要望を言われ
いくつのメニューが思い浮かんだでしょうか?
この段階でメニューを決めていかないといけませんので、かなりの料理知識が必要だということがわかりますね。
要望に対応した機能をまとめなければならないということは、
開発するシステムやソフトウェアに対する知識が豊富でないといけないということ。
ない機能について「欲しい」と言われたら、「これとこれを組み合わせれば近い機能は作れる?」なんていう応用力や経験も必要になってくると思います。
また、利用者の要望をわかりやすくまとめて、作業者のみんなに伝えなくてはいけません。
これらを踏まえ、要件定義を担当するにあたって必要になってくるスキルは
・利用者の要望をしっかり把握するための共感力・説明力・想像力
「なんかこんな感じにしたい」をしっかり汲み取ってあげる必要があります!
ここでズレが生じてしまい、作り終わってから「思ってたのと違う」と言われると納期も間に合わず
利用者からの評価も落ちてしまいます。
イメージのすり合わせはしっかりと!
・スケジュール管理能力
システムを開発するにはどのくらいの時間がかかるのか、など
この時点で概算での納期と予算を伝えられると、利用者も今後のイメージがつきやすくなります。
なので、「どの機能に何か月くらいかかって幾らくらいか」などの知識が必要です。
・ドキュメント作成能力
要望などをしっかり聞いて話がまとまったあとは「要件定義書」の作成が待っています。
かなり小さい案件で、自分1人で開発する!というわけではない限り
プロジェクトはチームで行うことがほとんどです。
そのため今回実現したい内容をチーム全体に伝え、全員が同じ認識になるように
わかりやすくまとまった要件定義書の作成が必須です。
工程の1番最初である要件定義は、かなり豊富な知識と経験が必要でした。
そりゃ「上流工程できる方優遇」なんてことも書かれますね。
まとめ
最初の工程から調べていきましたが、いきなりハイレベルな工程でびっくりです。
しかしそれだけスキルが必要な工程であるからこそ、企業や会社からも求められるのだと思います。
自身の市場価値や給料UPのためにも上流工程が対応できるようになるといいかもしれません。