Doneの定義(完了の定義)とは何か?アジャイル開発で使われる用語を解説

2022年6月20日

Doneの定義(完了の定義)の概要

Doneの定義(完了の定義)とは、成果物が、顧客に使用される準備ができていると見なされるために、満たす必要があるすべての基準を備えたチェックリストのことです[1]PMBOK第7版、81頁。。主にアジャイル開発で使われる言葉で、同手法の要件定義として使われるユーザーストーリーが完了と見なしてよいかの判断に使われます(ユーザーストーリーについては、下記の記事もご参照ください)。

Doneの定義を使うことによって、要件を満たさない機能が顧客またはユーザーに提供されるのを防ぎ、手戻りを減らすことができます。

Doneの定義の例

Doneの定義はプロジェクトや開発チームごとに定義されるものであって、普遍的なものではありません。例えば、ユーザーストーリーのDoneの定義には以下の内容がチェックされます。

  • 単体テストに合格
  • コードのレビューに合格
  • 結合テストに合格
  • 非機能要件が満たされている

こうした内容をスクラムマスターなどのチーム・リーダーや開発責任者が考え、チームに共有します。

Doneの定義のメリットと注意点

上述のとおり、Doneの定義を導入することで、要件を満たさない機能が顧客またはユーザーに提供されるのを防ぎ、手戻りを減らすことができます。また、作業の完了について、チーム内の認識を揃えることができます。

一方で、Doneの定義を用意することによって、チェックリスト以上の確認をしなくなることがあります。開発している機能によっては、他の機能とは異なる特殊な検証が必要な場合もあります。そのため、Doneの定義だけに頼っていては、確認が不十分になることがあります。
また、単にDoneの定義がチーム内で共有されるだけでは意味がありません。スクラムマスターやプロジェクト・マネジャーは、Doneの定義が実施されるように監視・訓練することが求められます。

参考

1PMBOK第7版、81頁。