2019年新卒入社メンバーのエンジニアリング研修①

こんにちは。VP of Engineeringをしている里山です。

今年もビデオマーケット社内に新卒の仲間が3名入ってまいりました。 新卒の仲間に対して、毎年工夫しながら研修プランを検討しているのですが、今年は以下のような研修プランを立てました。

  1. ビジネスマナー研修(社内)
  2. プロジェクトフォーカスラーニング(リナックスアカデミー社)
  3. 全部門OJT研修(社内)
  4. 40Kmウォーキング研修(屋外)

動画の権利元や協業するアライアンス企業と若いうちから会話をする機会の多いのが弊社の特徴のため、ビジネスマナー研修は必須の研修です。また、40Kmウォーキング研修はお互いに励まし合いながらひとつのことを成し遂げるという部分でのチームビルディングの意味合いがあり、例年の恒例となっています。

テクニカルな部分では、リナックスアカデミー社のプロジェクトフォーカスラーニングという集合研修に3ヶ月行ってもらいました。これは仮想プロジェクト環境で、要件定義から設計、開発、テスト、発表までを複数回まわし自分で調べながら課題解決することで、実践力の高いエンジニアを養成するものです。

www.linuxacademy.ne.jp

また、全部門OJT研修では、弊社の開発部門や運用部門をすべて数日単位でまわり、実践的に仕事を学んでもらいました。

今回CREATORS BLOGでは全3回に渡って、新卒社員にプロジェクトフォーカスラーニングやOJTでの体験などを紹介してもらいたいとおもいます。

プロジェクトフォーカスラーニング(個人開発編)

こんにちは。19新卒入社の鹿嶋倭加です。今回は4月5日から6月25日までの外部研修内で行なった個人開発についてお話しさせて頂きます。

●個人開発の流れ

f:id:amayadori0712:20190809104341j:plain

個人開発の流れは上記の通りです。開発期間約1週間という中最初の1日でグループ内作業を終わらし、残りの期間で開発&レビュー、最終日に成果発表会という流れで進みました。

●アイデア決め

テーマは事前に、日常を快適にするWebアプリケーション/行動が改善出来るToDoリスト/買い物がしたくなるようなショッピングサイトの3つが決められており、どれか1つのテーマに沿ったアプリケーションを開発することになりました。

アプリケーションを考える

f:id:amayadori0712:20190809124148j:plain

まずは個人開発で作成するアプリケーションのアイデア決めを上記の通りに行いました。 私はアプリケーションを考える上でテーマを天気に絞りました。私がいつも思う天気に関する課題は以下の通りです。

・気温差が激しいので、適当な服を選ぶのが難しい

・大きい傘を持って行ったのに、そこまで降らず無駄な荷物になってしまった

ちょうど梅雨時期だったこともあり、以上の課題を解決するべく私たちのグループは日常を快適にするアプリケーションに沿って天気予報アプリを開発することにしました。余談ですが私は季節の中で梅雨が1番嫌いだったので、それをきっかけにアイデアを出したら採用されました。

●Scrum

開発プロセスとしてScrumの一部を採用し、毎朝デイリースクラムを行なっていました。デイリースクラムでは、前回までのタスク/今回行うタスク/困っていることをグループ内で共有し合い、個人の課題はグループ全体の課題という意識を持つようになりました。

タスクの書き方&進捗管理

f:id:amayadori0712:20190809104140j:plain

このように赤い部分には優先順位と主なユーザーストーリーの内容を記載し、 白い部分にはそのユーザーストーリーを完了させるためのタスク内容を記載します。 記載はしていませんが、このタスクでは最低限ここまで実装させるという完了基準を定め、一定のクオリティを保証しています。

f:id:amayadori0712:20190813103622j:plain

また進捗管理は図の通り、見てすぐ分かるようカンバン方式で管理をしていました。 誰がどこまで進んでいるのか、誰がどの辺りで詰まっているのかが一目瞭然です。シンプルに見やすくすることで、タスク管理が効率よく回り作業がしやすくなります。

●ユーザーストーリー

ユーザーストーリーはグループ内で要件を共有しやすくするため、要件を自然言語で分かりやすく表記したものです。

例)地域選択⇨利用者は特定の地域を設定出来る⇨ピンポイントにさらに詳しく情報を得るため

例)服装とアイテム⇨利用者はオススメの服装とアイテムの情報を得る⇨日々の服選びを楽にするため

これを元に優先順位を決めて行き、優先順位の高い順からタスクを進めて行きます。

●概要と技術選定

気温に合った服装やオススメのアイテムを表示し、 降水確率ではなく、降水量に合わせて傘の有無を表示するように開発しました。Webアプリケーションを開発するため、開発ツールとしてeclipseを使用し言語はJavaを、データベースはPostgreSQLを使用しています。

●開発

f:id:amayadori0712:20190813115326j:plain

開発では以上の優先順位に沿って進めていました。 今回はDarkSkyAPIを採用し、デフォルトは東京都で設定しました。プルダウンによって地域が選択出来るようにし、APIは指定された文字列の地域を認識して、その情報を取得します。服装やアイテムは4つのパターンをデータベースに登録しその際1〜4の数字でレベル分けをしています。それによって呼び出す際に○℃〜○℃はレベル1と結び付けると、1の情報が表示され気温との連携が成功します。

●苦労した点

プログラミング初心者のため研修についていくことが精一杯の中始まった個人開発は非常に不安が募りました。今回天気情報取得の際に使用したAPIの言葉自体聞いたこともなかったので、どういうものでどう使うのかが全く分からなかったですし、コードを書く以前に理解をすることにかなりの時間を費やしました。開発が終わった今、APIとはサービスなどの一部を外部に向けて公開することにより、第3者が開発した際に組み込むことが出来るものだということが分かりました。

●成果発表会

個人開発では、自社の方に来て頂き成果を発表する場を設けて頂きました。 1人約10分という時間の中で、自分が作ったものを相手にいかに分かりやすく伝えるか、相手をどう惹きつけるかを考える貴重な体験だったと思います。その中でも発表の仕方や資料の見やすさなど細かいところまで講師の方にご指導頂き、これからも活かしていきたいと思っています。

●反省点

服装や傘の有無を当日分のみ表示する仕様にしましたが、「明日の支度を前日にする」というお声を頂いたので、もう少し情報量を増やすべきだったという反省点も生まれました。

●得たこと

個人開発ではありましたが、お互いがお互いを気にかけ取り組んだ開発となりました。 タスク管理においては、自分でスケジュールを管理し時間配分を考えたことで、時間を意識するようになりました。 開発はメンバー間のコミュニケーションが非常に重要かつ必須であることを学び、開発以外でも社会人として今後も大切にしていきたいと思っています。