【新卒研修FAQ】「ログリーの研修制度について教えてください」という逆質問にエンジニア研修担当が答えました!
こんにちは、LOGLY lift 開発グループの田中です。
前回のブログでは人事の岩崎から、人事管轄の新入社員研修についてご紹介しましたが、今回は新卒エンジニア向けに行っている新入社員研修についてご紹介します。
新入社員は全職種共通の人事管轄研修を修了後、それぞれの部署に配属されます。エンジニア職の場合はテクニカルソリューション部配属となり、そこから2ヶ月間の新卒エンジニア研修が始まります。
講義と演習の2部制
現在、新卒エンジニア研修は講義と演習の2部制になっています。
講義ではネットワークやデータベース、ソフトウェアテストの技法など、エンジニアリングの基礎知識を中心に扱います。
一方の演習では、現場で必要なエンジニアとしての動き方を身に付けるため、チーム制での模擬開発を行います。
この後は講義と演習それぞれについて詳しくお話ししていきます。
講義の分野
講義パートは、エンジニアリングの基礎知識を10分野に分けて学習する構成となっており、分野ごとに先輩社員が講師役として割り当てられます。
昨年実施した2021卒の講義シラバスは以下のとおりです。
- システム開発
- ソフトウェアテスト
- ネットワーク
- データベース
- Web
- セキュリティ
- Linux
- コンテナ技術
- クラウドインフラ
- アドテクノロジー
エンジニア職の新入社員は大学でコンピュータサイエンスを学んでいる方が多いことから、一定の基礎知識を持っている前提で設計しています。また、配属先部署のプロダクトによって技術スタックが異なることから、特定の技術領域に依存しない内容になっています。
説明するのは講師ではなく新入社員
講義形式の研修と聞くと、ベテランの先輩社員がスライドを使って講義するイメージを持たれるかと思いますが、ログリーでは少し違ったスタイルを取っています。
まず、講師役の先輩社員から、講義分野に関するいくつかのお題が出されます。数日間の調査期間が与えられ、新入社員たちは技術書やWeb上からお題に関する情報を収集してまとめます。
どんなお題が出るかというと、主に技術に関する説明です。その技術の概要から、どのような課題を解決する技術なのか、どのようなメリットやデメリットがあるかなどを説明してもらいます。
データベースであれば、
トランザクションの分離レベルについて説明してください
ネットワークであれば、
ロードバランサについて説明してください
Webであれば、
Cookieについて説明してください
ブラウザのアドレスバーに http://corp.logly.co.jp を入力してから画面が表示されるまでに何が起きているかを説明してください
といった感じです。
お題のレベル感としては、『4択ならなんとか答えられるが記述式だと自信を持って書けない』くらいの難度にしています。ただ単語を覚えるだけでなく、自分の言葉で説明するために咀嚼して理解してもらうことが狙いです。
また、説明する際の要求水準として自分以外の新入社員が理解できるよう説明することを求めるようにしています。エンジニアの業務では、物事を誰かに説明する機会は意外と多いものです。説明する相手は同僚や上司、営業担当者や社外の関係者かもしれません。相手の持っている情報を推し量った上で説明する練習も兼ねています。
調査期間の終了後には勉強会が開催され、新入社員がそれぞれ調べてきた内容を3分程度で説明します。
講師役の先輩社員は、説明を聞いた上で
素人質問で恐縮ですが・・・リダイレクトが発生する場合はどのようなHTTPレスポンスが返るんでしょうか?
のような追加質問をしたり、
実務では◯◯な場合に使ったりします
のような補足説明やアドバイスをすることで新入社員がより理解を深められるようにしています。
講師も成長する裏テーマ
この講義形式には新入社員の基礎知識を引き上げる以外に、もう一つの狙いがあります。
それは『講師の成長』です。
講師役になる社員はベテランだけでなく、2年目や3年目の若手も担当します。そうなると、先ほど例に挙げた『ブラウザのアドレスバーにURLを入力して画面が表示されるまで』や『トランザクションの分離レベル』について補足の解説や追加質問をすることが求められます。そのため、新入社員がお題について調べている間、講師役も予習をしておく必要があるわけです。
『人に教えるには3倍理解していないといけない』という言葉がありますが、まさに講師役となる社員には3倍の理解が求められることになります。
演習は模擬開発
演習パートでは、新入社員同士でペアまたはチームを組んで模擬開発を行います。
現在ログリーではネイティブ広告配信が中心事業となっているため、配信サーバと管理画面からなる広告配信システムの実装をお題にしています。
メンターとなる先輩社員がプロダクトオーナー役として要件を出し、新入社員は要件を元に仕様を決めて実装します。
模擬開発ではありますが、実開発に近づけるために最初は明確な要件の提示はせず、新入社員がヒアリングしながら要件を固めていく方式を取っています。
従って、同じ課題でもチームごとに完成する画面や機能が異なるのも面白いポイントです。
要件には罠要素も仕込んであり、そこに気付かず実装を進めると後から手戻りが発生する、なんてこともあります。
複数人での開発を経験する意味
チームで行うシステム開発には個人のプログラミングと比べて様々な難しさがあり、実務ではその難しさと日々向き合うことになります。
設計の認識が食い違っていたり、コードレビューで好みの衝突が起きるかもしれません。Gitのコンフリクト解消も個人で作業していると滅多に経験しないことだと思います。また、ログリーは在宅勤務ファーストの勤務形態を取っており、主なコミュニケーションはSlackやZoom上で行います。リモートワークならではの難しさもここに加わってくるわけです。
そのため、開発演習では技術の習得やシステムを完成させること以上に、チーム開発のための動き方を身に付けてもらうことを重視しています。メンターも技術的サポートだけでなくチーム内のコミュニケーションについてアドバイスすることで、チームで動ける開発者としての成長を後押しします。
新入社員もコードレビュー
開発演習ではコード管理にGitHubを使用しており、Pull Requestでのコードレビューを必須としています。コードレビューにはメンターも参加はするものの、あくまで主幹は新入社員とし、チームメンバー間でレビューを行うようにしています。
Pull Requestの作成やコードレビューを通じて以下のような動きが身に付くようメンターがサポートします。
- 適切な単位でコミット、Pull Requestを作成できること
- 変更点を明確に表現したコミットコメントを書くこと
- 読みやすいPull Requestを作ること
- コードの問題点や疑問点をレビューで指摘できること
- レビューにおいて相手を尊重したコミュニケーションが取れること
- 指摘された点について検討し改善できること
成果発表会
6月末の演習最終日にはエンジニア研修成果発表会を行います。チームごとに管理画面や広告配信の動作デモを交えて、研修期間での学びや成果を発表します。ログリーでは「発表会」と名の付いたイベントがあると職種関係なく社員の多くが参加する文化(?)があり、新入社員は「え!? こんなに来るんですか?」と驚いたりします。みんな優しい!
発表会での発表を終えた後はチームごとにメンターからのフィードバックを受け、晴れてエンジニア職の新卒研修が修了となります。
編集後記
人事管轄研修の記事に引き続き、2ヶ月間の新卒エンジニア研修について中身を出し尽くすつもりで書いてみました。
エンジニア職を取り巻く技術環境は年々変化しており、ログリーのエンジニア研修も試行錯誤を続けています。この先どのような研修になっていくかはまだわかりませんが、ファーストキャリアでログリーを選択した事を後悔させないよう、エンジニアメンバー総出で育成に臨んでいきます。
ご覧いただきありがとうございました。