はじめに
株式会社ナレッジワーク CTO、株式会社ラムダボックス CEOの@mayahjpです。前回の記事では、プレイヤー視点でプログラミング力を身につける方法についてお話ししました。
今回は、視点を変えてマネージャー視点から見るプログラミング力についてお話したいと思います。具体的には、採用のシーンで採用候補者のプログラミング力を見極める方法、特にコーディング面接のやり方、そして、メンバーのプログラミング力を評価する方法・伸ばす方法について述べたいと思います。
対象読者
- ソフトウェアエンジニアをメンバーに持つマネージャー
- ソフトウェアエンジニアを採用したい採用担当者
プログラミング力を測る前に
まず理解する必要があるのは、自分のプログラミング力が低い場合には他人のプログラミング力を正しく測ること、特に自分よりはるかに高レベルのプログラミング力を正しく測ることは非常に難しいということです。
易しいと思っていた仕事が実は難しかったり、難しそうに見えた仕事が非常に易しかったりといったことはよくあります。一流のプロは、今後起こりそうなことを予測しておき、前もって物事が簡単になるように対策をたてたり準備をしたりしています。結果として、一流のプロにやらせると、実はレベルが高いことでも、簡単にこなしているように見えてしまいます。準備のプロセスは、見えないところで行われていたり非常に自然に行われていたりするため、簡単にはこのことに気づきません。
例えばテニスを想像してみましょう。私はあるとき、プロプレイヤーであるフェデラーがテニスをしているのを見ていて「テニスってめちゃくちゃ簡単そうだなぁ」と思えました。もちろんテニスがそんなに簡単なはずはありません。プログラミングでも、これに近いことが起こっています。素人から見える難易度と実際の難易度は一致しません。
もしあなたが、自分のプログラミング力がそんなに高くないと自覚しているならば、自力で他人のプログラミング力を評価するのは諦めた方がいいでしょう。まず正しい評価にはならないのですから。その場合は、代替策を考えたほうが良いでしょう。
例えば、部下のプログラミング力を評価する必要がある場合は、同僚同士で評価し合わせた結果を利用するという方法があります。面接で候補者のプログラミング力を評価する必要がある場合は、プログラミング力が高い人に同席してもらって評価をお願いした方が良いでしょう。その場合、プログラミング力に自信がない分これまで評価してきたはずの側面、すなわち、カルチャーマッチや人物特性を見極めることに徹した方が良いでしょう。