ソフトウェア開発プロセスのエキスパート、Joel Spolsky
――今日は「Joelの考える優れた開発者」というテーマでインタビューさせていただきたいと思います
実はこのような公式のインタビューを受けることはあまりありません。ふつうは私のWebサイト『Joel on Software』(邦訳版)を見た人がコメントを寄せてくれたり、引用していいかと聞いてきたりするくらいで、こういう機会は珍しいですね。
優れた開発者の要件
――まず、「優れた開発者にはどのようなことが求められるか」についてお聞かせください
ああ、大変だ。それなら12箇条ありますね。(笑)
まじめに答えると、見方が二つあって、ひとつは成功するチームを作る上で誰を選ぶかということです。私はそういうとき、頭がよく物事を成し遂げる人(smart and gets things done)を選ぶようにしています(注1)。
会ったときにその人が頭がいいか判断するのは通常難しくありません。しかし物事を成し遂げる人かどうか知るのはもう少し難しくて、実際にその人がうまく物事を成し遂げてきたという実績を見る必要があります。
もうひとつおまけのルールがあって、それは嫌なやつでないということです。おまけだと言ったのは、会社によっては嫌なやつでもかまわず採用し、それで問題なくやっているところもあるからです。
――頭がいい(smart)というのには様々な要素がありますが、具体的にはどういったことを考えているのでしょうか? たとえばコミュニケーションできるとか、学ぶ力があるとか、情熱を持っているとか
いろいろな側面があると思いますが、私が成功する開発者か判断するときに見るのは、ごく特定のことで、それは第一に再帰が使えること、第二にポインタが使えるということです。もちろんこれらがプログラマに必要とされるすべてというわけではありませんが、この二つは優れたプログラマになるかどうかの非常にいい指標になるのです。この二つができるというのは才能であって、ある人は持っているし、ある人は持っていないものなのです。