天才プログラマーを見つけるよりも・・
ZDnetで、興味深い記事を見つけました。
しかし、Nichols氏の調査では、一部のプログラマーは他のプログラマーよりもはるかにスキルが優れている(あるいは生産性が高い)という考え方とは矛盾する結果が出たという。同氏は、パフォーマンスの差は個人のスキルに起因する部分もあるものの、各人の生産性には、日によっても、タスクによっても、その他の要因によっても差が出てくると述べている。
同氏は、「第1に、差の大半は、非常に高いパフォーマンスに起因するものではなく、少数の非常に低いパフォーマンスに起因するものであることが明らかになった。第2に、極端にパフォーマンスが高い、あるいは低いプログラマーは非常に少ない。第3に、同じプログラマーが最高・最低の成績を記録することは少なかった」と説明している。
訳文なのですこしつかみにくい言葉だと思うのですが、以下、意訳してみます。
考察
論文においては、以下のことを主張しています。
① チームでプログラミングを行う、例えば開発部門のような組織において、生産性に影響するのは「天才技術者」ではなく「能力が著しく低い技術者」だ。
② 「天才技術者」も、「能力が著しく低い技術者」も数は少ない。
③ いろんなタスクにおいて、一人の技術者だけが、天才、もしくは能力が著しく低い、ということは少ない(意訳)。
つまり何を言いたいかというと、天才技術者なんて存在はほとんど無視していいぐらい少ないのだから、追いかけるだけムダということです。
もちろん、足を引っ張る人を組織に入れるな、大きく組織の足を引っ張るぞ、これも経験的に共感できます。
そして、プログラミングにもいろんなタスクがあって、得手不得手があるので適材適所に割り振ってやれば生産性は上がるぞ、と言っています。
これ、何となく聞こえはいいんですが、天才技術者のことをいないものとしてチーム構成しろと言っているようなものです。天才技術者は災難ですね。
経営者から見て、プログラマーはだいたいスキルは似たようなもので、ただ得意不得意を気にしてアサインすれば仕事は廻るよ、ってことかと思います。
逆に言えば、プログラマーの評価レベルも「天才」は用意する必要がないと言っているようなものです。
この話の延長上で考えると、プログラマーのキャリアパスは長年やっていると打ち止めになるということを意味しませんか?
私はこの調査結果、天才技術者を見逃すバイアスになるので拒否したいのですが、業界を見渡すと、コンサル~上流設計者~プログラマー~テスター、のような職域カーストができているような気がします。IT業界の人材募集を見てもそんな年収設定になっていませんか?。プログラマーはどちらかというと安めになっていて、上流ができる人のほうが給与が高くなっている。
一方で、プログラミングは、今後のビジネス必須スキルだと言う人もいます。
一流投資銀行ゴールドマン・サックスのテクノロジーエバンジェリストだったマーティー・チャベスは、同行を退職する前、プログラミングを学ぶことがトレーダーにとって「英語で文を書くこと」と同じくらい重要になるだろうと予言した。
この情報をかみ砕けば、これはプログラミングは今後のビジネスマンの必須スキルであり非常に重要なエレメントだということです。ですが、もう一つ重要なのは、ビジネススキルが別にあることが前提です。業務知識があり専門分野を持ったうえで、そこにプログラミングスキルがあると高給になるということです。
単なるプログラマー、ということではないのが要点だと思います。
理想と現実
2020年の今、アメリカからこんな論文が出てくるぐらいなので、天才プログラマーが認知され、人がびっくりするほどの高給を得る、なんてことはこれからも無さそうだと感じました。
二番目に紹介したウォール街の記事が言うように、あまり「プログラマー」「IT技術者」「トレーダー」なんて職域を掲げずに、バイアスを持たずいろんなことに手を出しミックスして働ける人が、今最も稼げそうなエリアだと考えます。
そういう意味では、プログラマーだってジョブチェンジして高給取りになるかもしれませんし、銀行マンだって然りだと思います。面白い時代です。