ふぁんこみ活動記録2023年度4Q

こんにちは!
この記事はInsurtechラボ202403アドベントカレンダーの29日の記事です!

私たちは「ふぁんこみ」という名前のチームで、Lab内に向けてモノづくりをしています。
今回の記事では、チームみんなで3か月分の振り返りをしてみました!
※チーム紹介についてはこちら(こいさんの記事)をご確認ください。

振り返りはスプリントごとに実施しました。全8スプリントです。

スプリント1

ふぁんこみチームは3Qから活動している「ものづくり」のチームです。
4Qも参画メンバーとチームの位置づけは変わらないけど、「運営」については少し変わることとなりました。

変更点

・活動時間は全体の20%(1週間7.5時間)
・メンバーの役割変更(PO、SM変更)

運営変更もあるし、活動内容も見直さないとね~…ということで今スプリントは準備期間となりました。

スプリントゴール

ふぁんこみチームが「4Qとして」クラフトマンシップが何か(チームとして目指す先が何か)を合意できており、次週から走り出せるようにチーム運営が固まっている

やったこと

  • プロダクトゴールの見直し準備

3Qで「クラフトマンシップあふれるチームにする!」と掲げていました。
しかし「クラフトマンシップ」って何?…が、メンバーごとに少し相違があることに気付いてしまったのです。
そこで「チームとして目指す先が何か」をメンバーで認識あわせをしました。
プロダクトゴールについては取り組むプロダクトの検討を次スプリント以降で実施することになったため後ろ倒し。合意した内容は「チームのミッション」としました。

3Qとは取り組むプロダクトや環境が変わるため見直しました。
「チームのミッション」ができているので軸に沿って考えることができたと思います。
「優先度」については意見が2分化したため、すり合わせに時間を要しました。
なかなか難しいですね。

<見直したインセプションデッキ>
我々はなぜここにいるのか?【ミッション】
エレベーターピッチ
やらないことリスト(スコープ)
・夜も眠れなくなるような問題
期間を見極める
・何を諦めるのか【優先度】

  • チームビルディング

運営が変わるから気持ちよく活動するためにも見直しました。

  • スプリントの期間

どんどん回していこうということで「1週間スプリント」としました。
ふぁんこみチームとしては初の取り組みです。
(これまでは2週間スプリントでした)

  • 活動スケジュールの固定化

20%スクラムでは全員の活動時間を合わせないと思うように活動できないだろうということで、活動の枠を固定化しました。
これが案外良かったと思います!スケジュールって大事ですね。

  • 開発の進め方

3Qから続いてTDDで引き続き開発を進めよう、ということになりました。
正直TDDと仲良くなれていなかったので、もう少し取り組んでみたかったのもあります。

  • もやみ発散

これからの活動に対する不安とかを先に話しておこうよという取り組みでした。
その場で解決したもやみもあれば、そうでないものもあれば…
意見をメンバーに伝えておくことが大切です。

感想

なにより20%に対する活動に対して「無理でしょ!」という気持ちがチームメンバー全員にありました。この時点で「できる」と思っていたのはコーチだけだったのではないかと。。。
準備期間といいましたが、完全に不安が払拭できていたとは思いません。
「進めていったら何とかなるでしょ」くらいのポジティブスイッチをONにして意識的に鼓舞してたかもしれないです。

スプリント2

スプリントゴール

ふぁんこみチーム内でどんなプロダクトを作るかが決まり、開発メンバーが胸を張ってこれからのスプリントレビューに臨める状態になる

やったこと

  • プロダクト決め

ざっくばらんに作りたいものを各自であげてみました。
チームミッションに沿った我々にとっての価値の軸と楽しそうか学びがありそうかの軸で並べてみました。
その結果、Webアプリケーションを作ってみたいという総意からモブプロ時のタイマーを作ることに決まりました。

プロダクトが決まったので、エレベーターピッチでプロダクトをより詳細にしました。

3Qでの完成の定義と同じにしました。
前回テストを作成する時間が確保するのが難しかったことや今回20%スクラムで活動が減ったことから、現状維持に決まりました。

  • チームメンバーが習得したい技術を可視化

星取表に書かれている全ての要素を組み込むわけではないが、使えそうな要素を書いてみました。
この後に控えている技術選定やミッションにあるチームメンバーの学習を達成するため、作成してみました。

スプリントレビューで頂いたコメント

モブプロ時のタイマーを作成することで学習できるかもしれないが、プロダクトの価値が分かりません。
価値も考えてプロダクトを決めて欲しいです。

感想

今回プロダクトを決める上で作ってみたいで考えたため、このプロダクトの価値となり得る他のタイマーとの差別化が考えられていませんでした。

スプリント3

スプリントゴール

チームで作ると決めたプロダクトのゴールについて全員が自分の意見を出し合い、納得した上で開発Ready状態になっている

やったこと

POが作成した仮説キャンバスの共有を行いました。
プロダクトゴールとユーザーストーリーマッピングを作成することによって、開発Readyの状態とすることにしました。
達成度としては、ゴール達成ができ、開発に入れる状態となりました。

感想

よいスプリントになったと思います。なぜなら、プロダクトゴールやユーザーストーリーマッピングを作成することで、チーム内でなぜそれをやるのか(Why)やどうやって作業するのか(How)の共有ができ、タイマーの音楽や背景を既存のものとは違うものにすることによって楽しく作業することができるのではないかという、これから開発するプロダクトに対しわくわく感を持ってスプリントを終了することができたからです。

スプリント4

スプリントゴール

「MVPのリリース時期をチームで認識合わせできて、一丸となって実際にプログラミングがスタートできる状態」

やったこと

  • MVPリリースの時期決め

前スプリントで作成したユーザストーリーマッピングとMVPラインを基に、チームのベロシティを考慮しながらリリース時期を決めました。

  • フレームワーク決め、チュートリアルの実施

当初モブドラはNext.jsを使ったWebサービスにしようと考えていました。
しかし、最前面のウィンドウにタイマーを表示する方が価値が高い(=ユーザが気づきやすい)とチームで判断したため、急遽デスクトップアプリに変更することになりました。
結局、使用する技術はElectron + React + Typescriptに決めました!
テストはJest + React Testing Libraryにしました。

  • 開発環境の準備

開発環境を構築して、次スプリントからコーディングを始める準備ができました!

感想

・Electron楽しそう!
・よく使ってるアプリもElectron製だ!
・デスクトップアプリの経験ないけど、electronだったら作れそう!
⇒ラボの他のチームも使ってない技術で、みんな不安と期待があったと思います。
筆者個人としてはデスクトップアプリがこんなに簡単に作れて、これからも応用が利きそうな技術で触れられることができてとてもうれしかったです。

スプリント5

スプリントゴール

Mob Doraがタイマーが時間になったらモブプロのメンバー交代するタイミングに気付ける

やったこと

  • TDDで開発するため、テスト実行環境準備

jestでテストを書くと決めていたため、jeatの公式ドキュメントを読んで基本的な書き方を学習しました。

  • タイマーの時間設定機能開発(モブドラの機能

最初からいくつも時間を用意するのは複雑になるため、初めは5分を計れる機能を実装しました。
画面に”05:00″と表示されていることのテストもできました。

  • タイマーの開始機能開発

開始ボタンを作成して、押下されたらカウントダウンを開始する機能を実装しました。
時間をモック化して、決めた秒数を進める設定を入れることでカウントダウンのテストもできました。

  • タイマーのタイムアップが近くなったら画面に画像を表示する機能

タイマーの時間が残り3秒になったら、背景に選定した画像を出力する機能を実装できたと思っていました。(実際できてなかった
この機能のテストで画面から画像を取得することができず、テストができませんでした。
それもそのはずで、画像に表示されていないため、いくらテストコードを変えてもできませんでした。

  • タイマーのタイムアップ時に音を鳴らす機能

 画面に画像を表示する機能のテストに時間を取られ、できませんでした。

スプリントレビューで発覚したこと

スプリントレビューで現在できているところまででデモを実施したところ、タイムアップが近くなった際に画像が出力できていないことが判明しました。
原因としては、スプリント終了まで時間がないことから、焦っていて実装ができているかの確認ができていなかったのです。
また、時間がかかったのは、reactやjestの書き方を調べながら、TDDで開発していたためです。
後のレトロスペクティブでは、実装したら一回動かそうというルールを追加することになりました。

感想

TDDでナビゲーターをやってみて、調べた実装方法が本当にできるのか分からないまま、ナビゲートすることが多かったです。
また、テストで時間をモック化する方法が調べた通りにできなかったり、テストの書き方に悩んだりしたため、実装ならできているのに、テストでつまづいてしまうというもどかしさがあリました。

スプリント6

スプリントゴール

・Mob Doraの魅力をチームが理解し、少なくともその一つをチームで検証できている
・チームが本スプリントを経て、ミッションにどれほど近づけたか笑顔でステークホルダーに伝えられる

やったこと

1.モブタイマーのタイムアップ画面をチームで決める。
2.モブタイマーでカウントダウン中、カウントダウン終了時に流れる音や音楽をチームで決める。
3.設定した時間になったら知らせて欲しい
4.タイマーを常時端に表示して欲しい
5.開発者として開始後からタイムアップまで音楽(BGM)を再生し続けてほしい。
6.設定した時間になったらタイムアップの音を鳴らして欲しい

1,2はできたものの、3,4は一部のみ作業で残ができ、5,6は着手すらできなかったため、達成にはなりませんでした。

感想

BGMやタイムアップ音を皆で持ち寄って決めたのはとても楽しかったです。
しかし、初めてのReact+jestでのテストコード作成で、テストツールに対する知見がないままテストを書こうとして時間がかかって、予定していた作業が出来なかった点が残念でした。
React+jestは事前に学習タスクを取って作業すべきだったと振り返りで反省しました。

スプリント7

スプリントゴール

MobDoraの魅力であるタイマー開始時、実施中、終了時の音(BGMとSE)を鳴らす機能に対し、 利用者としての感想を全員で挙げられている

やったこと

  • モブワーク中に音を流してみる

そもそも音流して作業したことないよね?本当に価値があるのか?
ということでお試しでモブワーク中に『天国と地獄』を流してみました。
結果、、、
音量下げてもうるさかったです。
やかましいというのが適切でしょうか、、、
ナビの声が聞こえないとか、集中できないとか散々でした。
MVP完成の前に選曲を変えるきっかけにはなったのでよかったです。

※実際にシステムを作らずに人力で動きを再現しながら検証する方法を「オズの魔法使い」というらしいですね。

  • 各タイミングで音声(効果音/BGM)を再生する機能の開発

このスプリントではモブドラの肝である機能の音声再生を組み込みました。
実際に予習してきてくれたメンバーもいて、タイマー開始終了の効果音、作業中BGMの再生コントロールができるようになりました。
ただし、音声の再生コントロールのテストコードは実装できませんでした。。。
私たち自身にそもそものReactやTesting Library等の知見が少なかったのが原因です。
また、ラボ内部の有識者に助けを求めに行かなかったのもよくなかったと振り返りをしていました。
ただし、一通り動いた状態でメンバーの感想を集めることはできたのでゴールは達成できました。(より詳細な評価は次スプリントで。)

感想

・天国と地獄は集中できないかも
・一通り動いてよかった
⇒(筆者の感想)テストコードはあきらめてしまいましたが、MVPをリリースすることができました。
心残りはありますが、動くものができてほっとしたなと思いました。

スプリント8

スプリントゴール

チームが現行のMobDoraの良い点と改善点が挙げられ、それぞれがどのような視点(利用者視点)でチーム内で話し合われたのかステークホルダーに伝えられる

  • やったこと

スプリント8では、作成したMobDoraの評価をチームメンバーで行いました。
タイマーの開始や停止などの基本的な操作部分については「わかりやすい」と概ね高評価。
特にタイマー終了時の効果音を大きな銅鑼の音にしたことにより、「タイマーの終了に気づけるか」という評価指標に対しては、満場一致で「気づける」という意見になりました。
一方でMobDoraの売りであるタイマー稼働中のBGMについては、選曲や音量が適切であるか意見が分かれ、改善の余地を残す結果となりました。

感想

感想の感想ってなんだ…?

総評

チームミッションである「学習してモノづくり」に注力した結果、プロダクトの価値の部分にあまり時間を割くことができなくなってしまいました。
売りの部分が不発でPOが残念な気持ちになってました。

まとめ

最後に、この3ヶ月間「ふぁんこみチームで選定した技術について学習してモノづくりを行えている」というチームミッションに近づくために、スプリントゴールを設定し作業を行ってきました。
20%スクラムは思ったより時間がなく、テストツールに対する知見がないままテスト駆動開発を行ったため時間のロスが発生したり、一部ケースのテストを書けなかったりしたものの、なんとかElectronというラボメンバーの誰も触ったことのない技術を学習し、MVP(最小機能のプロダクト)を作成することができました。
これもひとえにチームメンバーのおかげだと思っています。
4半期ごとにチームが見直されるため、4月からはまた新たなメンバーで作業を行っていくことになると思いますが、この3ヶ月はとても良い経験ができたため、その経験を生かして次に進んでいきたいと思います。