2022/02/08
初めまして。アジャイル開発部 ソフトウェア開発1G の松好祐紀と申します。
今回は、6~7月で開催された2021年度AGDC新人研修でチューターを担当しましたので、体験談、感想等について記載します。
本研修は、アジャイル開発部が主催するプログラミング研修であり、アジャイル開発部に加え、KDDIエボルバを含めた様々な部署の新人の皆様が参加されていました。今年はなんと、総勢39名に参加いただいたとのことで、年々規模が大きくなっております。
研修参加者が6チームに分かれ、それぞれのチームにメインチューターとサブチューター、サポーターが2人がつく形で研修を行いました。スケジュールは以下のようになっています。(私が担当したチームの資料を拝借しております)
6月は基礎編として、AWSのハンズオンとN予備校のWebアプリプログラミングコースによる要素技術の習得に加え、UXデザインやスクラム開発に関する研修を行いました。 7月はチーム開発編ということで、6月で学んだ内容を活かしたアジャイルでのチーム開発を、約1ヶ月間行い、7/29に最終成果報告会を行いました。
次に私がチューターを担当したチームについて簡単にご紹介します。 チーム名は「ポカエリアス」です。チームメンバー全員が何かしらのスポーツをバックグラウンドにお持ちで、スポーツのお供の飲み物と言えば、「アクエリアス」と「ポカリスエット」が挙がったことに由来しています。丁度オリンピックの開催時期が重なっているのもあり、スポーティで良い名前だと思います。(ロゴも素晴らしいですね!) また、マスコットキャラクターもおりまして、名前を「ふらっふぃー」と言います。(下画像)
チーム構成は以下のようになっています。(所属略)
チームメンバー: 曽田さん、近藤さん、岡田さん、斎藤さん、平塚さん、垂柳さん、山本さん
チューター: 上森さん(メイン)、松好(サブ)
サポーター: 花之内さん、高槻さん
垂柳さんはKDDIエボルバからのご参加で6月半ばから、山本さんはUXデザイナーとして7月から参加されました。
さて、これからチュータとしての活動を振り返りたいと思います。
まずは基礎編の6月。基本的には受講生の皆さんで学習コンテンツに取り組んでいただくということで、チューターとしては以下の対応を行いました。
朝会/夕会の実施
振り返りの実施
受講生からの質問等への回答
毎日朝と夕方にチーム内で進捗や1日の予定を共有するデイリーミーティングを実施しました。会議ツールには「Discord」、AWSハンズオンの進捗管理には「Jira」(下画像1枚目)、N予備校の進捗管理には「Googleスプレッドシート」(下画像2枚目)を利用しました。最初はチューターがファシリテートを行なっていましたが、途中からはメンバーの皆さんに日毎に交代でファシリテートをしていただいていました。
N予備校の進捗管理に関しては、画像を見ていただければ分かりますが、節ごとに理解度を3段階で設け、各メンバーがどれだけ理解が出来ているかを共有することで、チーム全体としての足並みを揃えるように工夫をされていました。
チューターとしては、Confluenceのチームのスペースに、スケジュール管理のためのカレンダー(下画像1枚目)や、情報共有のためのページ(下画像2枚目)を作成して、チームのサポートを行っていました。
6月中は毎週金曜日に、7月中は毎週火曜日に、スクラムイベントではおなじみの振り返り(レトロスペクティブ)を行いました。ツールとしては、オンラインホワイトボードサービスの「miro」を利用し、「KPT法」で行いました。(下画像は実際の振り返りの様子) こちらも朝礼/夕礼と同じく、途中からはメンバーの皆さんにファシリテートをしていただいていました。
Problemとしては、主にコミュニケーションの少なさ、N予備校の各メンバーの理解度の把握、休憩時間の確保などが挙がりました。それらに対してTRYとして決まったチームでの取り組みの一例が、以下になります。
午前11時、午後2時、午後4時、夕礼後に5~10分の雑談の時間を設ける
N予備校の進捗確認スプレッドシートにて理解度を可視化する(前述のGoogleスプレッドシートによる進捗管理)
講義一回(一章)毎に休憩を取る
N予備校の4章の優先度を下げて、3章までの復習をする
N予備校に関しては、初学者には4章の難易度が高く、理解度をより深めるために、4章を進めずに3章の復習を行う、YouTubeのJavaScript入門に関する動画を見る、など、自分たちで工夫して学習を進めていただいていました。 また、振り返り内容を後で見返しやすくするため、サマリーのページをチューター側で作成しました。(下画像)
6月だけでもKPTを通して、チームメンバーのお互いの理解が深まり、7月からの開発スプリントに向けて、チームの在り方をしっかりと定めることが出来たのではないかと思っています。
学習を行う上での疑問点に加え、実際に業務でどのようにAWSが利用されているかに関する質問があったため、上森さんと私で、各々の所属プロジェクトで構築しているAWSのアーキテクチャに関して説明する場を設けました。私のプロジェクトの説明では、アーキテクチャがかなり複雑になっていたため、下画像のように、簡略化したものを利用して説明しました。
7月に入り、いよいよ開発スプリントが始まりました。まず7/1にUXデザイン研修のワークショップがあり、そこで出たアイデアを基にプロダクトの開発を行いました。チューターとしては、以下の対応を行いました。
UXデザイン研修ワークショップ参加
プロダクトバックログの作成、優先付け(POの役割)
開発を行う上でのチームのサポート(SMの役割)
スプリントレビュー、スプリントプランニングの実施(SM/POの役割)
TerraformによるIaCのハンズオン & CI/CDのデモ
6月から引き続き、朝礼/夕礼、振り返りの実施
プロダクト開発におけるデザインフェーズを体験出来るワークショップが開催されました。ポカエリアス内でチームをAとBに分け、私はチームBに参加しました。また、UXデザイナーの新人として山本さんが合流されました。
チームA:斎藤さん、岡田さん、平塚さん、山本さん ファシリテーター:宮田さん(ソフトウェア技術3G)
チームB:曽田さん、近藤さん、垂柳さん、松好 ファシリテーター:関口さん(ソフトウェア技術3G)
研修の内容に関して詳しく説明すると、それだけで一つブログが書けるだけのボリュームになってしまうので、簡単に流れだけを以下に記載します。
テーマ:「働く環境でのオンラインコミュニケーションに関する課題を解決するアイデアを考えよう!」
既に用意されているペルソナシートとユーザーインタビュー動画を閲覧し、追加の質問を考える
上記の質問に対して、チーム内でユーザーインタビューを行う(インタビュイーは持ち回り)
ユーザーインタビューの結果を踏まえて、ペルソナシートを更新
ペルソナシートを基に、カスタマージャーニーを作成
カスタマージャーニーからソリューションを選定し、アイデアを考える
ペルソナについての説明等に関しても省略しますが、チームBとしてペルソナの分析を通して挙がった課題は「オンライン会議で全員カメラOFFのため、相手の反応がわからない」、「会議中に発言するのに勇気が必要」といったものでした。それらの課題に対し、以下のソリューションを考えました。
オンライン会議ツールにアバター機能を用意することで、カメラをONにせずとも代わりにアバターが反応する
自分が発言したい時に会議参加者に石を伝える、割り込み機能を設ける
本来は数日間かけて行うデザインフェーズをたったの3時間で行うという、かなり濃密な研修になっており、かなり疲れました。しかし、デザインフェーズにおけるエッセンスはしっかり詰め込まれており、とても勉強になりました。
本研修を開催して下さった伊藤さん、宮田さんを始めとしたソフトウェア技術3Gの皆様、チームBを担当して下さった関口さん、ありがとうございました!
簡単に今回開発していただいたプロダクトについて簡単に紹介します。オンライン会議ツールで、プロダクト名「Pocapoca(ぽかぽか)」になります。使うと心がぽかぽかするように、との思いが込められています。
機能は以下になります。より詳細な説明は、チームポカエリアスの皆さんにもブログを作成いただいていますので、そちらをご覧ください。(記事名:「はーとふるオンライン会議ツール「Pocapoca」の開発」)
カメラがOFFでもふらっふぃー(アバター)が代わりにリアクション
割り込みスタンプを利用して発言の意思を伝えることが出来る
上記機能は、前述のUXデザイン研修にて、チームA/Bで出たアイデアをマージしたもののうち、MVPを実装したものになります。両チーム共に似たようなアイデアであったため、特に衝突も起きず、すんなりとマージ出来ました。本来は、アバターにモーションキャプチャ機能を付け、利用者に合わせてアバターの表情が自動的に変化したり、生活環境音をカットする機能を設けるアイデアもありましたが、開発期間が約1ヶ月ということもあり、MVPには含めませんでした。下画像は実際のプロダクトの利用イメージになります。
開発スプリントの初日(7/1)に、UXデザイン研修で出たアイデアと、prottを用いて作成したペーパープロトを基に、第1スプリントのバックログ作成を行いました。(初回ということもあり、チームメンバー全員で作成) バックログはJiraで作成し、開発する機能毎にタグをつけて見やすくしました。(下画像は実際の4スプリント目のバックログの様子)
1スプリント目に関しては、見積もりを行わなかったことに加え、会議ツールを実装するにあたり、AWS Chime を利用することになったのですが、こちらのスパイクに時間がかかってしまい、用意したバックログを消化しきれませんでした。
2スプリント目以降は、本来のスクラムイベントの実施方法に沿って、チューターが予めバックログを作成し、スプリントプランニング時に追加したバックログの説明を行いました。また、1スプリント目の結果から見積もりを行うことの重要性の説明を行い、KDGポーカー という見積もり用のツールを利用して(下画像1枚目)、Tシャツサイズで見積もりを行いました。そして見積もり後に、今スプリントに含めるバックログを選択し、それらのサブタスクを皆さんに作成いただきました。(下画像2枚目)
また、各スプリントにおいて、開発する機能毎(バックログのタグを参照)にチームを分け、かつスプリント毎にチームの構成を変えることで、属人化が起こらないように工夫をしていました。
スプリントの終了日(毎週水曜日)に、スプリントレビューと、6月から引き続いて振り返りを行いました。 スプリントレビューでは、セオリー通りにスプリント内で行ったタスクに関して、デモを交えてご説明いただき、チューターがそれらに対してコメントする形をとりました。見積もりを開始して以降は、ほぼスプリント内で予定されたバックログを完了いただいていたので素晴らしいと思いました。 振り返りに関しては、特に6月から実施方法から変更はありませんでしたが、6月に比べ、皆さん慣れてきたのか、より多くの意見が出てきていたように思います。また、振り返りのサマリーにスプリントのレポート(Jiraの機能)を追加して、そのスプリントのベロシティ等の情報を可視化して皆さんに見ていただけるようにしました。
サポートとして、メンバーの皆さんからの質問や相談の対応に加え、開発チームとしての問題解決にも力を注ぎました。特に、開発スプリント開始時に問題になったのが、開発チームとUXデザイナーの関わり方についてです。7月からUXデザイナーの山本さんが参加されたのですが、当初は開発チームがUXデザイナーのロールを理解出来ていなかったため、山本さんのロール範囲を超えたタスクも対応していただいていました。また、お互いの役割の曖昧さからコミュニケーションがぎこちなく、特に山本さんは居心地が悪かったと思います。 そこで、ソフトウェア開発3Gの宮田さんと、研修主催者の横瀬さんにご相談し、UXデザイナーのロールに関して改めて説明し、それを踏まえて開発チームとUXデザイナーがどう関わっていくかに関して皆さんで考える機会を設けました。 結果として、開発チームメンバー内でUXデザイナーがどういうものかがはっきりと理解でき、開発チームとUXデザイナーが密に連携して開発を行うことが出来る体制が確立出来たのではないかと思います。宮田さん、横瀬さん、ご協力ありがとうございました!
UXデザイナーに対する意識改革の後のチューターの取り組みとして、山本さんが担当するUXデザインに関するバックログも作成し、全員で見積もりを行うことで、UXデザイン周りのタスクを開発メンバーにも把握してもらいました。山本さんに担当いただいたタスクの一部を以下に紹介します。
現状のUXに関してヒアリングを行い、その内容について開発チームと話し合う
UI全体の見直し(本来はロールの範囲から外れているため、開発チームを協力しながら)
上記ミーティングの設定、開催
報告会資料作成に当たる前準備(デザイン、構成など)
ユーザーテストの実施
特に、UXに関するヒアリングやユーザーテストなど、かなり本格的なタスクも行なっていただいていました。ユーザーテストは開発スプリントの終了間際に行ったため、その結果を開発に反映することは出来ませんでしたが、UXに関するヒアリング結果はしっかり反映できました。 具体的には、割り込みスタンプについて、当初のデザインでは下画像1枚目のように、「ちょっとまった!」のように話途中に強引に割り込むようなイメージでしたが、ヒアリングの結果、割り込み行うシーンがペルソナにあっていないのではないか、ということになり、下画像2枚目のように、発言を後押しするようなデザインに変更しました。
開発スプリント中にTerraformによるIaCや、CI/CDを導入する余裕が無かったため、最終成果報告会後の7/30に、上森さんによるTerraformのハンズオンと、松好によるCI/CDのデモを行いました。
Terraformのハンズオンに関しては、まず上森さんから、TerraformによるIaCの概要、メリット/デメリット、他サービスとの比較の説明をしていただき、上森さんに作成いただいたデモをチームの皆さんと一緒に実行していく形式で行いました。ハンズオンは以下の手順で行いました。
上森さんのデモをローカルにクローン
個人のワークスペースを作成し、クローンしてきたコードをapply、リソースがAWS上に作成されることを確認する
VPC、EC2、SecurityGroup(アウトバウンド通信のみ許可)、IAMロールが作成される
EC2に入り、pingを実行し、インターネットに接続出来ることを確認
逆に作業用端末からEC2に接続出来ないことも確認
コード上でSecurityGroupのインバウンドルールを追加し、planを行うことで、差分が生じることを確認、applyを行う
作業用端末からEC2に接続出来ることを確認し、デプロイしたリソースをdestoryする
CI/CDに関しては、ライセンス等の関係上皆さんにご利用いただく環境をご用意出来なかったため、私が自己学習で個人利用しているGithubのGitHub Actionsを利用してデモを行いました。
CI/CDの概要と、GitHub Actionsでのフローの定義方法を説明
個人的にAWSを利用して開発しているシステムのTerraformコードを修正し、個人利用しているGithubにpush
この段階でterraform planのフローが走るようにGitHub Actionsを定義しているので、フローが動いていることを確認してもらう
plan内容を皆さんに見ていただき、masterブランチにマージ(この段階でもplanのフローが動くようにしている)
masterブランチからdev-releaseブランチにマージを行い、それを契機にterraform applyのフローが動くことを確認してもらう
apply完了後、修正文がシステムに反映されていることを確認してもらい、デモ完了
長々と書いてまいりましたが、まとめとして本研修の振り返りをチューター目線で行いたいと思います。
メインチューターである上森さんに負担をもう少し軽減出来たのではと思っています。あくまでサブチューターの立ち位置であり、裏方のサポートには力を入れていたつもりでしたが、バックログ作成になかなか参加出来なかったり、Terraformのハンズオンを準備を含めお任せしてしまったりしたので、もう少し上手く時間を確保出来れば良かったと反省しております。
チューターの立場でありながら、UI/UXデザイナーのロールに関する理解が不足していたため、山本さんには不安に感じさせてしまいました。普段の業務でも、デザイナーチームと開発チームを分けて考えていたところがあったことに気付かされました。
AWS Chimeに関しては、チューターも未経験であったため、今回の開発の根幹を成すサービスであったにも関わらず、チームの皆さんに十分なアドバイスを差し上げることが出来ませんでした。
チームのサポートを通して、POとスクラムマスターの立場を実践形式で体験出来たので、大変有意義な研修でした。それと同時に、PO、スクラムマスターの皆様の気苦労を少しでも経験することが出来たかと感じています。
反省点でも挙げていましたが、UI/UXデザイナーのロールに関して改めて勉強し直すことが出来ました。普段の業務においても、デザイナーの皆様との関わり方について見つめ直す良い機会になったかと思います。
AWS Chimeなど、今まで触ったことのなかったサービスに関して学ぶことが出来ましたし、既存の要素技術に関しても、自分で学習し直す良いきっかけになりました。(特にJavaScriptを含めたフロントエンド周りとAWSサーバーレスアーキテクチャ)
最後になりますが、本研修を開催いただいた横瀬さん、織田さん、岡澤GLを始めとした研修事務局の方々、チューターとしても得るものがとても多かった研修であったと感じております。ありがとうございました! また、メインチューターをご担当いただいた上森さん、サブチューターとして色々と力不足であり、ご迷惑をおかけしましたが、上森さんにチームを引っ張っていただいたお陰で、チームポカエリアスとしての研修を無事に成功させることが出来ました! 最後に、2ヶ月間チームを共にしたポカエリアスの皆さん、柔軟に、そして貪欲に知識を吸収していく皆さんの姿を見て、私も初心に立ち返ることが出来ましたし、多くのこと学ばせていただきました。配属部署でのご活躍をお祈りしております。本当にお疲れ様でした!
今回は以上になります。お読みいただき、ありがとうございました!