every Tech Blog

株式会社エブリーのTech Blogです。

エブリー初のエンジニア新卒研修を開催しました!

はじめに

こんにちは。DELISH KITCHEN 開発部 SERS グループ兼、CTO 室 DevEnable グループ所属の池です。

SERS グループでは主に小売向けプロダクトの開発を行なっており、DevEnable グループでは社内開発組織活性化に向けた活動を行なっています。

DevEnable グループについては以下の記事で紹介しているので、よければご参照ください。

tech.every.tv

本記事では今年度から初開催となるエンジニア新卒研修の取り組みについてご紹介します!

エンジニア新卒研修を開催するに至った背景

エブリーでは、新卒社員全員を対象に内定者研修からはじまり、定期的な研修を行い、事業理解や業務におけるスキル獲得など早期の成長をサポートしています。

昨年までの研修ではエンジニアリングに特化した研修は行っておらず、スキル指導は配属後の OJT に依る部分が多いようなオンボーディング体制となっていました。これにより、配属後の実務において以下のような課題が生じていました。

  • マインドセット
    • エブリーのエンジニアとして働く上で期待されるマインド・スタンスがわからない
  • 領域外の自分ごと化
    • 全体像を把握できずに専門領域外のことを自分ごと化できない
  • 実務における前提知識の学習
    • インフラを体系的に学ぶ機会がない
    • テストやアーキテクチャに関して馴染みがない

そこで、今年度からエンジニア領域におけるオンボーディング体制を強化し、エンジニアとしての早期成長をサポートすべく、エンジニアを対象とした新卒研修を開催することにしました。

エンジニア新卒研修の目的と方針

目的

エンジニア新卒研修の主な目的は次の通りです。

『オーナシップを持ってプロダクト課題の解決に動けるエンジニアへの土台を作る』

上述した課題感を解消するとともに、この目的を達成するための施策を検討しました。

方針

目的に基づき、研修中と研修後に分けて次のような方針を決めました。

  • 研修中
    • エブリーのエンジニアとして求められるマインドを理解する
    • 専門領域を超えてエブリー全体で使われている技術スタックを理解する
  • 研修後
    • 内部のオリジナルコンテンツによる研修での支援が難しい領域については、配属後のスキル支援環境を提供する

エンジニア新卒研修のカリキュラム

DevEnable グループと開発部の役員・部長・マネージャーを中心にカリキュラムを策定しました。

今年からの取り組みであるため、コンテンツも役員・部長・マネージャーを中心にゼロから全て作成したものとなっています。

全体で実施期間 5 日です。

  • マインド研修
    • CTO からのメッセージ(1 時間)
    • インシデントへの向き合い方(30 分)
  • 技術スタックの把握(講義 + ハンズオン)
    • バックエンド/インフラ(1.5 日)
    • モバイル(1 日)
    • Web(1 日)
    • データ(1 日)
  • ランチ会
  • (研修後) AWS JumpStart 2024 for NewGrads

ここからは各講義について概要を説明します。

CTO からのメッセージ

この講義では、CTO が今までのキャリアを通じて大切にしているマインドセットを中心講義しました。

CTO の成功談や失敗談、どういう行動が評価されてきたかなど、エブリーの CTO ならではの経験談がふんだんに盛り込まれた内容となっており、配属に向けて大きな刺激となる講義でした。

CTO講義の様子

インシデントへの向き合い方

以前から、インシデント対応は新卒社員にとって精神的なハードルが高く、入っても何をやっていいかわからず、主体的に取り組みにくいという声が多く上がっていました。 また、新卒社員に限らず会社全体としても同様の課題感を持っていたということもあり、インシデント対応におけるマインド理解を研修の題材として選定しました。

この講義は、そのような課題を解消すべく、エブリー開発部におけるインシデントに対する向き合い方・マインドを教える講義です。 内容は次の通りで、インシデントにおける行動指針を学べる内容となっています。

  • インシデントが起きたらまずどうすればよいか
    • 関係ありそうな人間を巻き込む
  • インシデントが起こってそう
    • 野次馬でも参加しましょう
  • 別の部署でインシデントが発生している
    • 関係なくても参加しましょう
  • 小さくてもインシデントはインシデント
    • インシデントかどうかは上長が判定するのでとりあえず報告しましょう(割れ窓理論
  • インシデントは終わってからも大事
    • ポストモーテム

バックエンド/インフラ

バックエンド/インフラ講義では、次のような目標を設定しました。

  • エブリーで共通的に用いられる技術や知識について、一通り触れて理解する
  • 自分たちが開発するシステムが具体的にどのような環境で動いているかを理解する
  • なぜ今の構成になっているかを理解する
  • パフォーマンス観点で取り組み方について理解する

ハンズオンを通して上記目標の内容を理解できる形式となっています。

ハンズオンはいくつかのパートに分かれています。

  • Go を利用した簡易的な API サーバをもとにシステム開発を体験
    • API を操作・改修
    • テストコード実装
    • パフォーマンス改善
  • デプロイ
    • 手動でプログラムを AWS 上のサーバに配置し、インターネット上に公開された状態を構築する手動デプロイ
    • ECS を用いた半手動デプロイ
    • terraform や CI/CD を用いた自動デプロイ

モバイル

モバイル講義は座学とハンズオンを通して学べる形式となっており、次のような内容を行いました。

  • 環境構築およびパッケージ構成、マルチターゲットの説明
  • 画面遷移
    • UIKit, SwiftUI
    • ViewController, ViewModel, View を作成し、画面遷移できるようにする
  • API 接続
    • Network と Model、非同期処理
    • API に接続して情報を取得し、Model 変換を行う
  • View 作成
    • Figma を参考に View を作成。ViewModel と接続し、Model を View に反映
  • 分析
    • アプリログ収集、データフロー、ログ設計、Crashlytics

モバイル講義の様子

Web

Web 講義では、次のような目標を設定しました。

『フレームワークによらない web の基礎知識を理解し、今後の web 開発のベースにする』

  • (座学)web 開発でベースとなる知識を身につける
  • (座学)web 開発で意識するポイントを理解する
  • (ハンズオン)実際の web 開発のイメージをつける

以下のような講義内容となっています。

  • エブリーでの web 開発
  • エブリーの web 開発で利用される技術スタック
  • Web 開発の歴史
  • Web 開発で知っておきたい基礎知識
  • Web 開発で意識されるポイント
  • ハンズオン:仮想の簡易的な DELISH KITCHEN アプリを用いて、デザインをもとに画面を作成

Web講義の様子

データ

データ講義では、データ領域の各分野毎に講義を行うようなカリキュラムとなっています。

  • データエンジニア
    • データエンジニアとは
    • エブリーで扱うデータ
    • 一般のデータベースとの違い
  • データサイエンティスト
    • [業務理解]エブリーのデータサイエンティストが何をやっているか知る
    • [協業の視点]エンジニアリングとデータサイエンスの違いを知る
  • データストラテジスト
    • データストラテジストとは
    • データストラテジストの具体的な業務内容
  • ハンズオン
    • Databricks
    • SQL

ランチ会

研修期間中は、以下の目的のもと、毎日各領域ごとのエンジニア社員とのランチ会を行いました。

  • 人的ネットワークの構築
  • 実務イメージを深める

各領域の社員とのランチ会を行うことで、全ての領域において気軽に話せるようなネットワークを作ることができました。

受講者の声

今後のエンジニア新卒研修の改善に向けて、受講後のアンケートを通じて、受講者からのフィードバックを収集しました。

全体の満足度に関する質問項目では、受講者全員から最も高い評価を得ることができました。

続いてポジティブな声の一例を紹介します。

  • マインドセット
    • 新卒でもインシデントを発見した場合は報告する
    • 自分が苦手だと思う部分があったので、配属してから実際その技術を使用するまでに、しっかりと自習しておく
  • 領域外の自分ごと化
    • クライアントチームやデータチームが何をしているか理解できたことはかなり良かった。今後一緒に仕事するときに相手のことを考えながら業務に取り組めるので、よりスムーズに業務が進められると思う。
  • 実務に必要な前提知識の学習
    • tfstate の知識などが早速タスクで役に立った
    • 利用している技術・ツールについての全体像が掴めた

研修の目的としていた課題感の解消に関連するようなコメントがあり、大枠の目的は達成できたと思っています。

しかし、一方で次のようなネガティブな声もあり、改善点も見つかりました。

  • 最低限必要な知識などを事前に共有することで、もう一段階踏み込んだ講義内容になると感じた。
  • 研修で使用する各種ツールの使い方についての研修か資料があると取り組みやすいと思いました。

今回の研修は、受講者の専門領域外を含めて全ての領域を学ぶような研修だったこともあり、初めて扱う技術やツールが多く出てきます。 また、運営側で受講者の前提知識の基準を高く設定していた部分もあったため、講義に必要な前提知識を持っていないと理解が困難な内容が一部ありました。

次回開催時にはアンケート結果を踏まえてより新卒社員にとって学びの多い研修になるように改善していく予定です。

おわりに

本記事では初開催となったエンジニア新卒研修について紹介しました。

初めての取り組みで改善すべき点も多くありましたが、全体的には開催して意義のある取り組みだったと思います。 プロダクト開発全体に関する解像度を高める機会になったことや、新卒自身が技術スキルにおける課題を把握できたこと、ランチ会で各領域のエンジニアとの接点を構築できたことなど、配属に向けたエンジニアとしての早期成長の土台作りに繋がったと感じています。

エンジニア新卒研修を含め、今後もスキルアップのためのり組みや体制を整えていく予定です。

他の取り組みを開催した際には同様にレポートをお届けできればと思うので、ご期待ください。