パターン3:ソロ名音楽家   

 

問題:

組織はどのくらいの大きさであるべきか?

コンテキスト:

コスト競争力があり、世の中で一番短いと思われるスケジュールに適合するように、ソフトウエア組織を作ろうとしている。最終製品の最初のリリースは多分25KSLOC以下になりそうである。

最初のリリース後の急速な製品の成長は見込まれていない。

影響する事柄:

何人かの選り抜きの人は、自分だけでプロジェクト全体を完成させることができる。

組織の規模は非線形的に提供物に影響をおよぼす。情報交換のオーバーヘッドは規模の二乗に比例する。これは、組織の結合力は規模の二乗に反比例するのに対し、“馬力”だけはリニアに増加することを意味する。

解決策:

すべての設計と実装を1人か2人の人にやらせなさい。

結果として生じるコンテキスト:

組織は小さな開発に限定される。ただ1つの開発の役割しかないが、マーケティング、ツール作成やその他の機能を支援する役割も必要であろう。適切に選ばれた1人の開発者の生産性は、ある程度の規模のプロジェクトであれば十分である。我々は、その上限は25KSLOCであるとした。他のパラメータについては下記論理的根拠を参照してください。

このパターンは“無法開発の許可証”ではない。開発の適切な時期での技術的なレビュー、妥当性確認、検証をあきらめてはならない(アーキテクチャをレビューしなさい顧客の参加のパターン参照)。

このアプローチは、組織の規模を決めるのパターンで説明した影響する事柄のいくつかを解決することができないので(多くは解決可能であるが)、まれにしか適用できない。そのような影響する事柄があてはまらないのであれば、このパターンは大きな勝利をもたらす。

論理的根拠:

1人開発の成功例はいくつもある。この開発での活動力は小さな組織での活動力とは異なる。1人の生産性は、生産性の高い数人を合わせたよりも高いことがある。我々は、1人での開発が4ケ月で25KSLOCの提供物を作り出したこと知っている(通信システムのための専用インタフェース)。2人での開発が30ケ月で135KSLOCの成果物を作り出したこともある。これらの開発の多くは、決められたレビューや検証を忠実に実行した。

もちろん成功は正しい人を選んだかどうかに依存する。Boehmは、最も生産性の低い人と最も生産性の高い人では20倍の開きがあるといっている。最近、ある通信関連の開発者は「適切な専門家を選ぶということは、30分で問題を解決できることと、いつまでたっても問題を解決できないということの差を意味する。」と私に話した。

このパターンは、その組織の“トラックナンバー”(組織の中の誰かがトラックに引かれて休むとその組織が危うくなるような人の数)を減少させる。