- 更新日: 2017年05月12日
- 公開日: 2017年03月28日
クックパッド 星氏が語る「新卒エンジニアと先輩エンジニアが競い合う研修プログラム」とは?《新卒エンジニア育成カイギ その6》
「これからの新卒エンジニア育成のあり方」を考えるイベント、「新卒エンジニア育成カイギ」が2016年12月15日に行われました。
クックパッドのインフラストラクチャー部 部長の星氏よりクックパッドの新卒エンジニア育成の方法や、新卒エンジニアの研修プログラム「段階グランプリ」についてお話いただきました。
前回記事:《クックパッド 星氏「新卒でも技術力を重視、尖ったエンジニアはエキスパート枠として採用」《新卒エンジニア育成カイギ その5》》
技術を「正しく理解し使う」ための新卒研修
新卒研修では、まず職種問わず全体研修を行っています。ここでは、社会人としての基礎知識、ビジネスマナー、自社事業の理解といった一緒にクックパッドで働く上で覚えておいてほしい事を学んでもらいます。
全体研修の次に、総合職には技術研修とプログラミング研修を、一方、エンジニアにはインフラ研修を実施しています。
クックパッドは、「毎日の料理を楽しみにする」世界を実現する手段として、テクノロジーを使いこなせることがとても重要だと考えており、エンジニアに限らず、社員全員が技術を「正しく理解」して「正しく使う」ことを意識してもらうため、技術研修には、とても力を入れています。
そして、最後に再び全新卒社員が集まり、クックパッド流のサービス開発を短期間で体験できるサービス開発研修を行って、配属という流れです。
「クックパッドのエンジニア」として仕事ができるように
エンジニア研修やインフラ研修は、クックパッドのエンジニアとして仕事ができるように、という目標を置いています。
具体的には、クックパッドで働く上で必要となる共通言語を持ち、かつ職業エンジニアとして仕事ができることを目指しています。
そもそも採用の段階で未経験者ではなくエンジニアとして手を動かしてきた人を採用するという方針があります。ですので、プログラミングや技術そのものというより、クックパッドで仕事をする上で何が必要かという事を学んでもらうところにフォーカスし、プログラミング経験がある前提で研修を設計しています。
「インフラへの理解」を深め自走できるエンジニアへ
次に、インフラ研修に関して説明します。Web サービスにおけるインフラ、いわゆるサーバやネットワークといった分野に関する研修です。
なぜあえてインフラ研修をするのかというと、Webサービスを開発する上で、インフラに対する一定の理解があると、例えばソフトウェアの設計や、仕事の進め方などの幅が広がるためです。
また、新しい技術を自分で学習する際や、自分でサービス開発をする際などの下地にもなります。実際、在籍している社員でも「インフラについて学びたい」という声を耳にすることもあります。
同僚として仕事を進める上で持っておいてほしい共通言語を獲得してもらう、というねらいもあります。2016年に入社いただいた新卒エンジニアのうち、インフラ部に配属されたのは1名だけです。残りの新卒エンジニアはインフラ部としてではなく、サービス開発や研究開発のメンバーとして、インフラ部と仕事をするエンジニアになります。
一緒に仕事をする上で、インフラに関する基礎的な知識があれば、「何をしているか」「何が必要か」をお互いに理解しながら仕事に取り組むことができると考えています。 インフラ研修は、私ともう1名で4日間の実習を行いました。
次に、おおまかな講義の内容について説明します。
最初の3日間で Web インフラのほぼ全てに、軽くでも触れてもらいます。
インターネットの仕組みや Web インフラの基本的な構造、Web アプリケーションはどのようにして動くのか。データベースの役割や選び方に加え、最近のトピック、例えば Infrastructure as Code や AWS についても学んでいきます。
研修は座学と実習が交互になるようにしています。実際に1つのアプリケーションをインフラのレイヤから改善していくストーリーを作り、その流れに沿って手を動かしながら学ぶ内容です。
講義が終わった後には一般的なウェブアプリケーションのインフラ構成が手元にできている状態を目指して設計し、実施しました。
新卒エンジニアと先輩エンジニアが競う「段階グランプリ」
こうしたインフラ研修の仕上げとして、会社に入る前から身につけてきた技術と、研修で学んだものを活かし、好きに手を動かして競い合えるイベントを企画しました。
それが『段階グランプリ』です。やっと名前が出てきました。 段階グランプリは、出題側がお題となる Rails アプリケーションと3台のサーバを用意し、あらゆる手段を使って高速化するというイベントです。
1チーム2~3名、共同で手を動かし1日かけて競い合います。新卒研修の一環ではありますが、先輩エンジニアも”一般枠”として参加可能にしました。新卒エンジニアのチームにはオブザーバーとして先輩エンジニアが付くようにしています。
新卒は必須、一般枠は希望者としていましたが、実際には新卒チームが4つと、一般枠の参加チームが9チームできました。10時から18時半まで丸一日行うので、その間業務が止まるわけなのですが、チーム内で業務スケジュールを調整して参加してくれました。
段階グランプリは、 LINE 社が主催している ISUCON (http://isucon.net/) という高速化コンテストをかなり参考にしています。私含め何名かは ISUCON に例年参加しているのですが、「本当に面白いし、勉強になるのでぜひ研修に取りいれてみたい」ということで実現しました。
今回のテーマは「雑に実装されたレシピサイトを高速化」するというお題です。
初期状態から、研修でやった内容だけを実践してもある程度までスコアが出るように調整していました。そこから先は知恵を出して改善を重ねていく必要があります。技術的なポイントは色々あり、Web サービスを作る時に陥りがちな罠を一通り仕込んであります。
また、性能ありきのコンテストなので、性能の良し悪しがきちんと定量的に計測できる必要があります。 そのため、開催中自由に実行できるベンチマークツールを用意しました。
さらに、チームごとのランキングが表示される特設サイトを社内から自由にアクセスできる場所に用意しました。
エンジニアでなくともオンラインで観戦して応援できるようになっており、これが結構盛り上がりました。
結果はというと、一般枠のISUCONでも上位に食い込むような先輩エンジニアが2位にトリプルスコア以上のスコアをつける形で優勝しました。グラフを新卒チームと比較するともう大人げなさが凄いのですが、新卒だからと何も遠慮する事なく同僚として全力で戦っていたのは良かったと思っています。
ただ、新卒チームも負けずに高いスコアを出していました。新卒内でトップのチームは先輩エンジニアより高いスコアを出しています。
その後は全体で懇親会をしつつ、皆にライトニングトーク形式でどのように改善したかを発表してもらいました。
研修全体の感想ももらいましたが、やはり技術を使って手を動かし、かつ楽しめる事は非常に良い学習の機会になる、といった主旨の感想が非常に多かったです。
一方で密度が濃すぎるという指摘もあり、今後は研修の日数を増やすなどしながら、段階グランプリの前に手を動かせる機会をもう少し増やしたいなと思っています。
段階グランプリの準備は僕らとCTOの3名で準備していました。合宿で一気に進めつつ業務内で必要なものを実装し、合計で1週間くらいの時間を使いました。
新卒研修を通じてアプリ開発、インフラ実務を体験
インフラ研修が終わった後にはサービス開発研修を実施しました。課題発見と解決をチームで行う研修です。
その後、一部のエンジニアには追加という形で技術研修を行いました。モバイルアプリを使ったサービス開発を一通り体験してもらうものです。エキスパートエンジニア枠のエンジニアはこの研修はなく部署に配属され、業務に入ります。
技術研修では、専用の AWS アカウントを作り、自分で触れられる環境の中で開発してもらいました。ただし、開発したコードを動かす環境としては、クックパッドで実際に利用している、いわゆる本番環境を利用しています。
研修の中で、例えばインフラ部に「サーバを作ってほしい」という依頼をするケースもありますが、それも通常の仕事のフロー通りに行ってもらいました。その中で仕事の流れを把握してもらうことが目的です。
さらに、この時のカウンターは、エキスパートエンジニアとしてインフラ部に配属されたエンジニアに実務として担当してもらいました。研修の中で必要になる依頼ごとは、基本的に新しいサービスを作る時に出てくるものばかりなので、お互いに仕事に慣れることができます。新卒社員の中で実際にサービスを作るサイクルを回してもらっていました。
このような研修を経て、全員が配属されて実際に勤務を開始します。
社員を巻き込み、実践的にスキルを身につける研修を
具体的に新卒エンジニアがどういう活躍をしているか、例をいくつか紹介します。
クックパッドは、現在グローバル展開を進めています。配属後すぐに海外出張に行き、そのままクックパッド初の機械学習の基盤を作ってサービスに投入する仕事をした新卒エンジニアがいました。
他にも、例えばドキュメントのないインフラ環境から読みやすいドキュメントを作りつつ、レガシーな環境をどんどん最新の環境に置き換えてくれているエンジニアもいます。
このように、新卒研修が終わった段階でほぼ先輩社員と遜色ない仕事ができるエンジニアが多かったと感じています。
以上、事例として私達が今、どういう採用や新卒研修を行っているかということについてお話させていただきました。
特に、実際に手を動かして技術を楽しんでもらったり、先輩の社員を巻き込みながら一緒に競い合うイベントなどは、お互い良い刺激になり、かつ仕事の基準を共有しやすくなると思いますので、ぜひお勧めしたいと思います。
発表は以上になります。ご清聴ありがとうございました。
\Webサイト担当者としてのスキルが身に付く/
次回予告
クックパッド 星氏にご講演いただいた内容を2回に分けてお届けいたしました!
次回は弊社コードキャンプ 米田より「新卒エンジニアの研修ですべきこと、してはいけないこと」をお伝えします。
コードキャンプ COO米田氏「新卒エンジニアの研修ですべきこと、してはいけないこと」《新卒エンジニア育成カイギ その7》
Code部にはCTOの成田氏のインタビューも掲載しています。併せてご覧ください!
- この記事を書いた人
- CodeCampus編集部