【54】あなたの知識と経験を共有しよう

ポール・W・ホーマー

 私たちは、成功や失敗の経験から非常に多くのことを学んでいます。ソフトウェア開発のように歴史の浅い産業で進歩を続けていくためには、このような経験と知識を浸透させることが大切です。世界の片隅でそれぞれのチームが学んだことでも、世界中に影響を及ぼすことができます。

 私たちがソフトウェア開発の基礎知識として使えるもの、すなわち理論的に正しく絶対的なことは、プロジェクトを成功させるために必要な知識と比べて少ししかありません。そのため、私たちは直観的な判断に頼らざるを得ませんし、場合によってはランダムに選択肢を選んでいることさえあります。つまり、すべての大規模開発プロジェクトは、何が成功し、何が失敗するかについて、実証例を 1 つずつ生み出しているのです。私たちは少しずつ順列を数え上げるようにして進んでいます。それをソフトウェア産業全体にフィードバックすべきなのです。

 個人のレベルでは、私たちはみな、成長しようと努力しており、以前よりも大規模なシステムの構築方法がわかるようになってきています。私たちのキャリアパスは、私たちをますます複雑なシステムに挑戦する方向に向かわせます。ですから、新しい挑戦では、過去の経験を頼りにしたいところです。経験は 1 つですが、そこからできるだけ大きな知恵を引き出すためには、経験に合理的な説明を加えなければなりません。そのためにもっとも簡単でよい方法は、経験を他の人に説明してみることです。

 何かについて議論すると、かならず弱点が見えてきます。簡単に説明できるようになるまでは、説明しようとしているものを完全に理解しているとは言えません。経験を知識にするためには、経験についての説明を提出して、それについて議論するしかないのです。

 もう 1 つ注意しなければならないことがあります。特定の経験を積んだのは事実であっても、そこから推論によって導き出した結論は、状況によっては正しいと言い切れない場合があるということです。私たちは、自分が考えたほど成功していないかもしれませんし、なりたいと思っていたほど賢くなっていないかもしれません。もちろん、現実に照らし合わせて知識を試すのは辛いことです。特に、とりわけ大事に思っていたことが、迷信だったとか、間違っていたとか、正しくなくなったと知るのは辛いことです。

 しかし、私たちは所詮人間ですから、頭の中にあるすべてのことが正しいということはありえません。私たちが考えていることの中には合理的でないものが含まれているのです。私たちの前に進歩の可能性が開けるのは、私たちが自らの欠点を認めるときだけです。よく言われるように、私たちは失敗から多くのことを学ぶのです。自分のアイデアや信念が議論に耐えられないようなものなら、そんなものを基礎としてシステムを作るより、今それは誤りだと気付く方がよほどよいでしょう。

 業界の発展を助けるために、私たちは是非とも自分の知識や経験を共有すべきです。そうすれば、知識や経験をより深く理解できますし、誤りを正すこともできます。ソフトウェアの現状を考えるなら、あらゆる機会を通じて、私たちが知っていること、知っていると思っていること、経験したことを周囲と共有することは、きわめて重要です。私たちが周りの人たちの進歩を助けていれば、周りの人たちも、私たちの能力が最大限に引き出せるように助けてくれるでしょう。