現在利用されている見積り手法には、まだまだ課題が多い状況です。今回は代表的な見積り方法を挙げて、見積りにおける課題について考えてみましょう。
類推法
類似のシステムから類推して見積もる方法です。何をもって類似とするのかの判断が難しく、要求仕様のどこを変えれば見積りに影響を与えるのかがわからないのが欠点です。一般的に見積り精度は低いと言われていますが、要求仕様が曖昧な上流工程ではよく使われます。
SLOCから工数や金額を見積もる方法
要求仕様からソフトウェアシステムのソースコードの行数であるSLOC(Source line of Code)を見積もり、行数当たりの生産性から工数へと換算して見積もる方法です。全工程を通じて一般的によく使用される方法ですが、SLOC自体がユーザーに理解されにくいという問題点があります。SLOCはシステムに実装した結果の行数ですので、要求仕様との距離が遠いからです。
FPから工数、金額を見積もる方法
FP(ファンクションポイント)法自体は、実は見積り方法ではなく、要求仕様を定量化する手法です。要求仕様からFPを見積り、FP当たりの生産性から工数や金額へと換算する方法です。
上流工程において、FP法を応用して工数や金額を見積もる方法が使われるケースがありますが、コミュニケーションツールとして考えると、FP法は要求仕様そのものを定量化する手法ですので、ユーザーも理解しやすいと思います。要求仕様の変化に応じてFPも変動するので、コミュニケーションをとりやすくなります。ただし、FP法で定量化できるのはシステムの入出力などの機能要件だけです。性能や信頼性などの非機能要件に対しては考慮が必要です。
COCOMOモデル
開発規模から工数やコストを見積もるための手法です。SLOCやFPを入力とし、コストドライバと呼ばれる変動要素を加えて過去の実績値から導出したコストモデルに基づき見積もります。
客観的な方法なので、ユーザーとの共通認識を得やすいと思います。規模をFPで見積もり、工数をCOCOMOモデルで見積もれば要求仕様との連動も密になります。ただし見積もり精度を向上させるためには係数のカスタマイズが必要なこと、コストドライバの一部にシステム開発要員のスキルなどが含まれていることが難点です。
工数積み上げ方式
システム構築に必要な作業を洗い出し、それぞれに必要な工数を見積もった上で積み上げていく方式です。見積り精度は高いと言われますが、工程が進まないと必要な作業項目が見えてこないため、上流で適用するのは難しいです。
このように、現時点ではそれぞれの見積り方法が課題を抱えており、より一層の精進が必要かと思います。また、新規案件か、機能拡充案件かによって見積り方法を使い分けるのも1つの方法だと思います。
昨今、ソフトウェアシステムは社会基盤の一部を担っているといっても過言ではありません。最近は銀行や証券取引所、自動改札機など、ソフトウェアの不具合に起因した社会生活の混乱を多く目にします。システム開発に関わる我々はユーザー、ベンダーの立場の違いは関係なく、エンドユーザーのために安全に稼動するシステムを世に出す責務があると考えます。そのためには適切な見積りを実施し、適切なリソースを確保した上でシステムを作らなくてはいけないと思うのです。健全な業界発展のために頑張りましょう。
執筆者プロフィール
藤貫美佐(Misa Fujinuki)
株式会社NTTデータ SIコンピテンシー本部 SEPG 設計積算推進担当 課長。IFPUG Certified Function Point Specialist。日本ファンクションポイントユーザー会の事務局長を務める。
『出典:システム開発ジャーナル Vol.1(2007年11月発刊)』
本稿は原稿執筆時点での内容に基づいているため、現在の状況とは異なる場合があります。ご了承ください。