人月の神話メモChapter3

第三章

外科手術チーム

以上の研究から、優秀な者とそうでない者との間には、格段に大きな個人差がたいていの場合あるということが分かった。
サックマン、エリソン、およびグラントより

少数精鋭が望ましい。

  • 人によって生産性が10倍近く違うのはザラ。
  • コミュニケーションのコストが格段に低い。
  • コンセプトの統制が出来る。

大規模プロジェクは小数精鋭が出来ない。

  • 精鋭を100人集めたら精鋭ではなくなる。
    • コミュニケーションのコスト。
    • 管理階級が必要。
    • 財務や人事、総務や秘書、マシンオペレータと言った担当も必要。
  • 精鋭は少ないから精鋭

では実際の大規模プロジェクトはどうしたらいい?

ミルズの案

実装と設計を分ける。
設計は、人員をいくつかのチームに分けたチームの長(執刀医)が行う。

  • 小数精鋭
  • コンセプトの統一性
  • コミュニケーションコストの限定
  • 実装は独立した外科手術チームのように編成されたチームで行う。
  • チームの機能ごとに担当者を設定する。
役割 説明 
執刀医 成果物を作る(デザイン・コーディング・ドキュメント・テスト)
副執刀医 成果物を作る(執刀医の子分・分身・予備)
管理者 人事・法務・機器管理を行う。法的にクリティカルなシステム開発でなければ、複数チームを掛け持ち
編集者 成果物を評価・手直し・整形して参照や参考文献をつける
プログラム事務 成果物の管理をする・配布をする
ツール制作者 成果物を作成するためのツール(治具)を作成する
テスト担当者 成果物のテスト準備とテストを行う
言語エキスパート 実装上の相談を受ける。複数のチームを掛け持ち

コミュニケーションコストの限定

  • おざなりにされがちな仕事がきちんと行われる。
  • 実際にプログラム製品を製作する執刀医・副執刀医が、プログラム製品製作に集中できる。