こんにちは、2017年のエンジニア研修の担当者を務めます、 @asuforce & @shimojuです。 研修の担当者は社内でスーパーバイザーとか船頭と呼ばれております。
ペパボの新卒も7期目になり、エンジニアとして入社した4人が研修に励んでおります。 6月の後半から始まったエンジニア研修が1つの節目を迎えたので、これまでの様子を紹介いたします。
ペパボの新卒エンジニア研修について
研修の内容は大きく、基礎研修、サイクルOJTに分かれています。 基礎研修とは3ヶ月の間にWeb開発、Webオペレーション、モバイルアプリケーションを学ぶもので、サイクルOJTとは複数のサービスを2週間ごとに移動しながらOJTを行うものになります。 より詳しい内容は以下の記事を参考にしていただけると、概要を掴むことができると思います。
事前準備
研修が始まる前の事前準備として、研修場所の確保やカリキュラムの見直し、各研修のイントロダクション用スライドの作成、後述する座学の担当者募集など様々な事を行いました。 基礎研修は例年の内容をベースにしていますが、去年よりもっとおもしろくできる部分を加えるために、研修内容を見直し新しい要素を盛り込む作業を行いました。
どのような内容にするか決める前にこれまで研修を担当してきた先輩方から、研修の方針の決め方や研修担当者の目標設定方法などを相談しアドバイスをもらいました。 その中でも、コンセプトの決定は研修の軸を作ることができ、意思決定がスムーズになることがわかり先に決めることにしました。 コンセプトは研修期間全体に影響する決定なので、非常に慎重に決めました。 たくさんの事に主体的にチャレンジにしてほしい思いを込めて、ナイストライ!をコンセプトに設定しました。ペパボでは周りの人のチャレンジを賞賛する文化があり、その時に使われている言葉がナイストライです。 研修生達がこれからたくさんの事に挑戦していくにあたり、失敗はつきものだと思います。失敗に対してもフィードバックがある環境を作ることで、より様々な事に挑戦していけると思いました。 失敗を恐れずに新たな成果を生み出すためにもこの言葉が相応しいと確信し、このコンセプトをもとに研修の内容を決定していきました。
担当者としては、研修に関わる準備を全て行いました。今までに無い裁量の仕事を経験でき非常に大変だった反面、やり甲斐を感じることができました。
Web開発研修について
冒頭でも書いたように、基礎研修の最初はWeb開発研修からスタートします。
Web開発研修では、Rails Tutorialを教材として、Ruby on Railsを通してWeb開発の基礎を学びます。終わったら、Tutorialで作ったアプリにJSONを返すAPIを実装していきます。
Rails Tutorialは例年は英語版を使用していましたが、今年は内容理解に重点を置きたかったことと、JSON API化に全員挑戦してもらいたかったため日本語版を採用しました。
Web開発研修の目的として、以下の3つを設定しました。
- Railsを通してWeb開発を学ぶ
- 開発プロセスを学ぶ
- API開発を通してマルチデバイスを意識する
Railsを通してWeb開発を学ぶ
ペパボのサービス開発では主にRubyとPHPを利用しています。新たな言語やフレームワークは次々と登場していますが、研修では自社で実際に利用されている技術を選択すべきだと考え、今年もRailsを採用することにしました。 また、The Rails Doctrineに表されるようなRailsの思想は他のフレームワークにも影響を与えているため、最初に学ぶWebアプリケーションフレームワークとして適していると判断しました。
ただしRailsを学ぶこと自体が一番の目的ではなく、Railsを用いてWebアプリを開発する過程で、MVCやデータベース、RESTなど、Web開発に必要な知識を得てもらうことに重きを置いています。そのため「Railsを通してWeb開発を学ぶ」と設定しました。
この目的をサポートするため、後述する座学ではテストやオブジェクト指向設計、RESTやWeb APIについてなど、Web開発に関わるさまざまな分野のお話をしてもらいました。
開発プロセスを学ぶ
学生時代にプログラミング経験があっても、チーム開発の経験がある人はさほど多くありません。「チームでの開発プロセス」を理解し、実践することを目的として設定しました。
- 開発にはGitHubを使い、変更はすべてPull Requestにする
- Pull Requestをレビューする
- 口頭、Issue、チャットなどで相談する
このような、チーム開発の現場で当たり前に行われている手法に慣れることを意識しています。
API開発を通してマルチデバイスを意識する
Rails Tutorialが終わったらJSON API化に挑戦してもらいます。
アクセス解析サービスを提供しているSimilarWebによれば、2015年1〜9月におけるWebアクセスのモバイル比率は6割に達しており、閲覧環境はもはやPCのブラウザだけではなくなっています。ペパボが提供しているSUZURIでも、2017年1〜7月のモバイル比率は8割近くとなっていました。 さまざまなデバイスに対して最適なユーザー体験を提供する基盤としてAPI開発を位置付けてもらいたいと考え、この目的を設定しました。
Web開発研修のふりかえり
当初の想定より日数が少なくなってしまい、API開発に割ける時間が減ってしまったものの、全員がAPIの開発まで入ることができました。 JWTを用いた認証を行い、JavaScriptでAPIと通信するところまで実装できた人もいました。
研修後のふりかえりでは、「Railsを通して一通りの開発手法を学べた」「わからないときに質問するタイミングがつかめてきた」など、概ね目的が達成できたコメントを得られました。
Web開発研修では基本的にRails Tutorialを教科書とした個人作業であることから、レビューがなかなかやりにくいという課題があります。 ふりかえりでは、Pull Requestの粒度や出すタイミング、レビューのやり方などの課題が出ていました。うまくWeb開発研修中にチーム開発を体感できるような構成にしていきたいところです。 しかしここで慣れておくことで、実際にチーム開発を行うお産ウィーク(後述)やWebオペレーション研修では、Pull Requestを出しレビューする一連の流れが自然にできるようになっていました。
エンジニアぽよん会の紹介
インプットの時間として、毎朝1時間エンジニアぽよん会を行なっています。 これは以下の記事の「超高速!技術チーム読書会」をアレンジしたものになります。
各々が20分間好きな技術書やWebサイトを読みながらメモを残し、その後の時間を使って学んだことを順番に共有していくというスタイルにしています。 オリジナルの「超高速!技術チーム読書会」は毎日、本を変えるというものでしたが、それをルールにしてしまうとなかなか難易度が上がりそうだったので、本を変えるタイミングは各々に任せています。
研修生の4人とも、Swift公式のドキュメント、Web開発、インフラ、Linuxなど趣向の違った本やWebサイトを読んでいるため、一日に色々な知識を得ることができると好評です。 すぐに実践できる知識だけでなく、未来のための知識を幅広く身につける事が習慣化されるので非常にオススメできるメソッドだと思います。
座学の様子
毎週火、木に1時間の座学を社内のエンジニアにお願いしています。これまでに以下座学が開催されました。 普段の研修では学べないことを吸収してもらい、知識を広げる事を目的として行なっています。
講師 | タイトル | テーマ |
---|---|---|
amacou | テストについてのお話をしよう | Web/モバイル |
june29 | チーム開発 | フリートーク |
gs3 | オブジェクト指向設計入門とデザインパターン | Web |
shikakun | 2017 年 HTML と CSS の旅 | Web |
joe_noh | わたしとREST、あなたとWeb API | Web |
baachii | Vue.js で作る日報アプリケーション ハンズオン | Web |
kenchan | ソフトウェアと見積もり | フリートーク |
kyokutyo | Railsを使って個人開発したアプリケーションを自慢します! | Web |
自分の興味ある事や知らなかった事を知る機会としてどの講義も非常にたくさんの事を学べる物になっていたと思います。 ここで学んだ事をWeb開発研修やお産ウィークで積極的に使う姿勢を見ることが出来ました。
ふりかえりの様子
研修の節目のふりかえりと、週次のふりかえりを行なっています。 ここではKPTを使って、その週に学べたこと、問題だったこと、次週に改善したいことを挙げて次の週に繋げるサイクルを作っています。 書き出す内容は研修に囚われず、個人的な事なども自由に書き出してもらっています。これによって私生活から影響があったことなどを再認識して周りから意見をもらったりする場になっています。 研修の節目のふりかえりでは、その研修で体得できたこと、次の研修でできるようになりたい事を書き出し、まとめてもらうことで研修の中での成長を実感してもらう工夫をしています。
お産ウィークについて
Web開発研修を終えた後は、新卒のエンジニア4人とデザイナー2人の協業を経験してもらう研修としてお産ウィークというものが行われます。 お産ウィークは指定されたテーマから5日間で開発、発表を行う研修です。 今年は「みんなが見る!イベント一覧サービス」、「みんなの今がわかる!プロフィールサービス」をテーマとして設定し、2チームに分かれて開発してもらいました。
開発はRails tutorialで学んだことを活かして、自分たちの作りたい物を生み出していました。 また、デザイナーのワイヤーフレームを元に実際のコードに反映していくなど、より実務に近い作業を自分たちで工夫しながら行なっていました。 始めてのチーム開発でしたが、最後まで支え合いながら進めていたのがとてもよかったです。
イベント一覧サービスの「なかにわ」、プロフィールサービスの「ペパプロ」が誕生しました。 なかにわは予定を立てるとGoogleカレンダーに自動で追加される機能があり、ペパプロには事業部ごとの並べ替えやメンバーの検索機能が実装されていてどちらも5日間の成果を出し切った物に仕上がりました。
発表会では職種問わずたくさんのペパボの仲間が見に来てくれました。 追加機能の要望や、使いたいという声が上がり会場は大変盛り上がりました。
今後の話
現在は、基礎研修2つめのWebオペレーション研修が始まっています。Web開発研修で作成したRailsアプリをホスティングするためのインフラを構築している最中です! Webオペレーション研修の後は、モバイルアプリ研修、サイクルOJTという流れになっております。
今後の研修も定期的に発信していくので是非ご覧ください!
追記
Vol.2 を公開しました!ペパボの新卒エンジニア研修2017 Vol.2