アソビューでエンジニアリングマネージャーをしている服部です。
週末の便利でお得な遊び予約サイト「アソビュー!」では大小様々なアプリケーションへの変更を、月間100回を超えるプロダクション環境への反映を実現しています。(2022/10月実績115回)
MVP(Minimum Viable Product)を意識して短期間により多くの機能改善リリースを実施し効果検証することで、アプリケーションを通じてゲストに価値貢献する速度を最大化できると考えています。
今回はその開発チームのリリースを支える開発プロセスについて紹介します。
※ リリースを支える技術に関しては、弊社VPoE兼平がエンジニアHubに寄稿した「モジュラモノリスに移行する理由 ─ マイクロサービスの自律性とモノリスの一貫性を両立させるアソビューの取り組み」の記事が参考になるかと思います。
記事の構成
- 開発チーム
- 開発プロセス
- リリースサイクル
- 最後に
開発チーム
週末の便利でお得な遊び予約サイト「アソビュー!」はwebアプリケーションとiOSとandroidのnativeのアプリケーションがあります。 これらのアプリケーション改修を短期間で実現するため、3種のチームで構成しています。
webアプリケーション開発チーム
2週間1スプリントで、スプリントプランニング → デイリースクラム → スプリントレビュー → スプリントレトロスペクティブ を繰り返し、webアプリケーションを開発するチームです。 現在2チームで構成されています。
nativeアプリケーション開発チーム
webアプリケーション開発チームと同様に2週間1スプリントで、スクラムイベントを繰り返し、nativeアプリケーションを開発するチームです。
テクニカルサポートチーム
各部門からの要望のなかで、不確実性の高い案件やタスクを要件定義から詳細設計までの落とし込みと、難解なバグの調査を実施するチームです。テクニカルサポートチームで分割されたタスクは後述のReadyのプロダクトバックログに登録され、web/nativeアプリケーション開発チームが対応します。
開発プロセス
アソビューのアプリケーション開発チームではスクラムガイドに則ってスクラムイベントを実施し開発を進めています。そのため詳細はスクラムガイドを参考にしていただければと思いますが、一部アソビュー用にカスタマイズしている部分がありますので、そちらを紹介します。
プロダクトバックログの管理・運用方法
アソビューでは日々プロダクトオーナーやマーケティングチーム・営業チーム・カスタマーサポートチーム・カスタマーサクセスチーム・開発チーム等々、各部門から案件や要望が上がってきます。 これら上がってくる案件や要望は開発規模が大小様々かつ、要件定義が曖昧で着手するには不確実性の高いものもあります。 そのため弊社ではプロダクトバックログを2つ作り管理・運用しています。
バックログ
バックログには下記の何れかに当てはまるストーリー・タスクが、プロダクトオーナーの決めた優先度に従い登録されます。
- 要件定義が定まっていないストーリー・タスク
- 開発を進めるのに数スプリント消化するような大きなストーリー・タスク
このバックログに登録されたストーリー・タスクをテクニカルサポートチームが要件定義や設計・タスクの分解を行い、できる限りスプリント内で解決可能な範囲のタスク(後述するReadyに登録できる規模のタスク)に分割します。
Ready
Readyには下記すべてを満たすストーリー・タスクが、プロダクトオーナーの決めた優先度に従い登録されます。
- 要件定義が定まっているストーリー・タスク
- 開発チームが1-2スプリントで消化可能なストーリー・タスク
Readyに登録されたストーリー・タスクをweb/nativeアプリケーション開発チームで対応していきます。 プロダクトオーナーとエンジニアリングマネージャーでバックログとReadyにタスクやストーリーを登録します。 タスクやストーリーの登録と優先順位付けに関しては日々実施していますが、手作業での運用のためヒューマンエラーを防止するため、週に1回のペースでプロダクトオーナーとエンジニアリングマネージャーでバックログリファインメントを実施しています。
スクラムイベント以外のイベント
アソビュー!ではチームの開発速度を最大化するために、スクラムイベント以外にも様々なイベントを実施しています。
プロダクトバックログの共有
プロダクトオーナーから開発チームに週1回プロダクトバックログの共有会が行われます。 タスクやストーリーの背景や詳細説明を伝え理解度を深めるとともに、タスクやストーリーを達成したときの価値も併せて伝えることで、開発チームにアウトカムを意識してもらうことも目的としています。
チーム内勉強会
チームメンバーの技術力向上を目的とし、週2回の勉強会を実施しています。
coffee chat
弊社はフルリモート可、かつ遠方から参画いただいていいるメンバーもいるため、オフラインの場で合って話すのが難しくなっています。 あえて同期コミュニケーションをする時間を作ることで、コミュニケーション不足の解消や心理的安全性の確保を目的としています。
リリースサイクル
iOS/Androidアプリのリリースは一度リリースすると巻き戻しが効かないうえに、リリースにもAppStoreやGooglePlayの審査が必要になります。そのため細かい機能ごとにリリースするのは工数もかかるため現実的ではないため、 webアプリケーションとnativeアプリケーションで別々のリリースサイクルを運用しています。
webアプリケーション開発のリリースサイクル
webアプリケーション開発において、開発・レビュー・テストが完了したものに関しては、即日リリースしています。
nativeアプリケーション開発のリリースサイクル
nativeアプリケーション開発に関しては、1スプリント中に1リリースを目標としてブランチ運用ルールやQAサイクルを決めて運用しています。
最後に
アソビュー!では上記の開発プロセスを経て多くのリリースを実現しながら、プロダクトの仮説検証を実施しています。自分から取りにさえ行けばプロダクトの指標となっているデータも確認できる環境ですので、自社プロダクト開発に興味がある方はぜひ一度お話しましょう。