エンジニアが開発を進める工程を理解することは、エンジニアの本業はもちろんのこと人生で何かを創造するときにも活用できます。
今回はエンジニア開発工程の
ステップに位置づけられる
要件定義について紹介します。
要件定義の段階って何をするの?
前回の記事にて、開発工程の最初のステップとして企画・課題発生を説明しました。
[kanren postid=”3750″]
今回の要件定義に関しては、企画・課題に基づき開発は必要であると判断された前提の上で成り立つものです。
したがって、要件定義の段階では、開発が必要であるという前提の元で、開発に必要な項目は何かというものを定義するステップになります。システムの仕様を明確にするともいいますね。
そして、この開発に必要な項目を定義する際に、要件定義書と呼ばれる書類にまとめます。
システム化すべき項目、スケジュール、必要な人員などチームや社内での共通認識をつくるのです。
受託会社はこの要件定義の段階で、顧客の要求を引き出し整理した要求定義書をもとに、何が必要なのかの項目を整理した要件定義書を作成します。
その要件定義書を社内や顧客と共有し、社内、顧客間での共通認識をつくるのです
例として、前回の記事でも利用したある野球チームでグッズのレコメンドをする機能を考えてみます。開発の目的としてはグッズの売り上げを増加させることです。
このように、グッズのレコメンドする機能が有効であると考えたら機能の詳細な要件を定義します。
レコメンドと言っても様々な方法があるのでどのようなアルゴリズムを用いるかの検討が必要です。
どの程度の精度でレコメンドできないと使えないか、その精度はどのように定義するかということもあらかじめこの段階で決めておかなければなりません。
ここでは
「グッズをレコメンドする対象の会員に対して全ての会員を対象に購入された商品のランキングを作り、その中で会員がまだ購入されていない商品を降順に紹介して、3回表示してクリックされなければ次の商品を表示する」
というアルゴリズムとします。
そして、レコメンドにより紹介した商品が何番目のものだったかを精度として定義します。
そして、次に考えるのが、このアルゴリズムを実装したり精度を確かめたりするために必要な技術や環境は何かということです。
そのために、必要な期間や人員はどうなるかといったこともここで決定します。
ここまで見積もることができれば、開発の要件定義は十分であるといえるでしょう。
今回の例は簡単な要件定義ですが、もちろん、大企業が開発を依頼するような大きなシステムの機能は非常に複雑なものになりその分必要な工数も増えていきます。
したがって、要件定義でどのくらい詳細に要件を詰めるのか、またどのようなポイントを重視するかは業界や企業によって様々なのです。
最後に、この要件定義において大切なのは何を必要な項目とするのかを社内外に共通の認識としてつくることです。
ここの意思疎通がしっかりととれていれば、開発工程の軸が決まったようなものなので、その後の設計や実装にスムーズに移行できると考えます。
最後に
本日はエンジニア開発工程のステップに
位置付けられる要件定義について
ご紹介させていただきました。
次回は、エンジニア開発工程の
次のステップに位置付けられる設計について
紹介させていただきたいと思います。
また、今回の内容に関しては以下の本で
学ばせてもらったことを参考にアウトプット
させていただいています。
わかりやすくITエンジニアリングの基本がまとめられていて、IT業界に携わる人や興味ある人はもちろん、様々なところで活用できると思うのでぜひご一読をおすすめします。
それでは本日はありがとうございました。
今日も頑張ります。