2021年度 エンジニア新入社員研修のご紹介
こんにちは。エンジニアの新入社員研修を担当している青木です。 今回はリモートで行われた2021年度の新入社員研修が、どのような様子だったかをご紹介します。 現在は2021年度の振り返りをもとに、迫っている2022年の新入社員研修の準備を進めています。
入社予定の皆さんやエントリーを迷っている皆さんの不安を軽減できればいいなと考え、この記事を書くことにしました。 昨年実施した研修に新入社員の皆さんから、沢山のフィードバックをもらいました。 その中に「完全リモートという不安な環境でエンジニアとしてのキャリアをスタートしたので〜」という一文がありました。 社会人という「新しい環境」に不安を感じているのに、馴染みのない「リモート環境」という要素も加わっていた為、不安は大きく、もっと軽減してあげられたらよかったなと思いました。 この記事を読んで少しでも研修の様子やドワンゴの文化が伝わり、不安が軽減できればよいなと考えています。
研修の目的と概要
研修の目的は「ドワンゴのカルチャー」を基に、「仕事をしていく上でのマインドセット」と「基礎的なエンジニア力」を身につけることとしています。
ドワンゴのカルチャーとは「自由と裁量と責任」、「ものづくりを楽しむ」、そして「多様性を受け入れる」です。
まず「仕事をしていく上でのマインドセット」は難しいのですが、簡単にいうと「個人としても」「チームや会社などの組織としても」トータルでプラスになっていくような考え方や選択をすることです。 例えば、自分達が使いやすいものを作ったとしても、別の視点から見ると他のチームやユーザさんに使いにくかったりしたら意味がありません。 自分がやりたいようにやった結果、本人はよくても他のチームの人やメンバーが不快な思いをし、組織全体の生産性が下がったりコミュニケーションコストが上がってしまうのも良くありません。 そのため、できるだけ経済的合理性や全体最適を意識して欲しいと思っています。よくある言葉になってしまいますが、ハードスキルとソフトスキルのバランスが重要だということを伝えています。
また、入社してくる方々は多様性があり、バックグラウンドもスキルセットもバラバラです。 研修後、それぞれ様々な部分を担当するチームに配属されるわけですが、研修ではサーバーのセットアップからフロントエンドまで一通り触るように設計されています。これはサーバーサイドの人もフロントエンドやアプリのことを知ったり、お互いの状態や状況を知って仕事をすることで、ドワンゴの文化でもある「多様性を受け入れる」ことができるのではないかと考えている為です。
そして「基礎的なエンジニア力」ですが、ここで指している「基礎的なエンジニア力」というのは「技術に精通し配属後、即戦力になること」ではありません。 もちろん、即戦力になれることに越したことはないのですが、3ヶ月という短期間で広大で深いソフトウェアエンジニアリングの領域を学びきることはできません。 それよりも、まず広く知識をインプットすることや、繰り返し手を動かし経験して慣れてもらうという点に重きを置いています。 各プロダクトで利用されている基本的な技術や考え方に触れながら、モノを作り、繰り返し手を動かして慣れてもらうようなカリキュラムにしています。
エンジニア研修の流れ
エンジニア研修は7~10冊の「課題図書」と並行して、「基礎研修」、「個人課題」、「チーム課題」の3つのフェーズに分かれています。各個人に配属先のチームに所属しているメンターが付き、メンターとは定期的に1on1を行います。課題で詰まっている部分や、会社や新生活で困っていること、雑談など、なんでも話すことができる時間を設けています。
研修はフルリモートで実施しますが、ずっと一人で黙々とやったり長時間の座学ばかりというものではありません。毎朝、出社後デイリーミーティングを行い、「昨日やったこと」、「今日やること」、「その他なんでも」をそれぞれ共有します。日中には合計2回、各30分間「ティータイム」という雑談時間を設け、通話をする機会があります。無理に話す必要はなく、聞いているだけでもいいですし、作業をしながらでも良しとしています。1日の終わりには振り返り時間を設け、その日のKPT(Keep, Problem, Try)を行った後、デイリーミーティングと同様の形式で共有し合います。これらを行うことでお互いの趣味や人となりの理解、課題や新しい生活での悩みの共有など、同期どうしでのコミュニケーションを行うことができます。
課題図書
課題図書は研修期間を通して、それぞれフェーズにあった本を毎朝1〜2時間読んだあと、その部分について30分間ほど、感想や質問をする時間を設けて発見や疑問を交換します。 例えば、基礎研修でWebの基礎を学ぶタイミングでは「Webを支える技術」を読んだり、チーム研修が始まる前には「Team Geek」や「スクラムブートキャンプ」などを読むようになっています。他にも「達人プログラマー」や「入門監視」など様々な分野の本を読みます。 研修カリキュラムのテーマに沿った本を読むことで、「これ、本で読んだ部分の延長だ」や「これカリキュラムだけじゃ理解できなかったけど本で知識が補完された」など、体験と合わせて繰り返し知識をインプットすることができるので記憶に残りやすいという声がありました。
基礎研修
基礎研修では、N予備校の教材を利用しながら皆の知識のベースを揃え、インフラからフロントエンドまで一通りのWebアプリケーションの作成を経験します。ローカル環境での開発だけではなく、各個人に社内向けのVMインスタンスを払い出し、インフラの設定やミドルウェアのインストールを行ってもらい、最終的にはWebアプリケーションをホスティングします。
入社しエンジニアの研修が始まったときに、よく聞かれた声が「ついていけるか不安」という声でした。 N予備校の教材は未経験の人でも丁寧に解説されているため、知っているところは流し、知らない部分は採用するなど、各自のペースにあわせて知識を得ることができます。知っている人は読み飛ばして、ストレッチ課題をやってもらったり他のメンバーの詰まっているところをサポートしてもらいます。
ここでの成果物は簡単なWebサービスやチャットボットです。実際に新卒の皆さんが作ったチャットボットで遊んだり、活用したりしました。
個人課題
次の個人課題では「ブログや掲示板を作成する」といったシンプルなテーマと、幾つかの簡単な「要求」をもとに、それらの仕様を決め、設計・実装を行いホスティングをします。「要求」とは、「ログイン機能が欲しい」や「各ポストにコメントをつけたい」などというものです。「要求」以外にも技術的な制約を課しています。例えば、「RDBを使うこと」、「CIを回すこと」などです。個人課題と言っても誰とでも相談してもよく「構築は自分の手で行う」という部分を重要視しています。 この課題は基礎研修で学んだことを基に、仕様を考えたりメンターと相談したりしながら、サーバの構築からアプリケーションの作成、ホスティングまで一通り行うようになっています。基礎研修とは違った「アプリケーションの要求」や「設計」といった抽象的なことを具体化する新しい課題を経験しながらも、アプリケーションを一通り作成するといった基礎研修の内容を繰り返し応用していくという形になっています。
最終的に作ったものは、Slackで共有しワイワイ触ってもらってなどしてフィードバックをもらいます。 様子は「ドワンゴ21新卒がフルリモートでの入社から機能をリリースするまで」の記事を覗いてみてください。実はこれを体験した後にセキュリティ研修も準備してあります。
チーム課題
そしてチーム課題は「動画サイトを作ろう」といった、さらに複雑な課題になります。 「要求」を元に仕様を決めたり設計したりするのは同じですが、今度は4〜5人のチームに分かれて共同作業でアプリケーションを作成してもらいます。 インターフェースや仕様の定義や、ちょっとした問題の解決を通話をつなぎながらやったり、ペアプロしたりなどリモートワークでのチーム作業に必要な流れを体験することになります。 前回の研修では次のような課題が出ていて、みんなで考えたりメンターに相談したりなどして解決していました。
- 「動画」という重いデータを取り扱うのため、その取り回し、レスポンスのレイテンシ
- 意図しないフォーマットへの対応やエラーハンドリング
- 投稿されたコメントを画面上に流す時のパフォーマンス
ハッカソン
そして最後はちょっとしたハッカソンを実施しました。テーマはあるものの(実質テーマも大喜利のようになっていて、あるようでないものですが)、それ以外の条件は何もありません。言語もプラットフォームも、誰と何を作るかも自由です。作成されたものは発表会でLTをします。Web上やSlack上で遊べるゲームを作る人もいれば、業務に役立つちょっとしたツールなんていうものもありました(また機会があれば、ハッカソンについての記事を書こうと思います)。
その他のイベント
これらに加え、いくつかのカリキュラムやイベントが定期的に実施されます。 懇親会はもちろん(今回はリモートでしたが)、リモートワークが基本なのでみんなで出社して研修を行ってみたり、Values Cardというゲームをみんなでやってみるといったコミュニケーションを深めるためのイベントもあります。
Values Card はその人が何を大切に思っているかを手持ちのカードと比較しながら決め捨てていき、最終的に5枚を選ぶという形式になっています。そのため絵柄的に面白くなる場面もあり、そちらでも盛り上がりました。新卒研修だけでなく普段一緒に業務をおこなっているチームでやるのも面白いため、遊んだことがない方は是非試してみてください。
他にも、研修を進めていく中で補強するタイミングで、「セキュリティ研修」や「CTOのお話」、「エンジニアの心技体」などといった働く上で気を付けて欲しいハンズオンや座学も実施されます。
そして、年度末には「@t_wada」さんにリモートでお越しいただき、「ソフトウェアエンジニアとしての姿勢と心構え」というテーマの講演をしていただきました。年が開けて2年目になる少し前にもう一度、「仕事をしていく上での学び方や姿勢」を振り返ってもらうためにこのタイミングに実施しています。
メンター
各個人にメンターが一人ずつ付きます。メンターはメンティーのサポートをしてあげたり、詰まっているポイントの相談に乗ったりします。「基礎的なエンジニア力」という話が最初に出ましたが、「基礎的なエンジニア力」の中には技術に関する知識以外にも開発していく上でのノウハウや心構えがあります。 例えば、「エラーが発生したらまず読む(エラーが発生しましたで終わらせない)」、「あらゆることを調査する(一次ソースをあたる癖をつける)」、「詰まった場合行動を起こして相談する」、「相手の前提知識や文脈を考えて質問する」などです。これらのスキルをメンターが一緒に実施しながら伝えていくことで「学び方自体を学ぶこと」に繋がっていくと考えています。そして、メンターは基本的に配属先のチームから選出されるため、研修中だけでなく配属後もサポートしてくれるようになっています。
また、メンターは研修のサポートをするだけではなく、メンティーに教えることでメンター自身も成長してもらうという意図があります。例えば、理解していると思っていたことでも、説明しようとした時に「なぜそうなっているんだっけ?」、「どのようにしたら相手に伝わるのか」、「理解してもらうにはどうしたらいいのか」などといった、より理解を深めたり学び直すチャンスがあります。
まとめ
簡単ではありましたが、フルリモートにおけるエンジニア研修の様子をご紹介させていただきました。 私は、2020年度の研修から新卒研修を担当しています。最初は2019年度の末にフルリモートに切り替えたりなど慌ただしい中スタートしたため、不備が多く、反省すべき点がたくさんありました。しかし、各カリキュラムが終わった後に受講者やメンターから様々な改善意見をいただくことができました。その結果、このような研修が整備でき、それなりに充実してきたのではないかなと感じております。 まだまだ改善していく余地はあるので、よりスムーズに業務に入れるように、また不安を抱えたままチームに配属されないように改善していこうと思います。
この記事を読んで入社後の不安が軽減されたり、応募してみようと思っていただけたら幸いです。
株式会社ドワンゴでは、教育事業、ニコニコ事業、モバイル事業など様々なサービス、コンテンツを一緒につくるメンバーを募集しています。ドワンゴに興味がある。または迷っている方がいれば、気軽に応募してみてください。