「部屋の中の象」は、Apache Software FoundationのバイスプレジデントであるNiclas Hedhmanが2016年中国オープンソース年次会議で行ったスピーチです。
あなたは完全なテキストを読むことができ、角度が鋭く、運命のある人とそれを共有します。
業界のプログラマーは、天才、良い、平均、悪い、悪いの3つの方法で分類できます。
それぞれの特徴を見てみましょう。
才能のあるプログラマーによって書かれたコードベースはシンプルで、再利用可能で、強力です。
彼らは継続的に頑張って開発し、コードベースに小さな定期的な改善を加え、新しい機能を追加します。
彼らは十分な関連テストを書いた。彼らはしばしばとても謙虚で知識豊富です。
また、それらは完璧ではなく、ライブラリ全体を最初から書き直さなければならないことがよくあります。しかし、互換性を損なうことなく、より良いコードを書くことができます。
優れた開発者は、コードベースを書くのがより複雑です。
通常、彼らは多くの未完成の場所を残します。彼らは長い間図書館で働いていないので、すぐに彼らは新しい人のために刺激的な何かをし始めるでしょう。
彼らが書いたコードベースはすぐに時代遅れになり、操作方法を誰も知らなかったため、テストに必要なコードが多すぎました。
優れた開発者は自分自身とその仕事に誇りを持っていますが、コードがあまりよく書かれておらず、テストメカニズムがないため、コードを書き直すことはできません。
通常、平均的なプログラマーは、大企業におけるソフトウェア保守の神です。
エラーをすべてのコストで解決し、新機能を削減します。テストが中断された場合は、コードを配信するときなので、テストを無効にする必要があります。
彼らはまた、優れた開発者と一緒に仕事をしたくないのです。なぜなら、これらの人々は抽象的な概念と依存関係のあるコードベースを後に残すからです。
これらのものは使用するのが非常に不便で、多くのエラーがあり、ドキュメントもありません。
貧しいプログラマーは何も気にしません。彼らはただ働いて、コードを書いて、家に帰って、そしてプロセスを繰り返します。
彼らは決して学びません、彼らは他人の意見に耳を傾けません。良いコードと悪いコードを教えても、彼らにはわかりません。
彼らはプログラマーであってはならず、通常、常にプログラマーではありません。
悪いプログラマーは、貧しいプログラマーほど悪くはありません。なぜなら、彼らとその周りの人々は、彼らが未経験であり、コードがあまり良くないことを知っているからです。ですから、彼らは学び、より良いプログラマーを目指したいと思っています。彼らはしばしば良いプログラマーになるために移行しますが、一部はまた、貧しいプログラマーになります。悪いのは短期間であり、心配する必要はありません。
これは私たちを次の神話に導きます。
プログラマーに尋ねると、彼らはどのカテゴリーに属していますか。
彼らがこれらのカテゴリーの定義を見ていなければ、私たちはそのような結果を得るでしょう、60%のプログラマーは彼らが天才で良いカテゴリーに属していると考え、わずか30%の人々だけが彼らが普通のプログラマーであると考えています。
しかし、私の経験では、統計は次のようになります。
天才プログラマーはごく少数であり、優れたプログラマーのほんの一部であり、多数のプログラマーが平均的で貧弱なプログラマーです。それについて考えてください。
したがって、才能のあるプログラマーは、美しいデザイン、シンプルな抽象化、そして使いやすい彼のシンプルで傑出した傑作を見せてくれました...
「できる」と思います。
ギリシャ語では、プリムスインターパリは最初の普通の人を意味します。
この見解は、本当に優れた人々はまだ私たちの1人にすぎず、違いはなく、私たち全員がそれを行うことができると考えています。
他の人が書いた美しいコードを見ると、それは当たり前のことだと思います。
しかし、私たちのような普通の人々は私たちの限界を見るには愚かです。私たちは最も美しいコードがどのように見え、どのように使用されるかを知っていますが、それは私たちが自分でこのコードを書くことができるという意味ではありません。
幻想的な優位性とダック効果分岐理論は、私たちがあまりにも愚かであることを示していますが、私たちがどれほど愚かであるかはわかりません。
私たちは自分の能力に自信があり、通常の状況ではほとんど実行できない複雑なソフトウェアを作成しており、これらのソフトウェアは特別な状況下でも実行できません。
私は愚かなので、良いコードを書くことができません。
皆さん、今、声を上げてください...
これは部屋の中の象です。