月刊ビジネスコミュニケーションによるエキスパートブログ
HOME | ABOUT |
atom rss2.0

« previous next »

機能追加型開発

2007.03.12|プロジェクトマネージメント このエントリーをはてなブックマークに追加Yahoo!ブックマークに登録この記事をクリップ!BuzzurlにブックマークBuzzurlにブックマーク

プログラムをすべて新規開発するプロジェクトは、いまやほとんどない。コンピュータは、あらゆる部門にすでに導入済みである。相互に接続する。接続を変更する。一部を更改する。新しい機能を追加する。このような開発パターンが大半である。

しかし、プロジェクト管理の教科書に機能追加のケースを扱ったものは、なかなか見あたらない。機能追加用にカスタマイズした管理手法を、プロジェクト管理の専門家が用意していない。見積もり方法、進捗管理方法、品質管理方法など、あらゆる面で配慮が必要と、皆口を揃えるのだが。

たとえば、機能追加部分の規模だけで見積もっては不足する。1KLの母体に1KLを追加するケースと、100KLの母体に1KLを追加する工数が同じわけがない。母体の複雑さに加え、難易度や要求される品質が大きく影響する。追加部分と母体の間の結合度が小さければ、つまり追加部分が独立していれば、母体のデグレード試験を少なくできる。

しかし、同じ1KLの追加でも、母体のあちこちに細かく追加の手が入るパターンでは、母体の既存機能がデグレードしていないか、多くの試験工数が必要となる。交換機は後者のパターンであった。デグレード試験の大半を自動化したものの、平均してみると、なんと9Lの追加修正で1項目試験するというすさまじさであった。交換機のプログラムは、少ないメモリの中に詰め込まれており、また性能重視のために非常に最適化していたことが原因だ。

言い換えれば、メモリ量や性能を犠牲にすれば、結合度の低いソフト構造が可能となり、機能追加時の試験を減らすことができる。理想は、母体規模に依らず、1KLの追加が1KLの新規開発と同等になることであろう。

多くのミドルウェアやフレームワークが目指す理想だ。基本機能はこれらが提供し、差分だけ機能追加する開発パターンだ。母体とのインタフェースがポイントだ。習得のハードルは低くないが、一度習得してしまえば、新規に近い。

トラックバック

このエントリーのトラックバックURL:
http://www.bcm.co.jp/mt/mt-tb.cgi/492

コメントを投稿

(投稿頂いたコメントは内容を確認させて頂くので、公開まで時間がかかります。また、適切でないと思われるコメントは公開されない場合があるので、予めご了承下さい。)

Latest