CodeIQ MAGAZINECodeIQ MAGAZINE

「部長には負けたくない」熾烈な競争にエンジニア魂が燃える。リクルートテクノロジーズの社内プログラミングコンテスト

2015.09.25 Category:インタビュー Tag: ,

  • 24
  • このエントリーをはてなブックマークに追加
rtcprog

社内のエンジニアのスキルアップのために業務から少しだけ離れて、勉強会やスキルコンテストを行う企業は少なくない。

ただ、リクルートテクノロジーズのプログラミングコンテストはちょっとユニーク。
人事評価にはつながらないのに、なぜか負けん気旺盛なエンジニアたちを熱くする。
by 馬場美由紀 (CodeIQ中の人)

CodeIQの出題をみんなで解いたのがきっかけ

昨年から始まった、リクルートテクノロジーズITマネジメント統括部内のプログラミングコンテスト。

執行役員でもあるITエグゼクティブ(以下、部長)が率先して参加していたり、出題者も回答者になれたり、実行スピードを客観的に競う一方で、独自の実装方式をみんなで評価しあったり……。

なんといっても「遊びの要素」が参加者の負けん気を引き出している。

「リクルートキャリアが運営しているITエンジニアのための実務スキルサービス『CodeIQ』の出題を遊び半分でみんなで解いたのが始まりなんですよ。解答会を開いたら結構盛り上がったんで、これを定期化しよう。社内のエンジニアが出題してみんなで競おうということになったんです」と言うのは、発案者の宮川典久氏だ。

▲株式会社リクルートテクノロジーズ ITM1部 APソリューションG グループマネジャー 宮川典久氏

社内サーバーにリポジトリを一つ作り、出題者がテストコードやテストデータ用意する。出題者は固定せず、前回優秀者が次の回の出題を引き受ける。

期限は約1.5ヶ月。新卒のエンジニア以外の参加は任意。それでも毎回20~30人が参加する。勝負の基本は実行スピード。ミリセック単位で測ると、10倍ぐらいの差が出るという。

コードの美しさは主観的な評価が入るので問題としないが、実行スピードを高めるためにそれぞれ凝らした工夫は、みんなでレビューし加点する。それを5段階でランキングし、結果を毎回部内に掲示する。

賞金はないし、人事評価にも直接つながらない。だが、「負けたくない」という意識が参加者のモチベーションになっている。

普段の業務の裏側で動いているアルゴリズムを意識

これまで、6回開催された。メモリ上限を超えるような大容量ファイルのハンドリング、分散データベスの処理をアプリ側でいかに実装するか、SQLの高速化のためのチューニング技法、JavaScriptのテンプレートエンジンを自作し、サーバーサイドに実装する、などと課題は続き、第6回目はパスワード強度を判定する処理問題だった。

▼第6回プログラミングコンテスト問題の一部

「パスワード文字列と辞書を与え、それぞれに含まれる単語を比較しながら、パスワード強度チェックの処理をJavaで実装するという課題ですが、最適解を得るためには検索エンジンの知識も必要。普段の業務の裏側で動いているアルゴリズムを意識してもらえたらいいな」というのが、5回目の出題者・宮川氏の狙いだ。

今回は宮川氏も解答者の一人として参加。出題者が参加しちゃっていいのかという疑問はさておき、結果的に宮川氏は最上位にランクイン。同じランクに入ったのが、入社6年目、エンジニア歴4年目の麻柄翔太郎氏だ。

▲株式会社リクルートテクノロジーズ ITM2部 麻柄翔太郎氏

「普段の業務は、Rグループ内の事業会社のWebサイト構築。実際のところ業務ではここまでの処理は必要ないんですが、それ以外のことがわからない、できないではエンジニアをやっている意味がないじゃないですか。自分のスキルを拡張する意味でも、このコンテストはいい刺激になっています」

部長のコードをdisってしまった

最初の頃は解答者をすべて匿名にして、全員でレビューしていた。

「このコード遅えなあとか、知らない間に部長のコードをdisってたりしてたこともありました」と麻柄氏は苦笑い。

「部長」とは、リクルートテクノロジーズの片岡歩執行役員のこと。実は彼が社内で一番コンテストにのめり込んでいるとも言われる。

第4回のコンテストで優勝したときは社内報のインタビューを受け、「(このコンテストは)みんなの技術力を評価し、組織全体でレベルアップしていくための取り組み。同じテーマについてそれぞれの正解を見つけること、お手本だけでなく、自分で手を動かしてやってみることの両方を押さえることで、業務に必要な知識が磨かれていく」と組織幹部としては真っ当な意見を述べている。

「だって、案件の話をするつもりで行ったミーティングが、コンテスト問題の攻略法の話で終わっちゃったりしたこともあるんですから」という宮川氏の証言もある。

部長自ら熱く参加し、メンバーの意欲をあおる。もしかしたらこれは部長ならではの高度なエンジニア・マネジメント手法の一つなのかもしれない。

個々のエンジニアの特徴や可能性に気づく

「もちろん、誰がコードを書けるか書けないのかの見極めにはなっています。それ以上にコンテストをやってみてわかったのは、書き方は荒削りだけれどスピードはピカイチとか、非常に変わったロジックで解く人がいるとか、それぞれの個性や特徴がつかめたこと」と、宮川氏も言う。

「その結果を見て、インフラメインでやっているエンジニアに、アプリ開発もできるんじゃないかと、新しいタスクを与えたこともありました。普段の業務でコードレビューしているつもりでも、それだけでは見落としているエンジニアとしての可能性に気づけたのも、コンテストをやってよかったことの一つです」

スキル以前に、コンテストへの向き合い方、気合いの入れ方も重要だ。

「こいつ死ぬほどチューニングする奴だなとか、意外と途中で諦めちゃうタイプとか、それぞれのこだわりも見えてきます。そこから業務適性を見抜くこともできるかもしれないなと感じています」

メンバーの麻柄氏にとっても、コンテスト参加は重要な転機になった。

「エンジニアリングの基礎問題でありながら、どこかで業務につながっている。それを解くことで、サービス企画の幅が広がるような気がします。私は今後も具体的なプロダクトを担当しながらサービス開発の現場にいるつもりだけれど、新しい技術の導入についても、他人に頼らずに自分でできるようにはなりたい。エンジニアとしての実行力を高めることで、それをプロダクト開発の武器にしていきたいですね」と、今後の抱負を語る。

コードはセンスか、経験か

いいコードが書ける人とそうでない人の差。これはもともとのセンスか、それとも経験値の違いなのか。昔からある問題だが、なかなか正解はない。

「現時点でできない人も、いつかは書けるようになることはある。自分の業務でなんとなくコードを書いている人だからといって、センスがあるとは限らない。チューニングがうまい人、アルゴリズムに新規性がある人、コードは下手だけれどチームマネジメントに才をを見せる人など、さまざまなタイプのエンジニアがいるからこそ、チームは強くなる。そういう人たちがそれぞれ特性を発揮できるようなコンテストにしていきたい」と、宮川氏は語っている。

第7回目の課題は、エレベーターの配送ロジック問題を考えているという。複数台のエレベーターを制御しながら、順番待ちをいかに減らすかという、アルゴリズムの基本問題だが、そこに複雑な処理を加える予定だそうだ。

「アルゴリズムで工夫できるなら、私にも勝機はありそうだな。めちゃくちゃチューニング勝負だと、そのあたりの経験が少ない私は、宮川さんには絶対勝てないからなあ」と、麻柄氏の宮川氏への対抗意識は、今からメラメラと燃え上がっている。

新卒エンジニアの中には麻柄氏、宮川氏を追い上げるようなコードを書く人も現れた。リクルートテクノロジーズの社内競争はこれからますますヒートアップしていく様相だ。

(執筆:広重隆樹 撮影:刑部友康)
  • 24
  • このエントリーをはてなブックマークに追加

■関連記事

プログラミング教育から「起業志民」を生み出す──八幡平で始まる「ファースト・ペンギン」... 「スパルタキャンプ」の精神を引き継いで 起業家の家入一真氏(現・キメラ代表取締役)が2013年夏に沖縄で行った、参加費無料の初心者向けプログラミング集中講習会に「スパルタキャンプ(現:ELITES CAMP)」がある。 その講師、運営担当としてフル活動したのが、当時19歳の柏木祥太氏だ。 ...
プログラマの評価を上げるには、どうすればいい?遠藤侑介・まつもとゆきひろ・増井雄一郎☆鼎談3... 日本のプログラマの社会的評価は低いのか ──最近は、企業のビジネスとして、低学年からのプログラミング教育に力を入れるところが出てきていますね。親がそういうキャンプに子どもを通わせると。 まつもと:プログラマって、ずっと「オタク」とか呼ばれてわりとさげすまれてきたので、その風潮を変えるきっかけには...
「プログラミングは、何歳から始めるべきか?」 ─遠藤侑介・まつもとゆきひろ・増井雄一郎・鼎談2... プログラミングをする学生が減っている? ──今日はせっかくこの御三方が集ってらっしゃるので、もうちょっとプログラミングの現在みたいな話も聞けたらと。 まつもと:私の友人で、母校の大学で情報科学を教えている人がいるんだけれど、プログラミング経験者の割合は、むしろ下がっているって言っていましたね。 ...
遠藤侑介・まつもとゆきひろ・増井雄一郎が語る「超絶技巧プログラミングはなぜ面白いのか」... なぜいま超絶技巧プログラミングなのか ──遠藤さんの著書、『あなたの知らない超絶技巧プログラミングの世界』(技術評論社)は実用性を追求するだけでは出会えない、ちょっぴり不思議なプログラミングの世界で一緒に遊びに行きましょうというのがテーマです。まず、この本を、なぜお書きになったのか聞かせてください...
「健康」と「エンジニア」はナイスな関係?クライミングはパフォーマンスチューニングだ!... チューニングもクライミングも環境再現が”キモ” 自分の体も仕事もグッドなほうに持っていこう、というこの企画。第一回の今回は、隙さえあれば岩壁を登りに(クライミング)に行っちゃうエンジニア・山上健一さん(@kappaLab)に、健康の秘訣を聞いてみた! クライミングの世界とプログラムの世界は実は...

今週のPickUPレポート

新着記事

週間ランキング

CodeIQとは

CodeIQ(コードアイキュー)とは、自分の実力を知りたいITエンジニア向けの、実務スキル評価サービスです。

CodeIQご利用にあたって
関連サイト
codeiq

リクルートグループサイトへ