小さく分ける

プロジェクトが大きくなると、ネックになるのがメンバーの増加である。その最も興味深い理由の1つが、コミュニケーションチャンネルの数の増加だ。お互いの話が可能なのは2人の場合だけ。コミュニケーションの道が1つだけだからである。しかし、これが3人になると道は3つ。4人だと6つ…事実上リンクは指数関数的だ。1日仕事をするはずが、メモとミーティングに埋まってしまうことになる。

解決策ははっきりしている:チームを小さくし、独立して動ける規模まで小さくし、コミュニケーションのリンクを減らすのだ。

同じ様に、プログラムも小さな単位に分ける。問題の多くは多くの要素の混在(大きな変更、機能同士のデータ接続エラー、ハードウェアの共有…)から起こるため、要素同士の依存を取り除く、_または最小限にする_様プログラムを分ける方法を考えるのだ。
Getting Real by 37signals