人材こそ最重要
2005年3月21日
ソフトウェア開発の見方において、私が根本的に重要だと考える点がいくつかあります。ソフトウェア開発における私の鍵を一つ挙げるとすれば、それは開発努力における重要な要素は、作業を行う人材であるということです。優秀な開発者の生産性は平均をはるかに上回り、給与の差よりもはるかに大きいです。そのため、費用対効果の高いソフトウェア開発を実現する上で最も重要なのは、たとえ個々の開発者の費用が平均をはるかに上回っていたとしても、可能な限り最高のチームを採用することです。能力が高く(高価な)少人数のチームは、能力が低く(安価な)多数の開発者よりもはるかに生産性が高いです。その生産性の違いは、日々の費用が高くても、能力の高い少人数のチームの方がより安価にソフトウェアを開発できることを意味します。
多くの人がそう言いますが、実際に実行している人は少ないようです。「Aプレイヤーだけのチームは作れない」と諦めてしまう人が多く、それを妨げる自然法則があるかのように言います。私はそうは思いません。そのようなチームを作るのは難しいと思います(ましてやThoughtworksのように会社全体となるとなおさらですが)、しかしその恩恵は苦労に見合う価値があります。
なぜそれほど難しいのでしょうか?まず、能力の高いギークが快適に過ごせる環境を作らなければなりません。これには、多くの会計担当者やマネージャーには理解できない多くのことを行う必要があります。そのため、IT組織は本質的にそれができないと考えるようになりました。この根本的な仮定が、私がThoughtworksに加わった理由です。ここでは、この種のソフトウェア開発環境を実現するために難しい仕事に取り組む準備ができている会社があると私は思います。
最近、別のことに気づきました。私自身を含め、多くの著者がこれについて述べ、人材の能力が非常に重要であることを強調しています。それは事実ですが、能力だけではないという事実を見落としています。協調性も重要です。Thoughtworksが良い場所である理由の一つは、誰もが非常に一緒に働きやすいことです。それは偶然ではありません。Thoughtworksはその文化の中でそれを促進し奨励するために多くのことをしています。それは容易ではなく、多くの企業が社内でこのような組織を作るのが難しい理由の一つでもあります。
これが最近私の中でより意識されるようになったのは興味深いことです。独立したばかりのキャリア初期に下した決断をはっきりと覚えています。その時、私はどんなに有能であろうと、不快な人とは仕事しないと決めました。彼らと争うのではなく、単に避けることにしました。能力のある嫌な人と付き合うことで得られるどんな利点があっても、その苦労に見合う価値はないと判断しました。その決断を後悔したことはありませんが、それは私の公理的な基盤に深く入り込み、私はそれを意識しなくなりました。Thoughtworksに加わったときでさえ、能力の問題に焦点を当てていたので、加入の理由の一部として意識的に気づきませんでした。しかし、明らかに加入の理由の一部であり、何らかの理由で今はそれをはるかに意識するようになりました。
このような話をするときは、Thoughtworksはまだ私が考えるべき組織になるまでには程遠いということを皆さんに思い出させることが重要だと思います。私がここにいるのは、適切なソフトウェア組織に関する意見を持つだけでは不十分だからです。私はそれを構築する手助けもする必要があると信じています。