オルタナティブ・ブログ > 森崎修司の「どうやってはかるの?」 >

計測できそうでできない多くのこと。エンピリカル(実証的)アプローチで。

派生/保守開発で変更の特徴から開発工数を見積るモデル

»

「ソフトウェア開発の生産性」として、規模を工数で割り算したり、逆に工数を規模で割り算したメトリクスが用いられることが多い。見積りや開発の妥当性を確認するための1基準として使われていることが多い。個人的には「生産性」という名前があまり好きではないのだが、その話はいったん置いておきたい。

生産性の値は新規開発と派生/保守開発では大きく異なることが様々なところで指摘されている。新規開発では作った分だけテストすればよいが、派生/保守開発では、既存部分との整合性や既存の機能も正しく動いていることを確認しなければならないからだ。ここで派生/保守開発は、ベースとなるソフトウェアが存在し、それを拡張、改造する開発を指している。たとえば、バージョンnを特定の仕向け用に変更、拡張してバージョンn+1を開発する場合があてはまる。

少し前の日経itproの記事に、ジャステックでのベースとなるソースコードの規模と追加・変更するソースコードの分散度合いによって、生産性を算出する方法が紹介されている。具体的には、新規開発と比較した場合の生産性低下の補正量が示されている。たとえば、ベースとなるプログラムの規模が8.0Kstepで、追加・変更するソースコードが分散している場合には、通常よりも生産性が1/2になる(補正量100%)こともある。この場合、変更規模で見積る場合には同程度の新規開発の場合と比較して工数を2倍多く見積る必要があることになる。

SPI Japan 2009のジャステック岩波氏のプレゼンテーションによると(ここから閲覧できる)、見積りモデルはここだけでなく、JUASの「システム・リファレンス・マニュアル」やIPA SECの「ソフトウェア開発見積ガイドブック」にも掲載されているそうだ。

ご自身の開発では、新規、派生/保守以外にどのような要因を検討されているだろうか?たとえば、求められる品質、使われる環境や状況の多様性等もあるだろうし、システム化対象に対するユーザの理解度も要因の1つといえる。

Comment(0)