📖
初対面のチームのために「完成」の定義を作ってみた
はじめに
私は某メーカー系のDX推進の部署で、事業部のシステムを構築する仕事をしています。
今回、新チームの立ち上げにあたって、「完成」の定義をまとめたので共有したいと思います。
今後運用していく中で修正していく可能性もありますが、その場合は随時更新を行っていこうと思います。
なぜ「完成」の定義が必要か
私の部署ではスクラム開発をしているわけではないですが、アジャイル的に開発を行っています。
新規プロジェクトでは、転職や社外メンバー、アジャイル開発をしたことないメンバー等、バックグラウンドが異なるメンバーが集まったので、「完成」の定義を作っていたほうが(特に最初の数スプリントで)仕事が進めやすそうだなーと考え、作成しました。
チーム構成と担当範囲
- PO 1名
- 事業部と調整し、各PBIの優先順位、仕様を決める
- デザインチーム 2名(稼働はそれぞれ、2日/週、2.5日/週)
- 画面イメージを作る
- CSSの実装はしない
- 開発チーム 3名(リーダーの私含む)
- 設計、開発、運用を担う
- 技術スタックはReact, Next.js, TypeScript
- デザインチームのツール(zeplin)が自動出力するCSSを活用しつつ、デザインを適用する
作業の流れ
チーム内のスプリントのタイムボックスは一週間です。
事業部との打ち合わせを月二の頻度で行い、ステージング環境でデモを行い、本番リリースしてよいか確認します。
PBIは以下の流れで進んでいきます。
- POにより仕様作成(※仕様は後工程でお客様、チームメンバーと議論する中で随時変更させていく。)
- デザインチームによりデザインイメージ作成
- POによるレビュー(デザインチームの完成の定義の一部)
- スプリントレビューでチーム全体で確認
- 開発チームよる開発
- 開発チーム内で相互レビュー(開発チームの完成の定義の一部)
- スプリントレビューでチームメンバー全員で確認
- 事業部レビューでPO、開発チームリーダーが説明
「完成」の定義
プロダクトバックログの「完成」の定義
役割ごとに「完成」の条件も異なると考えたので、分けて記述したいと思います。
PO編
- JiraにPBIが作成されており、以下の項目が
- 「私が [ペルソナ] なら、[希望] を実行することで [目標] を達成したい」の構造になっていること
- ユーザーから見た振る舞いも記載されていること
- 例:検索機能の場合
- 「製品名」「製品の説明」を検索対象とする
- 検索結果画面は「製品名」で昇順になっていること
- 検索結果画面はXX件表示されること。もし、XX件ある場合はページネーションが表示されること
デザインチーム編
- 画面のデザインが作成され、POのレビューが通っていること
上記を満たしている場合、以下の作業を行います。
- zeplinを使用して開発チームにデザイン、CSSが共有できていること
開発チーム編
- PBIごとにfeatureブランチが作成されていること
- featureブランチの実装はPBIの仕様が満たせていること
- 仕様とは、JIRAのPBIに書かれた機能、デザインのこと
- 単体テストが書かれているこ
- 自動テストが通っていること
- eslint, prettierのチェックでエラーが出ていないこと
- 開発チーム内の相互レビューが通っていること
上記を満たしている場合、以下の作業を行います。
- developブランチにマージすること
- developブランチの自動ビルド&デプロイが正常に通り、ローカル環境とステージング環境で同様の挙動が実現できていること
スプリントの「完成」の定義
週一のスプリントを完了するための「完成」の定義です。
- 全てのストーリーの「完成」の定義が満たされていること
- 全てのバグが解決しているか、対応の期限を決めていること
- POのレビューが通っていること(スプリントレビューで実施)
- 上記レビューで問題があった場合は、Jiraに新しいPBIが作成し、レビューが通らなかった課題とリンク付けを行うこと
製品リリースの「完成」の定義
月二の事業部レビューを完了するための「完成」の定義です。
- 全てのスプリントの「完成」の定義が満たされていること
- ステージング環境を動かしながら事業部と打ち合わせをし、事業部の責任者からのチェックで問題がないこと(事業部レビューで実施)
- 上記レビューで問題があった場合は、Jiraに新しいPBIが作成し、レビューが通らなかった課題とリンク付けを行うこと
Discussion