IDCF テックブログ

IDCF テックブログ

クラウド・データセンターを提供するIDCフロンティアの公式テックブログ

Rookies Training Report 2019 〜2ヵ月間の新卒チーム開発研修記録 始動編〜

こんにちは、クラウドSRE部の志甫谷(しほや)です!
IDCFクラウドの課金系システムをメインで担当しています。趣味はフットサル(プレー・観戦)です。

まえがき

春先になると、いつも思い出すことがあります。それは、自分が新卒1年目だった時のことです。
社会人としての経験を積み年次を重ねていく中で、毎年この時期は必ず1年目の新鮮な気持ちを思い出すのです。

これからお伝えするのは、新鮮な気持ちを抱きながら
社会人1年目を迎えた4人の新卒メンバーのお話であり、
IDCFに嵐を巻き起こす、夢と希望に溢れた
新卒エンジニア4人の果てしない挑戦の記録です!

※このまえがきは、【目指せ!Fの頂】*1のパロディです。

新卒チーム開発研修概要

この研修では、クラウド本部に配属された4名の新卒メンバーが約2ヵ月間でチーム開発を行い、Webアプリケーションの完成を目指します。

体制

名前 役割
小野里 新卒 山と写真が好き。山関係のアプリを作ってひと山当てるのが夢。
庄司 新卒 ドラマー。昔のORANGE RANGEが好き。
田栗 新卒 アニメ好きの自転車乗り。小野田坂道には及びません。
北條 新卒 自転車好き。最近Bianchiのフルカーボンのロードバイクを購入。
志甫谷 チューター 兼 PM
篠田 チューター 兼 テックリード
アドバイザー

研修の目的

新卒

  • チーム開発経験を積む
    • 設計/実装/リリースなどの各フェーズを体験する
    • タスク分担をしてプロジェクトを進行させていく
    • 期限を意識した仕事の進め方を学ぶ

チューター

  • プロジェクトマネジメントの経験を積む
    • PMとして稼働調整や工数管理をしながらプロジェクト管理をする
    • テックリードとして技術面で新卒をサポートし、プロジェクトを円滑に進める

予定スケジュール

7月

f:id:kkamiyakenshiroh:20190725121527p:plain

イベントは「 Google Cloud Next ’19 in Tokyo 」に参加予定です。Googleの最新技術を学びます。

8月

f:id:kkamiyakenshiroh:20190725120227p:plain
8月は、各自の夏休みも考慮したタスク・スケジュール管理が重要です。

9月

f:id:kkamiyakenshiroh:20190725120502p:plain

この記事では、要件定義が終わり開発テーマが決まるところまでをご紹介します。

キックオフ

キックオフでは、プロジェクト概要をメンバーに展開しました。
これからの2ヵ月間に対する期待や不安が入り混じったメンバーの表情が印象的でした。

GitHub研修

テックリードである篠田を講師として、GitHubの入門となるインプットを行い、後半は実践形式でGitHubを操作してもらいました。

インプット内容

  • バージョン管理がなぜ必要か?
  • Gitでできることは何か?
    • clone
    • fork
    • pull
    • push
    • branch
    • commit
    • merge
  • GitHubでできることは何か?
    • pull request
    • issue
  • 開発フローについて
    • Gitフロー
    • GitHubフロー

不慣れなコマンド入力を克服する!という高いモチベーションをメンバーから感じました。
また、GitHubの使用イメージを掴みきれていない印象を受けましたので、こちらについては参考となるWebサイトや実務でイメージを掴んでもらう予定です。

チーム開発実践入門研修(LT)

チーム開発研修に入る前に、チーム開発をするうえで押さえておくべきキーワードの理解を深めるためにLTを実施しました。
進めるにあたり、次の書籍を参考にしました。 gihyo.jp

LTの題材とするキーワードは次の5つ。

  • バージョン管理
  • タスク管理/チケット管理
  • 継続的インテグレーション
  • 継続的デリバリー
  • リグレッションテスト

LTの流れ

  1. メンバー4人に担当キーワードを割り当てる
  2. 30分で調査・発表資料作成を行う
  3. 発表5分、質疑応答10分
  4. プレイヤーチェンジ(担当キーワードを変更)
  5. 10分休憩して次のキーワード調査スタート
  6. 新卒メンバーが各キーワードをすべて担当(5周)したら終了

調査・資料作成・発表・質疑応答に時間をかけているため1日では終わらず、2日間に分けて実施しました。 新卒メンバーからは下記の反応がありました。

  • Wikipediaで出てくるようなキーワードの概要までは掴めるが、業務で活用するイメージが湧かない
  • 自分では理解したつもりだが、他の人からの質問に上手く答えられない

キーワードの理解度0から概要理解までは到達しやすいが、さらに理解を深める難しさを感じました。

LT形式にした狙いとして、短時間で自分の考えをまとめ、他の人に伝える経験をしてもらうということもあったため、上手くいかない実感を与えられたのは狙いどおりでした。
ここで湧いた疑問点をどんどん深掘りしていき、理解を深めてほしいところです。

チーム開発研修テーマ検討

次に、2ヵ月間で作成するWebアプリケーションのテーマ案検討を進めます。

テーマ検討の進め方

  1. テーマ案書き出し用のスプレッドシートを用意
  2. 30分テーマ出しの時間を設ける
  3. テーマ案の共有
  4. 新卒メンバーで投票し、上位5案に絞り込む(1人5票、重み付けなし)
  5. 上位5案 + アドバイザー発案のテーマを合わせた全6案について、決選投票を実施。(1人5票、重み付けあり)

テーマ出しをする際には次の点を意識してもらいました。

  • そのテーマが抱えてる問題は何か?
  • その問題で困っている人は誰なのか?
  • その問題を解決する難しさはどこにあるか?
  • 解決したときのインパクトはどこにあるか?
  • 解決後の拡張性はあるか?

テーマ決めは、ここまでで一番の盛り上がりを見せました。
こういう問題に対してこんなアプローチをして解決したら面白いんじゃないか?というアイデアが活発に出ていました。 今後実際の業務を行う際にも、現状抱えている問題を解決したら誰がどう嬉しいのかを意識しながら、システムの開発を行ってもらいたいなと感じました。

振り返り

この研修では毎朝の簡単な振り返りに加え、週次で振り返り(KPT方式)を実施します。
1週ごとに振り返ることで、短期間でのPDCAサイクルを回すことが目的です。

  1. 今週の取り組みで継続したい点(Keep)と、問題点(Problem)を列挙(5分)
  2. 内容共有(5分)
  3. 問題点(Problem)に対する次の取り組み(Try)を全員で検討(15分)

初めの1週目は、慣れが必要ということもありTryに対する次のアクションは明確に決めませんでした。 今後設計/実装のフェーズに入った際には、TryからGitHubのissueを書き出し、翌日からissueへの取り組みを実施していく流れを作りたいと考えています。

3つのテーマ候補

トータル16個あったテーマ候補のうち、新卒メンバーが選んだ上位3つに絞り、それぞれの案を比較することにしました。3つのテーマ候補を次で紹介します。

1.会議室空き状況管理ツール(ゴースト会議バスターズ)

Webブラウザ上でリアルタイムに会議室の利用状況を確認し、予定登録状況を合わせて確認できるようにするツールです。

着目した問題点

  • フリースペースなどの事前予約不要スペースの利用状況が分かりにくい
  • 会議室について、打ち合わせの予定登録内容と、利用状況が異なる場合がある
    ※ ここでは、予定と利用状況が異なる状態をゴーストスケジュールと呼ぶことにします

このツールが与えるインパクト

社員全員が、フリースペースの空き状況確認をスムーズに行うことができるようになるだけでなく、 ゴーストスケジュールを発見することで、会議室の稼働率をあげることができます。

拡張性

  • 会議室別の利用頻度の高い時間帯の可視化し、打ち合わせの時間帯を分散させる
  • ゴーストスケジュール登録者を発見し、警告する(ルール遵守)
  • ゴーストスケジュール検知時に、リアルタイムで空き状況をSlack通知する

実現方法のイメージ

f:id:kkamiyakenshiroh:20190724090126p:plain
ゴースト会議バスターズのイメージ図

2. 社内書籍管理ツール(Morio Library)

その名の通り、社内に多数ある書籍を一括管理するツールです。図書館にある検索・管理ツールをイメージするとわかりやすいでしょうか。

着目した問題点

  • 社内に本は多数存在するが、点在していて探しづらい
  • 本があっても、誰かが読んでいる途中かもしれず借りづらい

このツールが与えるインパクト

  • 社内での書籍管理を一元化できる
  • 社内での読書状況の共有や購買促進

拡張性

  • 書籍購入リクエスト機能を追加する(需要の把握)
  • 社内外の人気書籍ランキング機能(amazon技術書ランキングとの差分表示など)を追加
  • 似たような分野の本を読んでいる人同士の交流を促す機能追加(ビブリオバトル開催機能)

実現方法のイメージ

f:id:kkamiyakenshiroh:20190724085241p:plain
Morio Libraryのイメージ図

3. GitHub issue管理ツール(issueまとまるくん)

社内の複数プロジェクトで使用されているGitHubのissueの管理をしやすくするツールです。

着目した問題点

  • 複数のGitHubリポジトリに紐づいているissueの一括管理がしにくい
  • 個人に着目した場合に、issueの粒度/重みがバラバラで生産性が測りにくい
  • チーム/プロジェクト/フェーズ毎のissue割合が把握しにくく、チームビルディングに活かしにくい

このツールが与えるインパクト

  • マネージャー陣が、プロジェクトやメンバーの評価しやすくなる。チームビルディングの際の参考にできる
  • 各チームメンバー向けに、issueの種別(新規開発/運用/保守/バグ修正)を把握しながら優先順位を判断できる

拡張性

  • エンジニア評価ツールとしての拡張
  • 可視化後のデータ活用

実現方法のイメージ

f:id:kkamiyakenshiroh:20190724085425p:plain
issueまとまるくんのイメージ図

部長プレゼン

新卒メンバーから、アドバイザーである王に対して上記テーマのプレゼンを行いました。

f:id:kkamiyakenshiroh:20190724085915j:plain
プレゼンの様子

発表を終えて、王からの質問・意見は次のとおりです。

ゴースト会議バスターズ

  • 実現するためにはカメラが必要になるが、いくらお金がかかる想定か?
  • 仕様決めの難しさがある。たとえば、5分遅れで打ち合わせが開始する場合にどう判断する?
  • カメラを使うのでデバイス制御が難しそう
  • セキュリティ面での懸念が大きそう(会議室情報が漏洩するリスクの考慮は?)
  • カメラ設置のために稟議を通す必要がありそう

Morio Library

  • ユーザー/管理者の両方の視点が考慮されていてよい
  • 初期導入コストが気になる。本一冊ずつにバーコードを付与し読み取る作業が大変そう
  • 書籍の新規購入の際のフローはどうする予定?

issueまとまるくん

  • ツールの運用ルールについて、すでに採用している方式をベースに検討するとよい
  • マネージャー陣が評価の参考として使うのは難しそう。個人スキルの考慮が必要だったり、生産性の算出方法により左右されてしまう
  • ラベルの活用法は、生産性だけでなくプロジェクトの方向性(エンハンスや保守)の可視化にも活かせると思う
  • GitHubについて今は理解が足りないかもしれないが、実務で慣れていけるように頑張って!

テーマ比較検討

各案について、次の評価基準で比較しテーマを最終決定することに決まりました。

  • システム仕様
  • 実装期間
  • 導入難易度
  • 実用性

上記に基づき、新卒メンバーは各案を比較しました。

評価項目 基準 1.会議室管理 2.書籍管理 3.issue管理
システム仕様 簡単に決定できるか ×
実装期間 2ヵ月で開発/実装できるか ×
導入難易度 ルール周知しやすいか
開発以外の手間は少ないか
実用性 ユーザーにとって嬉しいか

比較の結果、ゴースト会議バスターズは実現性の懸念点が大きく、2ヵ月間での完成イメージが見えない点が壁となりました。
また、issue管理ツールについてはissue数値化の仕様決め難易度が高い点が大きな課題となりました。

上記を踏まえ、新卒チーム開発研修のテーマは書籍管理ツール(Morio Library)に決定しました。

新卒メンバーは、これから要件定義/設計/実装/リリースの各フェーズを経て、ひとつのWebアプリケーションの完成を目指します。

最後に

始動編はここまでになります。キックオフ~テーマ決定だけでも多くの気づき・学びがあり、これからの新卒メンバーの成長が本当に楽しみです。
今後の記事でも、研修のリアルな温度感を皆さんに感じていただけるよう、内容をできるだけ細かくお伝えしていきたいと思います。 次回、8月中に「要件定義/設計編」を執筆予定ですので、ご期待ください!

Copyright © IDC Frontier Inc.