Slide 1

Slide 1 text

2018年セプテーニ・オリジナル 新卒研修について 2018年6月20日 池田 健虎 新宿Geek Lounge#5 新卒・中途研修Meetup

Slide 2

Slide 2 text

発表の目的 ● 新卒エンジニアの研修を行う人のご参考に ● 自社でScalaエンジニアを育てるご参考に ● これからScalaを独学で学ぶ方へScalaを、スムーズに習得す る方法を伝えたい

Slide 3

Slide 3 text

目次 ● 自己紹介 ● 去年までの研修の振り返り ● 課題の抽出 ● 2018年度研修の目標設定 ● 2018年度の研修内容について ● Scala研修について ● 現状の振り返り

Slide 4

Slide 4 text

● 池田 健虎(タケト) ● セプテーニ・オリジナル4年目 ● セプテーニもくもく会の企画運営 ● オンラインスクールのScala講師 ● 2018年4月より組織開発部へ ○ ( 新卒・中途の研修をサポートする業務など ) 自己紹介 @taket0ra1

Slide 5

Slide 5 text

新卒の人数:3人 研修期間:4〜 8,9月 ( 5,6ヶ月 ) 研修内容:Java、Scala、データベース、インフラ、TDD DDD、設計、Play Framework、アルゴリズムなど 研修に関わった人員:12人 → 研修期間が長く、現場投入まで5,6ヶ月かかる 昨年のセプテーニ・オリジナルの新卒研修

Slide 6

Slide 6 text

研修内容 日数 Mac講座 1 Web基礎 2 Scala研修準備 12 Scala研修 21 DB基礎 3 インフラ研修 1 ロジカルシンキング 1 研修内容 日数 設計(アルゴリズム) 1 スクラム研修 0.3 TDD研修 1 DDDの基礎研修 1 チーム開発 40~60 予備 7 Git、Atlassian講座 1 昨年度(2017年)の研修内容と研修日数

Slide 7

Slide 7 text

過去の研修内容の振り返り① ● 研修期間が長い割に身につくスピードが遅い ○ 原因:書籍を配布した自習形式にしていたため → 都度講師がインタラクティブに教えたり、ペアプロで理解してもら う。

Slide 8

Slide 8 text

過去の研修内容の振り返り② ● 現場で不自由なく開発ができるScala力の基準が曖昧 → Scalaの研修はドワンゴさん提供のscala_textに変更。 他の研修も新卒が研修で学ぶべき領域を明確にした。

Slide 9

Slide 9 text

新入社員が研修で学ぶべき領域を明確に 学ぶべき領域は、全てのプロジェクトで必要になる知識のみ。 研修で扱わなかった部分は、チームでカバーしてもらう。 チームA チームB チームC ・digdag ・docker ・ETL処理 ・React.js 研修で学ぶべき領域 全プロジェクトで 必要な知識・スキル ・DDD応用

Slide 10

Slide 10 text

研修で学ぶべき領域(開発スキル) 開発スキル 1.Scala ドワンゴさんのカリキュラムと演習問題を通して 基本的なScalaの書き方を理解する。 9. macOS macOSに慣れていない新卒もいるので、一通りターミナル操作や Linuxコマンドに慣れてもらう。 2.Play Framework ドワンゴさんの課題、自作のアプリケーション、 DDDによ るアプリケーションを作る。 10.IntelliJ IntelliJでの便利なショートカットや、開発環境の作り方など覚えてもら う。 3.Unitテスト ScalaTestを使ってテストがかける状態。 テストを書く意味を理解する。 11.PRの出し方 レビューがしやすいプルリクの出し方を学ぶ。 4.Database 基本的なクエリがかける。 joinができる。 正規化ができる。など。 12.エラーの 調べ方 エラーを読む習慣をつける。スタックトレースの見方。 5.Web基礎 Webの概念的知識の理解。 (プロトコル、webサーバ、webクライアント) 13.共同開発 効率よく共同でアプリケーションを作ってもらうことを学ぶ。 6.OOP 構造化プログラミング、モジュールプログラミングユビキタ ス言語の重要性などの基本概念を理解。 14.スクラム スクラムマスターによるスクラムの説明。 7.DDD DDDとは?なぜやるのか? 戦術的設計を覚えてもらう。 (業務で必要なため) 15.設計 要望を要件に落とし込み、機能を開発できるようにする。 8.Git 共同開発するための gitの操作に慣れてもらう。 - -

Slide 11

Slide 11 text

研修で学ぶべき領域(ヒューマンスキル) ヒューマンスキル 1.コミュニケーション 円滑に開発するために必要なコミュニケーション。 2.段取り力 上手く仕事を進める段取り力を学んでもらう。 (やるべきかどうかなど ) 3.質問の仕方 具体的な言葉や概念を用いて質問できる。 4.聞く力 物事を素直に聞くこと。 5.ホウレンソウ 結論から伝える。説明が簡潔でわかりやすい。 6.共同開発の心得 3本柱(HRT) 謙虚・尊敬・信頼 研修を通して学んでもらう。

Slide 12

Slide 12 text

エンジニアとして自ら学び、アウトプットして チームに貢献できる状態を目指す 開発スキル ヒューマンスキル

Slide 13

Slide 13 text

2018年度の新卒研修 ● 新卒の人数:2人 ● 研修期間:4月〜7月(3,4ヶ月) ● 研修に関わった人員:12人(講師やレビューのサポート) ● 1日の終わりに日報の提出 ○ 今日やったこと、気付いたこと、困ったことなど。 ● 日報の提出後に夕会 ○ 日報の内容を共有してもらう。

Slide 14

Slide 14 text

2018年度の新卒研修 期間 講義名 研修日数 内容 4月上旬 Mac講座 0.5日 macの操作、Linuxの知識。ターミナル操作など。 4月 Scala研修① 15日 ドワンゴさんのscala_text、過去に研修で解いてきた練習問題 4月後半 Webの 概念的知識 1日 Webアプリケーション概要、Webサーバー、Webクライアント、 HTTP、DNS、TCP/IP、データベース、フレームワーク 5月前半 Database研修 3日 「ゼロからはじめるデータベース操作」を解いてもらう。 5月前半 OOPの基礎 2日 オブジェクト指向とは何か、オブジェクト指向が必要になった背景、 オブジェクト指向で実現したいこと、ユビキタス言語について 5月中旬 Git研修 0.5日 Gitの概要説明、Gitをどう使うか、MR/PRのより良い進め方 5月中旬 Scala研修② 8日 美容室の予約コンソールアプリケーションの開発。Scala講座①の復習、 DI、インターフェースのプログラミング、マルチプロジェクト、Unitテスト 5月末 Webアプリ研修① 7日 ドワンゴさんのscala_textを解く。Play FrameWorkの入門。ScalaTest。

Slide 15

Slide 15 text

2018年度の新卒研修 期間 講義名 研修日数 内容 6月上旬 6月中旬 Webアプリ研修② 15日 PlayFrameWorkで美容室の予約webアプリケーションを作成。 要望から要件に落とし込んで開発していく。 6月中旬 DDDの基礎 2日 DDD Quicklyを読む。戦術的設計を一通り把握したあと、システム全体の設計や要 件定義にDDDがもたらすかメリットを説明。設計の実践。 6月後半 7月中旬 Webアプリ研修③ 15日 美容室の予約webアプリケーション。DDDに沿って作っていく。 7月中旬 スクラム研修 0.5日 スクラム開発する上でスクラムの基礎を学ぶ。 チーム配属へ

Slide 16

Slide 16 text

Scala研修

Slide 17

Slide 17 text

3年前に私が入社した時 Java未経験、webアプリケーションを作ったことがなく、 書籍ベースの研修が難しかった。 自分があの時こう勉強すればよかったと思った内容で カリキュラムを考えた。 ボトムアップ型で行う

Slide 18

Slide 18 text

Scala研修①の内容(15日間) ● ドワンゴさんのscala_textを一巡する。 ○ REPLで動作確認 ○ 理解できるまで質問 or 調査 ○ slackを活用し現場のエンジニアがサポート ○ 各章で演習問題の実施

Slide 19

Slide 19 text

Scala研修②の内容(8日間) ● 復習を兼ねてコンソールアプリケーションを作る ○ 美容室の予約アプリケーション ● 学んで欲しかったこと ○ DIの学習 ○ マルチプロジェクトなど構築 最初からベストの答えを教えるのではなく プロセスを通して理解してもらう

Slide 20

Slide 20 text

33日→23日 例年のScala研修の工数を削減

Slide 21

Slide 21 text

Webアプリ研修

Slide 22

Slide 22 text

Webアプリ研修①の内容(7日間) ● ドワンゴさんのscala_textの「Play Frameworkを使ったWebアプリ ケーション作成」を行った。 ● 学んで欲しかったこと ○ スクラッチからWebアプリケーションを作る ○ フォームを使って実装する ○ DBにデータを保存する ○ jsonを返すapiサーバー

Slide 23

Slide 23 text

Webアプリ研修②の内容(15日間) ● コンソールアプリをwebアプリケーションにした ● 新卒同士による共同開発 ● 要望を要件に落とす設計も行う

Slide 24

Slide 24 text

Webアプリ研修③の内容(15日間) ● DDDによるwebアプリケーションの作り直し ● 学んで欲しいこと ○ DDDの戦術的設計のを理解して使ってもらう ■ 経験の浅いエンジニアにDDDの戦略面について理解す るのは難しい。 ■ 現場のプロダクトは戦術的設計で開発されているので言 葉の意味を理解する ○ 全体像を把握した状態から作り直すことにより、コードをブ ラッシュアップ

Slide 25

Slide 25 text

40~60日 → 37日 Webアプリ研修の工数を削減予定

Slide 26

Slide 26 text

良かったこと ● 研修期間の工数削減 ○ 5,6ヶ月→3ヶ月半 ● プロセスを通してなぜ必要なのかを学習 ● 開発チームへのアサイン時期が早まる ● 早期即戦力化が実現できる

Slide 27

Slide 27 text

失敗したこと ● 自分の理解力不足で教えられない箇所があった ○ 都度勉強し直しよりわかりやすい例を用意した ● 適切な演習課題が用意できなかった ○ scala_textに沿った課題を用意する ● 教える側のリソース不足 ○ 教えてる時は次の準備ができない

Slide 28

Slide 28 text

教えることが 一番勉強になる 「教えること」でより理解が深まるので2 年目、3年目の新卒エンジニアが教え れる仕組みを作りたい。

Slide 29

Slide 29 text

ご静聴ありがとうございました