投稿日
Unityアプリチームのチーム運営はこんな感じでやってます
もくじ
開発基盤センターの伊藤です。XRフレームワークの開発に取り組んでいます。
2019年に会津に引っ越してから毎年会津若松市が無料貸し出ししている市民農園を借りて畑をやっています。昨年近所の畑のおじさんからもらって美味しかったモロッコインゲンを今年栽培してみました。平べったく10~15cmぐらいの長さで果肉が柔らかく甘みがあり、天ぷらにすると絶品です。 7月から10月の間大量に収穫できてあまり世話もかからないので畑するならおすすめの野菜です。
本題に入ります。インキュベーションセンターでは2021年4月よりXRを活用した新規事業開発に取り組んでいます。どんなことをやっているかは360度カメラとUnityで作ったバーチャル空間の舞台裏を参照ください。
今回はこの記事で紹介したUnityアプリを開発しているチーム(Unityアプリチーム)がどのようにチーム運営をしているのかを紹介したいと思います。
Unityアプリチームとは?
Unityアプリチームを含めたプロダクト開発の体制を紹介します。
プロダクト開発はプロダクトオーナー(PO)とマーケ、デザイン、Unityアプリ、バックエンドの4チームで構成しています。POとマーケチームで企画を考え、デザインチームがUX/UIをデザイン、Unityアプリチームとバックエンドチームでアプリとインフラを開発するといった役割です。
Unityアプリチームとバックエンドチームの役割は開発と書いていますが、開発に必要な要件定義も積極的にUnityアプリチームとバックエンドチームが推進することを期待しています。PO/マーケ/デザインから出てくる「やりたいこと」に対してエンジニアが要件と実現方法(見積り含む)をセットで提案してPOが即決できる状況を目指しています。
スクラム
Unityアプリチームはスクラムを採用しています。スクラムを知らない方はスクラム概論をご覧ください。
スプリント期間は1週間です。1週間の予定は次のとおりで空いてる箇所が開発できる時間です。
1日の業務時間を7.5hとすると1人あたりの開発時間は25hとなります。
- 業務時間(7.5h/day)=37.5h
- その他時間(1h/day)=5h
- ミーティング時間=7.5h
- 開発時間=37.5h-5h-7.5h=25h(66.6%)
その他時間はメール、雑談、庶務、休憩など開発以外の時間です。開発時間はスプリント全体の66.6%です。少なく感じますがどのチームでもこれぐらいの割合になると思います。
デイリー、スプリントレビュー/計画、リファイメントはスクラムイベントです。 スクラムイベントは一般的なスクラムチームとやっていることが変わらないと思いますので説明を省略します。スクラムイベントを知らない方はスプリント運営ガイドをご覧ください。スプリント運営ガイドには各スクラムイベントの手順が書かれているのでどのようなことをやっているのか分かると思います。ここではスクラムイベント以外のミーティングについて紹介します。
スプリント準備
スプリント準備はスプリントレビュー/計画とリファイメントの時間を最大限有効活用するために準備するミーティングです。今ではスプリントレビュー/計画とリファイメントが毎回1時間以内に終わるのが当然となっています。
スプリント準備ではスプリントの成果を開発メンバで確認してスプリントレビューでデモする内容を決めます。さらにレビューやリファイメントでPOに確認したいことやレビューで人が集まる時に試したいことなども話し合います。準備した結果はSlackのレビュー用チャンネルにメモしてレビュー時に参照しながら進めます。
同じレビュー用チャンネルにレビュー用アプリのDL先やレビュー時のフィードバックを書き込むことにしていて、リモートワークでも参加者全員が迷わずアプリを使ったレビュー参加やフィードバックをやり易くしています。
XRチーム情報共有会
TISがどうしてXRをはじめたのか?で紹介したように組織を跨いだ複数プロジェクトがXR事業化に関わっているため、各プロジェクトがどのような活動を行っているのかを共有するミーティングです。営業活動や研究活動など、対外的な活動に関する情報共有が多い印象です。開発チームは日頃お客様と接する機会がないので、この情報共有により自分達が開発しているプロダクトへの期待を知れるよい機会となっています。
XR Build
XR事業化には、プロダクト開発、フレームワーク開発、研究開発といった複数の開発チームが関わっています。XR Buildは毎週全開発チームが会話する機会があること、そこで出てきた課題を追跡することを目的にした開発チーム向けミーティングです。そのため何も動きがなければミーティングは10分もせず終わり、新しい課題が出てきた場合や情報共有したいチームがいればしっかりと1時間使う場合もあります。複数の開発チームで作業するとチーム間でどうしてもこぼれ落ちるものが出てくるので状況に応じて目的を絞ったミーティングを設け運用するようにしています。
余談ですが「開発者会議」をネットで調べて出てきたMicrosoft Buildを真似してミーティング名を付けました。個人的にはユニークなミーティング名を付けて予定表を見たときに楽しい雰囲気を出したい派ですがあまり浸透してないです。
XRよもやま
XRチームは用事が無ければ全員リモートワークで出社しません。これではコミュニケーション量が足りないと考え、雑談する時間として毎週1時間XRよもやまというミーティングを始めました。はじめの数回は購入した車の話しやペットの話しなど本当にただ雑談していたのですがやがて間が持たなくなり、あるメンバから他社のXRサービスをみんなで体験するのはどうだろうと話しが出てすぐにやってみました。これとっても良かったです。お互いの考えや思い、競合サービスと自分達のプロダクトの違いなど、自然と共通認識が生まれる場へと進化しました。
体験するサービスがなくなってくると、INPUTだけでなくOUTPUTも大事だよねという話になり今ではINPUT回とOUTPUT回を隔週で実施するようにしています。OUTPUT回は特に縛りはないんですが、業務で使わないUnityの機能を試した話しや気になってるVTuberの話しなど、個人では知りえないXRの情報を知れるよい機会になっています。INPUT回とOUTPUT回を行うよもやまはXRに限った話ではないと思いますので、色んなプロジェクトに広がればいいなと思うミーティングです。
振り返りは?
上記の予定を見るとスクラムイベントに含まれている振り返りがありません。当初はスプリント毎に振り返りを実施していましたが振り返り疲れなのか、ただやってるだけの状態になったのでスプリント毎の振り返りをやめました。月に1回思い出を語る会をやってみる、数か月毎のマイルストーンのタイミングで振り返りをやってみるなどいくつか試していますが試行錯誤中で不定期に実施しているのが現状です。チーム力向上につながるように振り返りのやり方をこれからも模索したいと思います。
ワーキングアグリーメント
ワーキングアグリーメントとはチームで作業する際にチームメンバ同士でルールを作り、価値観を共有することで円滑なチーム運営を目指した取り組みです。ワーキングアグリーメントの詳細はワーキングアグリーメントをご覧ください。
Unityアプリチームのワーキングアグリーメントについて他のプロジェクトでも私が使いたいと思うルールをいくつか紹介したいと思います。
ミーティングはできるだけ火・水に入れる。月・木・金は作業集中日とする
ミーティング時間を気にする、タイマーで突然作業中断するといったことなく、1日安心して作業できる日が増えると開発者は嬉しいと思います。その嬉しさはモチベーションアップや生産性向上につながると信じて作業集中日をプロジェクトメンバ全員で作り出すべきだ、との思いでこのルールを設けました。
一時期できてたのですが上記の予定を見ると木曜に2つも固定のミーティングが入っていてできてないですね。このルールとっても難しいんです。忙しくなったり月日が経つと知らず知らずのうちに作業集中日が減っていきます。交代でパトロールする人を任命するなどルールを守るためのルールも必要そうですがどうなんでしょう。このルールをチームで見直そうと思います。
定時後に予定を入れない
忙しくなってくると当然のように定時後に予定が入るプロジェクトをいくつも見てきました。Unityアプリチームもそういった時期がありこのルールを設けました。フレックスやパートナーさんなど、人によって業務終了する定時が異なるので開発メンバの定時を確認し、ミーティングを入れてよい時間帯をチーム内で共有しています。
休みの連絡はチャットボットに返信する形で共有する
スプリントの初日にあたる曜日になるとチャットボットが休みを訪ねてくれるのでメッセージに返信する形で連絡します。みんなへの連絡を忘れる、○○さん今日休みだっけ?の確認がすぐできチーム内の無駄な時間が少し減るので気に入っています。
Unityアプリチームは他にもチャットボットを使ってチーム運営を少し楽にしています。
- デイリーの司会は当番制で今日は誰が当番なのか確認
- インフラなど開発費用の定期的な確認
まとめ
今回はUnityアプリチームのチーム運営について紹介しました。XRよもやまや作業集中日を作るルール作りなど、他の開発チームでも使えると思いますので参考になれば幸いです。