ソフトウェア開発組織はオーケストラ [プログラマー現役続行]
ソフトウェア開発チームは、スポーツチームではなく、アンサンブルだということで、次のように述べられています。
気づくのが遅すぎたが、固く結束した作業グループがやろうとしていることには、音楽のアンサンブルのメタファがよりふさわしかった、ということを、我々は読者に言いたい。大規模なソフトウェア開発であれば、オーケストラなのかもしれません。
個々の音楽員は、自分が得意とする楽器を徹底的に練習し、自分の楽器に熟達することが求められます。さらに、オーケストラの一員として他の楽員と協調して、素晴らしい演奏を聴衆に聞かせるのです。
ソフトウェア開発も同じだと思います。個々のソフトウェアエンジニアは常に技量を伸ばす努力をしながら、素晴らしいソフトウェアを開発し、他のソフトウェアエンジニアと協調(議論)しながら、システム全体としてより良い設計や実装を行い、結果としての素晴らしいソフトウェア資産を作り出すことが求められるのです。
オーケストラだと考えると、一人でも低レベルのソフトウェアエンジニアがいれば、結果としての作品は台無しになる可能性があります。
Googleが素晴らしい作品(ソフトウェア)をものすごい早さで世に送り出し続けている要因は、オーケストラとして個々のソフトウェアエンジニアの素晴らしさに加えて、チームとしての協調性が同時に起きているからかもしれません。
一方、日本の多くのソフトウェア開発組織では、ソフトウェアエンジニアを軍隊の兵士としか見ていなかったりします。武器(技術教育、開発環境、各種ツール)を与えて、攻撃方法を(開発プロセス)を指示して号令をかければ、勝利(ソフトウェア)を得られると思っているということです。
しかし、ソフトウェア開発はやはりオーケストラの比喩がかなり近いと私は思います。つまり、軍隊方式の開発では、個々の兵士の能力は高くなくて、技量を伸ばす努力を個人ですることもなく、多くの兵士がぼろぼろのソフトウェアを開発してしまう可能性があります。その結果として出来上がるソフトウェアは聴衆に聞かせるようなものには絶対になりえないと思います。
Googleでは、すべてのソースコードのコミットは、誰かとのコードレビューを経ないと駄目だそうです。Google Web Toolkitのメーリングリストを見ていてもそのことは分かります。昨年の5月に、Google本社のカフェテリアでJoshua Bloch氏と一緒に昼食を取りながら話をした時にも、コードレビューに言及して色々と聞きました。彼が書いたコードもレビューするのかと聞いたら、すると言っていましたし、他人とレビューすることの良さを色々と語ってくれました。当然、ソフトウェアの設計に関してもチーム内で議論が行われていると思います。
まさに、オーケストラだと思います。個々の優れた演奏家を集めて素晴らしい作品を生み出しているのです。
(「Practice, Practice, Practice」)
2009-09-10 05:04
nice!(0)
コメント(0)
トラックバック(0)
コメント 0