採用活動におけるプログラマーの能力評価

 2018.07.10  株式会社システムインテグレータ

「すごいプログラマー」とはどんな人をイメージしますか?
どの企業も優秀なプログラマーの獲得を目指していますが、その定義が曖昧なために求めている人材を確保できていない現状にあります。IT人材不足が叫ばれ、ただでさえ優秀な人材確保が難しい中、このままでは優秀なプログラマーの採用や確保に関する課題が解決されることはないでしょう。

プログラマーの採用活動を成功させるためには、まず優秀の定義や基準を明確に定めることが大切です。本稿ではそのポイントについてご紹介します。

すごいプログラマーってどんな人?

世間ではすごいプログラマーに対して様々な基準があります。それらを統合して考えると、次のような要素があるでしょう。

①好奇心がある

目の前にあるもの(システムなど)をありのままに捉えるのではなく、正確に動作しているように見えてもその中身を理解しようと深く踏み込む好奇心があります。そうした行動は往々にして様々な問題の発見と解決につながるでしょう。

②論理的思考力

当然ながらプログラミングには論理的思考が欠かせません。物事を順序立てて考え問題解決のための最適な答えを導き出せる。これは単にプログラミングスキルの高さだけではありません。論理的思考力が備わっていることで適切な問題解決ができます。

③速読力、理解力

プログラマーは自分でソースコードを書くだけでなく他人が作ったプログラムを読み解くことも仕事です。なので速読力と理解力は欠かせません。読むのが遅いと仕事が滞りますし、ソースコードを理解できないと生産性が低下するばかりかバグを生むリスクがあります。

④細かいところへの注意力

プログラムとはいわば文字列の集合体なので、非常に細かいところまで気を配らないと問題を見落としてしまいます。細部まで注意を向けられる能力が大切です。

⑤自ら学ぶ

すごいプログラマーは決して学習の場を待つようなことはしません。常に自ら積極的に学び、色々なことを吸収しようとします。たとえば技術的にまだ未熟なプログラマーであっても、自ら学ぶ姿勢さえあればすごいプログラマーに成長する可能性もあります。

⑥熱意がある

プログラマーの中には仕事以外ではプログラムについて一切考えない、考えたくないという人があります。それ自体が悪いわけではありません。しかし、一般的にはすごいプログラマーはプログラミングへの興味や関心が高く、大げさに言えばいつでもプログラムのことを考えているような人のほうがより高い能力を発揮するでしょう。

⑦適応能力

システム開発プロジェクトでは非常に高い確率で仕様変更が生じます。仕様変更を経験していないプログラマーなどいないでしょう。変更に対して柔軟で、適応能力があることは重要な要素でしょう。

⑧コミュニケーション能力

プログラマーと聞くとデスクに座ってひたすらプログラムを作っている人、コミュニケーション能力が欠如している人というイメージがあるかもしれません。しかし、すごいプログラマーほどコミュニケーション能力が優れています。ただしシステム開発は一人で完結するものではありません。チームや関係者と「考えていることを正確に、効率良く伝えられるか」というコミュニケーションは重要です。

⑨一定の協調性がある

たとえば技術的な面で上司の判断が明らかに間違っているときに意見を言うことはいいでしょう。しかし、システム開発のプロジェクトは技術的要素だけで成り立っているわけではありません。そのため時には異なる意見を受け入れることも必要です。お互いの立場を理解し、ときには受け入れる協調性が欠かせません。

以上がすごいプログラマーと呼ばれる人たちに共通している要素です。もちろん、すべての人が100%この条件に当てはまるわけではありませんが、みなさんも思い当たるところはあるのではないでしょうか。

優秀なプログラマーの採用基準

すごいプログラマーの要素について説明しましたが、これらすべてを客観的に評価することは難しいかもしれません。プログラマーの能力やマインドを100%評価するために、採用活動という時間はあまりに短すぎます。

では、その短い時間の中でどういった基準で判断すればよいのでしょうか?

まず「すごいプログラマーを採用する」と考えてしまうと、上に挙げたような項目をすべて満たしてほしいと考えてしまいがちです。しかし、実際にはそこまで満たしていなくても、「優秀なプログラマーを採用する」ということは可能です。なぜなら現時点ではすべてを満たしていなくても、ある一定のレベルを満たしていれば優秀な人を見つけ出すことができるからです。

では改めて優秀の定義とは何でしょうか?先ほどご紹介したすごいプログラマーの条件にはある前提があります。それはプログラミングスキルです。そのうえで、意欲や性格などが組み合わさると、すごいプログラマーと思われるようになるのです。しかし、実際にはすべてのプログラマーがすごいレベルである必要はないのも事実です。そのため、まずプログラマーとして優秀であるかという点をきっちり判断し、加えて上記の要素があればなおいいという形で区別したほうが、採用後のミスマッチを防ぐことができるでしょう。 

プログラミング能力評価を活用する場面

新卒採用

日本ビジネスの独特な慣習の一つといえば「新卒者一括採用」です。実はこれは欧米諸国から見るとかなり奇異な採用活動に映るようです。というのも、欧米諸国や日本以外のアジアでは基本的に「ジョブ型」という採用活動がされます。これは新卒であっても「能力ありき」で採用するという方式であり、社会経験も能力も無い新卒者を採用する日本ビジネスとは大きく異なります。ちなみに日本ビジネス式の採用活動を「メンバーシップ型」と呼びます。

最近になりこのメンバーシップ型に疑問を持つ会社が多くなり、ジョブ型の新卒採用を進めることが多くなっています。今後は、新卒者であってもプログラミング能力の評価を行い、採用活動を進めていくことが一般化していくでしょう。

中途採用

中途採用に関しては日本ビジネスでもジョブ型を取り入れています。それは当然、会社が中途採用に求めるものは「即戦力」だからです。しかし、プログラマの中途採用ほど難しいものはないでしょう。「あれができる」「これができる」といくら面接時に語ったとしても、入社後実際にそのスキルが発揮されるかどうかは分からないのですから。

だからこそ、スクリーニングとしてプログラミング能力の評価を行って、入社後のミスマッチを防止するための対策が必要です。

人事評価

プログラマの人事評価としてプロジェクトへの貢献度を一つの指標としている会社が多いかと思います。しかし、実際にその人がどれくらいプロジェクトに貢献できているかどうかは判断が難しいところです。もしかすると、部下の功績を自分の功績としている上長が存在するかもしれません。

そこで、人事評価の一環として社内プログラミングコンテスト(社内プロコン)を取り入れると、誰が優秀なのか?を明確に把握し人事評価に反映できます。

社員教育

社員教育の一環として社内プロコンを導入することもおすすめです。単にプログラミングに関する技術を教え込むのではなく、社内プロコンを実施することで社員同士の競争力も芽生え、技術向上へ意欲的になります。

社内プロコンで上位へランクインすることを目標とすれば、自然とプログラミング能力の向上も図れます。

適材適所

社内プロコンを実施すると誰が優秀か?ということだけでなく、誰がどのプログラミング言語に長けているかも把握できます。システム開発の現場ではプロジェクトごとに扱うプログラミング言語も違うので、プロジェクトに応じて適切なプログラマを参画させることが大切です。

いわゆる適材適所を実現するためにもプログラミング能力の評価は欠かせません。

業務委託

システム開発を委託するクライアントの立場になって考えると、その委託先が本当にスキルの高い会社なのかを判断することは難しいでしょう。そこで、プログラミング能力を評価するためのツールがあれば、委託先選定はもっと簡単になるはずです。

[RELATED_POSTS]

まずプログラミングスキルの判定から

ではその根底となるプログラミングスキルはどのようにして判断すればよいのでしょうか。新卒採用なら基礎学力などを見て採用するのもよいでしょうが、中途採用の場合はやはり実践的なプログラミングスキルが欠かせません。

そこで、プログラミングスキルの判定をシステムに任せてみはいかがでしょうか?システムインテグレータが提供する「TOPSIC(トップシック)」というクラウドサービスはそれを可能にします。

TOPSICはオンラインで利用するプログラミングスキル判定サービスです。具体的には6段階の難易度で次々と出題される設問に回答し、受験者のプログラミングスキルを自動で判定します。各設問の難易度はアルゴリズムとプログラミングの組み合わせによって決まるため、受験者のスキルを客観的に判定できます。テストの採点は自動で行われるため、人事担当者に特別なスキルは必要ありません。

優秀なプログラマーを確保したい、採用後のミスマッチを防ぐために採用前にプログラミングスキルを判定したい。こうしたニーズを持っている場合は、TOPSICの利用をぜひご検討ください。


RELATED POST関連記事


RECENT POST「教育」の最新記事


教育

ITSS(ITスキル標準)とは?社内に必要なスキル、7段階のレベルと11の職種を紹介

教育

プログラマーに必須の研修とは?プログラミング未経験でも成長できる育成・教育のポイント

教育

プログラミング適性とは?向いている人の特徴や見極めの要素を解説

教育

コーチングとは?ティーチングとの違い、メリット、ビジネスでの活用について解説

採用活動におけるプログラマーの能力評価

TOPSIC TOPへ