概要
ソフトウェア開発プロジェクトにおいて、適切な見積もりは成功への鍵となります。逆に見積もりに失敗すると、事業会社のビジネスに影響が出るだけでなく、受託開発をするベンダーにとっては大きな赤字や最悪の場合訴訟にも繋がってしまいます。
ビジネスを行う側としても、期日と予算に対してリリースすることを市場にコミットしている場合があります。何が何でも期日までに終わらせる必要がある場合は、ウォーターフォール開発が打ち手の一つになります。そこで本記事では、ウォーターフォール開発を採用する際にどのようなアプローチで見積もりをすれば良いかをまとめました。この記事が多くの人に役立てば幸いです。
本記事では、要件ややりたいことが定まっていない企画フェーズ(コンサルティングフェーズ)からの見積もりを想定しています。
想定読者
- 受託ベンダーのプロジェクトマネージャーないしコンサルタント
- 事業会社の情報システム部
- これからソフトウェア開発の発注を検討されている事業会社のプロダクトオーナー
1. プロジェクト開始前
プロダクトやシステムの導入金額が大体どれくらいなのか、あらゆるビジネス側の方々は気になるものです。しかしながら、世界中の優秀なエンジニアやコンサルタントを集めても、このフェーズで精緻な見積もりを出し切ることは難しいのが現実です。どうしてもざっくりで良いから大体の金額感を知りたい、もしくは求められた場合は、プロジェクトマネージャーまたはコンサルタントは過去の類似プロジェクトの事例を参考にしたトップダウン型の超概算見積もりや、想定する最小と最大の画面数から係数モデル見積もりを用いて、最小と最大の工数から金額を伝えてみると良いでしょう。より精緻な金額は以降のフェーズで出していくことをおすすめします。
2. コンサルティングフェーズ
要件が不明確な場合は、システムやサービスのソリューションや、方針、アーキテクチャやスコープを定義するためにコンサルティングフェーズを設けることを推奨します。その結果によっては、超概算見積もりも予算が大きく膨れてプロジェクトの中断も視野に入れたり、はたまたアジャイルで進めていく方がベストというソリューションになるかもしれません。
もしコンサルティングの結果、システムやサービスの方針、ソリューション、アーキテクチャが明確になったら、ファンクションポイント法やボトムアップ見積もり、係数モデル見積もりを用いて、現状想定している画面や機能に基づいた見積もりを行います。ただし、この段階ではまだ全ての必要な機能や画面が洗い出されていないため、見積もりには十分なバッファ(1.5倍程度)を積んでおくことが重要です。
3. 要件定義フェーズ
最後に、要件定義フェーズでは、もれなくダブりなく機能や画面を見積もる必要があります。この段階では、ボトムアップ見積もりやファンクションポイント法が適しています。ここでのバッファとしては途中で、要件獲得もれのリスクもあるため、気持ち一つ分のバッファは取っておくと無難かと思います(1.2倍増し)。
まとめ
ウォーターフォール開発において、プロジェクトの各フェーズに合わせた適切な見積もり手法を選択し、十分なバッファを確保することが、プロジェクトの成功につながります。要件が明確になるにつれて、見積もりの精度を高めていくことが重要です。プロジェクト開始前、コンサルティングフェーズ、要件定義フェーズと段階的に見積もりを行うことで、プロジェクトの規模感を適切に把握し、スムーズな開発を進めることができるでしょう。見積もりは困難を極めますが、適切な手法を選択し、十分なバッファを確保することで、リスクを最小限に抑えながらプロジェクトを成功に導くことができます。