プロジェクト・マネジャーが知るべき97のこと/すぐれた開発者を見つけるには
プロジェクト・マネジャーは、プロジェクトの成功は優秀な開発者がいるかどうかにかかっていることを知っています。どうすれば候補者のなかから、非常にすばらしい成果を上げる人材を見つけられるのでしょうか？

新しい候補者を面接する前に、あなたのところにいる一番優秀な開発者と相談しましょう。プロジェクトに必要とされる具体的な知識について、再確認しておくのです。どんな開発ライフサイクル、方法論、ツール、専門分野（例えば、防衛産業や医薬品部門）の知識があればよいのでしょうか？

それは「あれば望ましい」のでしょうか、それとも「必須」なのでしょうか？

候補者の知識を評価しましょう。開発チームの信頼できる代表者を交えた面接と、理論的なテストとを組み合わせるのです。すぐれたソフトウェアエンジニアであれば、「演習問題」にあるシンタックスエラーを即座に苦もなく修正できます。詳細なドキュメントがなくても、一字一句説明しなくても、他人が書いたコードを読んで、そこにある意図をきちんと理解できます。問題のあるプログラムを見せれば、その問題を見つけて、「専門家」向けの言葉と非IT分野のステークホルダー向けの言葉の両方を使い分けて、うまく説明できるはずです。

私たちはみな、開発者を雇うときにはプログラミングスキルが「あればあるほどよい」と思っています。しかし「あればあるほど」というのはどのように定義されるのでしょうか？

たとえ候補者にすばらしい知識があっても、まだそれを効果的に使ったプログラムを書いたことがないかもしれません。最近大学を卒業した人や新たにトレーニングを受けた開発者の場合、きつい現場のプロジェクトに直面すると、授業で習った理論的知識を応用するのに四苦八苦するかもしれません。厳しい締め切りのために解決策を見つけ出す時間が圧迫され、クライアントやほかのステークホルダーから激しいプレッシャーを受けたときには、単なる知識だけでなく経験が必要になります。

候補者にコードを書くよう頼んで、あなたのチームでレビューしましょう。そのコードを分析して、信頼できる開発者とよく相談しましょう。そうすれば、その人のアプローチやスタイルがあなたのチームに合うかどうかわかるはずです。

候補者の仕事、同僚、クライアント、ステークホルダーに対する態度をよく観察しましょう。私はかつて「ヘアドライヤー」というあだ名の開発者と仕事をしたことがあります。彼が怒ると、その怒鳴り声でみんなの髪が乾いたという伝説が残っていました。彼はすぐれた開発者でしたが、プロジェクトチームにとっては有害でした。

世の中がアジャイル開発へと向かうにつれて、部門を超えたコミュニケーションも増え、コミュニケーションスキルや交渉力といった、いわゆるソフトスキルの重要性が増しています。どんな開発者もいつか、別のところから来た人たちと小さなチームで仕事をすることになります。こうして野に放たれたとき、新たにチームの仲間になった人は、あなたのことをどう表現するでしょうか？

ソフトウェア開発者を雇うときには、以下の単純なガイドラインにしたがいましょう。

 開発ライフサイクル、方法論、ツール、業界や分野に関する正しい知識があるかをチェックして選抜する。
 現場でその知識を応用できることを実証するためのテストを実施する。
 コミュニケーションスキル、ソーシャルスキルについて調査する。
 仕事に対してふさわしい態度をとるか調べる。プロジェクト制約を受け入れながらも、すぐれた製品を作ろうと、うまくバランスをとれるかどうか？時間通りに予算内で「目的にかなう」製品を作り出せるという実績が文書としてあるか？
どんなに魅力的でスキルのある候補者であっても、必ず発行者のサインの入った信任状があるか確認し、履歴書にある以前の雇い主の項目を調べましょう。いつも注意深く人を雇うよう心掛けることで、将来起こるであろう数々の問題を避けられます。