今回は前回解説した概算見積もりの続きとなる、要件定義と再見積もりについてです。主には要件定義の内容になるかと思います。このステップが終わったら実際に発注を受けて開発になるのかなぁというところでしょうか。
Step1. 要件定義 ~お客様の話から要望をまとめる~
概算見積もりを提出したら次のステップとしてお客さんと打ち合わせをし、そこから具体的に何を望んでいるのかを確認し、お客さんの認識と開発側の認識をすり合わせる作業が発生します。これがいわゆる要件定義といわれる過程です。ここでいかに正確に要望を聞き出し、開発のイメージを具現化できるかが開発を成功に導く鍵となります。イメージを正確に捉えるためにも開発の知識及び、それ以上に業務の知識も必要になります。さて要件を洗い出すために最初の話をもう一度確認しましょう。
上記の内容でした。さて、まずは上記のお話から要望をまとめます。ポイントは以下の通りです。
- 入力する画面がほしい
- 平均、標準偏差、分散を求めたい
主な要件は上記の2点になるかなと思います。それじゃあこれでプログラムの開発をスタートしましょう!といいたいところですが、上の内容だと具体性が全くないですよね。例えば、画面ってどんな画面を用意すればいいの?とか平均や標準偏差を求めるためのデータってどのように決定すればいいの?とかです。要件定義は要望の細部まで確認し、認識をすり合わせる必要があるので、このような疑問をすべて解消させてこその要件定義です。話をもらって終わりじゃありません。
まずは上記の疑問を解消すべくお客さんと打ち合わせをしましょう。今回はリモート会議で確認をとった体でいきます。すると質問に対して以下のような回答をいただきました。
Q. 画面はどのようにすればよろしいでしょうか。
A. Webサイトを構築する必要はなく、コンソール画面で入力できればよいです。
Q. 入力データの範囲はどのようにしたらよいでしょうか。
A. 入力データはカンマ区切りで複数入力することができて
Enterキーの入力によって計算に使用するデータの個数を決定してください。
Q. 計算結果はどのように出力したらよいでしょうか。
A.コンソール画面にそのまま表示してください。
因みにこういった確認は機能単位に行うことが多いかと思いますので、以下の内容に対して最初から最後までプログラミングのイメージがつけば要件定義はひとまずクリアといってよいでしょう。
- データの入力を受け付ける
- 平均を求める
- 標準偏差を求める
- 分散を求める
- データを出力する
しかし、浮き出てきてない仕様が業務知識の中に潜んでいたりして、あとで「こういう処理にしてなくてはいけなかった!」とかいって修正が必要になり、工数をオーバーしたりするので、確認は慎重にしなくてはなりませんし、要件を網羅するためにも業務知識は必要不可欠なのです。
今回はこれで要件の洗い出しをクリアできたものとします。
再見積もり
それでは細かい仕様も確認できたので、再度、正確な見積もりを提出します。今度は処理ごとに見積もりを出してみましょう。なお、要件定義と再見積もりは終えていますのでそれ以外の見積もりを出します。(要件定義と再見積は実績として提出する形になるかなと思います。)すると以下のような感じになるかなと思います。
機能名 | 設計 | 実装 | テスト | その他 |
調査 | 0.5 | |||
データ入力 | 0.1 | 0.1 | 0.1 | |
平均算出 | 0.2 | 0.3 | 0.2 | |
標準偏差算出 | 0.2 | 0.3 | 0.2 | |
分散算出 |
0.2 |
0.3 | 0.2 | |
データ出力 |
0.1 |
0.1 | 0.1 |
上記を合計すると3.2人日になりました。前回算出した数値は3.25日ですので、再見積もりの内容としては問題ありません。
今回はこれでよかったのですが、例えば画面にWebサイトを利用したいという場合は話が違ったと思います。Webサーバーの環境はどうするのか、環境構築はどこにするのか、誰がやるのかなど、また画面イメージ等もあるので上記の内容よりは大幅に増えてしまいそうですね。
そうなると再見積もりの時に例えば、2倍の工数で提出したりすると「話が違うじゃないか!」と問題になったりするので、概算見積もりの時は、Webサイトを使用するかもしれない工数を踏まえて工数を多く見積もっておく、もしくは前もってお客さんに確認しておくなどの対応が必要でしょう。
それでは次は上記を元に設計をしていきます。次に進む場合はこちらよりお進みください。
今回はここまでです。
お疲れ様でした。
コメント