みなさんは「このシステム開発、どのくらい時間がかかるかな?」と考えたことはありませんか?ソフトウェア開発では、開発にかかる時間や費用を事前に見積もることが非常に重要です。今回は、よく使われる3つの見積もり方法について、できるだけわかりやすく解説していきます。
ファンクションポイント法 – 機能の数で見積もる方法
ファンクションポイント法は、システムの機能の数を数えて見積もる方法です。例えば、ECサイトを作る場合を考えてみましょう。
- 商品を登録する機能
- 商品を検索する機能
- 買い物かごに入れる機能
- 注文する機能
- ユーザー登録機能
このように、システムに必要な機能を洗い出し、それぞれの機能の複雑さ(簡単・普通・複雑)を考慮して点数をつけていきます。最終的な合計点数から、開発にかかる時間や費用を計算します。
この方法の良いところは、プログラミング言語に関係なく見積もりができることです。つまり、JavaでもPythonでも、同じ基準で見積もることができます。ただし、機能の複雑さを正確に判断するには経験が必要です。
COCOMO法 – プログラムの量で見積もる方法
COCOMO法は、作成するプログラムの量から開発期間を計算する方法です。
たとえば、1000行のプログラムを書くのに1人の開発者が1ヶ月かかるとします。では、10000行のプログラムは10ヶ月で終わるでしょうか?実は、そうはいきません。プログラムが大きくなると、
- 開発者同士の連携が必要になる
- バグが見つかりやすくなる
- 修正が大変になる
といった理由で、単純な比例計算よりも時間がかかります。COCOMO法は、このような現実的な要因を考慮して計算する方法です。
ただし、最近の開発では必ずしもプログラムの行数が開発の難しさを表すとは限らないため、他の方法と組み合わせて使うことが多いです。
類推見積もり法 – 過去の経験を活かす方法
類推見積もり法は、過去に似たようなシステムを作った経験を活かして見積もる方法です。
例えば、以前に通販サイトを作った経験があれば、新しく作る通販サイトの見積もりの参考にできます。
- 前回の通販サイトは3ヶ月で完成
- 今回は商品数が2倍
- でも、開発チームの経験は増えている
- 使う技術は同じ
このような要素を考慮して、「今回は4ヶ月くらいかかりそうだ」といった具合に見積もります。
この方法の良いところは、現実的な見積もりができることです。なぜなら、実際の開発経験に基づいているからです。ただし、まったく新しいことにチャレンジする場合は、参考にできる過去の経験がないので難しくなります。
まとめ
ソフトウェア開発の見積もり方法には、それぞれ特徴があります:
- ファンクションポイント法:機能の数で見積もる
- COCOMO法:プログラムの量で見積もる
- 類推見積もり法:過去の経験を活かして見積もる
実際の開発現場では、これらの方法を組み合わせて使うことが多いです。例えば、まずファンクションポイント法で大まかな規模を把握し、類推見積もり法で現実的な調整を行う、といった具合です。
大切なのは、一つの方法に頼りすぎないことです。複数の方法で見積もりを行い、それらを比較検討することで、より正確な見積もりができます。また、見積もりは完璧である必要はありません。見積もりと実際の進捗を比較しながら、必要に応じて計画を調整していくことが重要です。
コメント