nomuran's diary

野村直之のはてな日記(後継ブログ)です

「プログラマーを採用する際に重視すべき10の資質」

以前の日記で、10か条シリーズという企画のうまさをご紹介した覚えがあります。

昨日掲載された、「プログラマーを採用する際に重視すべき10の資質」ですが、
大半はオーソドックスながら、おさえるべき基本をある程度網羅してくれているので参考になります。
http://japan.zdnet.com/sp/feature/07tenthings/story/0,3800082984,20382969,00.htm
 
4ページに分かれているので、10か条をまとめて引用します:

#1:好奇心 
#2:論理的な思考能力
#3:速読力と理解力
#4:詳細に対する注意力
#5:プログラミング以外のことに対する飲み込みの早さ
#6:自己学習能力
#7:熱意
#8:適応力
#9:優れたコミュニケーションスキル
#10:上司をたてられるか?

#1:好奇心を筆頭にしているのは興味深いですが、通常とは意味が違うようです。目の前に「見える」ものの見た目にだまされない、というニュアンスが強いからです。りんごが落ちる、という何の変哲も無い出来事に接してその裏に潜む万有引力の方程式が「見えた」ニュートンのような、自然科学者のスキルに近いことを書いているように読めます。
 
#2は当たり前ながら、ペーパーテスト以外の判定法が書いてあり、少し役立ちました。
「・・・私は応募者と仕事内容について話をする際、あえてすべてを口に出さず、相手がその内容を把握できるかどうかを見てみる場合がある。・・・」
 
#3:速読力と理解力。これは確かにむちゃくちゃ大事。愛想良いコミュニケーションよりも、何より高速な理解力。できれば「1を聴いて10を知る」それも、本質をはずさずに、脱線せずに、相手の問題意識を共有し、1秒でも早く問題解決する、という目的意識の下で、瞬時に理解できる能力はプログラマーとして極めて重要と言うしかないです。日常業務では、「読む」という局面で主に発揮される、と。日本では、英語と日本語が、文字面(づら)に拘泥せずに超高速に読めることが、生産性を非常に大きく左右する、と言って間違いないでしょう。

#4:詳細に対する注意力
 大雑把に「雰囲気」を理解するだけだったり、前やったあれと似てるからあんな風にやればいいのだな、などと乱暴に1くくりにするのとは正反対の、詳細な違いに本質を見出す能力。名前は失念しましたが、あるノーベル賞受賞者は、20年間トウモロコシの遺伝子を観察していて、他の人なら、実験のノイズと思って見過ごしてしまう、たった1つの僅かなデータの不ぞろい(idyosyncracy)に気づき、それが、「遺伝子は生誕後も変化する」という大発見につながったといいます(動物・ヒトでそれを証明したのが確か利根川進博士)。やはり、ここでも、優秀な科学者の資質との共通性を感じます。
 
#5:プログラミング以外のことに対する飲み込みの早さ
 周辺知識を程よく、「好い加減に」把握し、本質を理解する能力は、"How to" のレベルを超えて、"What to do"を自分で考えられるプログラマになるのに重要ですね。下記の例がとてもわかりやすいです:
「・・・もちろん、会計ソフトを開発するからといって、コンピュータ科学の学位に加えて公認会計士の資格も必要になるというわけではない。しかし、基本となる数学や、業務知識を理解できないプログラマーは、会社にとって重荷となるはずである。・・・」
 
#6:自己学習能力
 他人が御用聞きをして教えてくれるのを待っている人、自分の問題解決知識の不足を他人のせいにする人は、お荷物になってしまうのが職場というものですね。これは全くプログラマに限らない話。
 
#7:熱意 と #8:適応力
 熱意とはまた精神論的に響くかもしれません。しかし、現場で毎日無数に発生する細かい変化をマネージしながら次々と仮説を修正し、検証し、問題解決するには、主体性や熱意としかいいようのない資質でコントロールするしかない、といえそうです。
 変化への対応力は言い古された感もありますが、変化をネガティブにとらえ、被害者意識をもつような人を採用しないようにするための、次の具体的な想定質疑は参考になります:
「・・・面接時に、特に「要件はしばしば変更されましたか?」といった質問をすれば容易に明らかになる。そこで「もちろんです。しかし、そういったことはどのプロジェクトでも起こることであり、避けがたい現実ですから」といった答えが返ってくれば合格である。これに対して、目をむいて「そうなんです。だから何も完了させることができなかったのです!」などと答える応募者はおそらく、ほとんどの環境に適応することができないだろう。・・・」
 
#9:優れたコミュニケーションスキル
 ここで言われているのは、聴いて、読んでする「理解」とは逆方向の、自分から話して、書いて、素早くポイントを伝えられる能力。

#10:上司をたてられるか?
 この項目にはちょっとびっくり。でもちゃんと理由が書いてありました:
「・・・マネージャーはしばしば、技術とは関係ない観点から決断を下す必要があり、そういった理由(機密事項や社内の政治問題、時間的な制約など)をチームに説明することができない場合もあるのだ。・・・」
 「たてる」というより、決断責任をもった人の意見を尊重し、対立点は忌憚なく議論し、明記した上で、決定には喜んで従う、という資質のことでした。やはりアメリカ的、(良い意味で)軍隊流、ということで、日本的な「顔をたてる」とは全然違う意味であることが確認できました。