【スクラム開発】Doneの定義を作ろう
こんにちは。エンジニアの土田です。
社内で度々スクラム関連の説明をしていたら、ややあって今はスクラムマスターをしています。
なので今回はスクラムマスターっぽく『Doneの定義』について書きます。
Doneの定義とは
Doneの定義とは、チームとして定めた「出荷可能な製品」を作成するために実施しなければいけないことの一覧で、 POと開発メンバーで合意した、スプリント中に実行されるアクティビティにあたります。
Done(完了)というと受け入れ基準のような感じがしますが、Doneの定義は受け入れ基準ではありません。 むしろ受け入れ基準は、要件を満たしているかの確認観点(アクティビティの一要素)なので、Doneの定義に包含されるものになります。
なので、「すべての受け入れ基準を満たすこと」のような内容が、Doneの定義に入ったりするのではないでしょうか。
私はプロダクトバックログアイテムに受け入れ基準を書く際、
完了の条件
とかレビューチェック内容
という括りで記載しています。
なぜDoneの定義を作るのか
Doneの定義を作成すると、その過程でチーム内でアクティビティに対する認識の擦り合わせが起こります。 そうすると、「この作業はこういう順番でやると思っていた」とか「このタスクはリリース前に必要だ」などの情報が表面化するので、メンバー間の認識齟齬が明らかになり、チームで各作業における共通認識を持てるようになります。
そうすると1タスクを誰が実施していても、チームの共通認識の下で進捗を確認すれば、そのタスクがどういう状況なのかが明らかになる・・・とも言い辛いですが、 進捗報告の場で登場する『ほとんど完了していると言われるタスクがいつまでも完了しない』という現象を、発生しづらくすることはできるでしょう。
これはDoneの定義によって、チームの透明性が上がったからだと言えます。
透明性
スクラムの3本柱の一つである透明性
とは、あるプロセスに対する見える化の方法を標準化し、見ている人が共通理解を持てるようにすることです。
これにより、ある結果に対して責任を持つ人に、その結果を導き出すためのプロセスが見える化されている状況を提供することができるようになります。
透明化の例:
- プロセスの用語を参加者全員で共有している。
- 作業をする人とその作成物を受け取る人が「完成」の定義を共有している。→Doneの定義
出典:スクラムガイド
Doneの定義の作り方
私達はDoneの定義を以下のような手順で作りました。
1. 何についてのDoneの定義を作成するかを決める
ここまでの流れでは、スプリント中のアクティビティ(スプリント内のタスク)としてDoneの定義の話をしてきましたが、 スプリント中のアクティビティといっても、実際には様々なカテゴリのものが存在します。
Doneの定義の種類
大きい視点では、
- プロダクトバックログアイテム
- ユーザストーリー
などがあり、小さい視点では、
- リリース
- テスト
- 実装
- 設計
のようなものがあります。
このようにDoneの定義といっても『何』の完了なのかで、必要なアクティビティは異なるので、 初めに何のDoneの定義を決めようとしているのかを明確にしておきましょう。
大きい視点から作り、必要になったら小さい視点で作るのが良いと思います。
2. メンバーでアクティビティを出し合う
付箋を使って、各自が思いつくアクティビティを出し合い、理由を話しながらホワイトボードに張り出していきます。
アクティビティが出揃ったら、メンバーで話しながら実施する順番に並べ直しましょう。
なぜそれがその順番なのかを常に話しながら並べ直していくと、メンバー内で認識をすり合わせられて良いです。
3. Doneの定義としてまとめる
チーム内で合意が得られれば、それを現時点でのDoneの定義として定めます。
作成したDoneの定義は、必要なタイミングで常に確認できるようにしておきましょう。
Patheeで作った、プロダクトバックログアイテムのDoneの定義
実際にDoneの定義を2チームで作ってみたのが、以下の写真になります。
- 1チーム目
- 2チーム目
どうでしょうか。正直、だからどうしたという感じではないでしょうか。
最初に記載したように、Doneの定義作成は「チーム内でアクティビティに対する認識の擦り合わせ」が主たる目的なので、
Doneの定義は作成したときのコンテキストが共有されている人だけに価値が出るものだと思います。
なのでDoneの定義を作成する際は、なるべくチームメンバー全員に参加して貰うようにしましょう。
そして、(スクラム関連の成果物は大体そうですが )Doneの定義は完璧を目指して、継続的改善を繰り返し、徐々に拡張していくものなので、一度作ったからと安心せず、適当なタイミングで話題に上がるよう、チームみんなが意識し合えると良い感じです。
頑張っていきましょう!
今後Doneの定義を見直すことを考えると、Post itのアプリも活用して、文字起こししておくと良いかもしれません。