アジャイル開発におけるドキュメンテーションの実際(2) ―― ドキュメントの「必要最低限」の見つけ方
●論理性を高めなければ見積もり精度は上がらない
さて,合意形成のために作成したドキュメントは,多くの場合,コミットメント(約束)の道具として使われます.皆さんの組織では,開発に対するコスト,工程,スコープのコミットメントはいつ行われているのでしょうか?
『アジャイルな見積もりと計画作り』(2)という書籍の中で,見積もりに対する「不確実性コーン」というものが紹介されています.見積もりの誤差は最初は大きく,プロジェクトの進行に従って小さくなっていくというものです.プロジェクトの初期状態でコミットメントするということは,見積もりの誤差が大きい時期に,コスト,工程,スコープを固定することだといえます.誤差が大きいので,過小見積もりによりうまくいかないプロジェクトも多く出てきます.よく反省会などでは,「見積もりが甘かった」,「次回は早期に仕様を明確にしよう」ということが述べられます.
ここで,見積もり精度を高めるには仕様をどの程度まで明確にしなければならないのか,ということが大きな課題になります.各開発フェーズでの論理性と実装性の関係に着目して考えてみましょう.「見積もりが甘い」という課題を持つ組織の多くは,要求分析フェーズでは論理性を高めず,方式設計,詳細設計と工程が進むにつれて徐々に論理性を高めています(図1).この場合,要求分析を実施した人と,後工程において論理性を向上させた人が異なるため,しばしばギャップが生じます.
図1 要求分析で論理性を高めていない場合

見積もり精度を上げるためには,図2のように早期に論理性を向上させる必要があります.つまり,「早期に仕様を明確化して見積もり精度を上げる」には,要求分析段階で仕様を高い論理性で表現する必要があるのです.このためには,形式仕様記述のような技術が有効です.
図2 要求分析で論理性を高めている場合

見積もり対象がシステム全体であるときは,システム全体を高い論理性で表現できなければなりません.早期に論理性を高めるのが難しいのであれば,早期のコミットメントには慎重になるべきです.あるいは,コミットメントを一方的な約束ととらえず,「現時点の予測に基づいた計画を達成するために両者が最善を尽くす」という約束と考えると建設的です.アジャイル・コーチとして有名なRyuzeeさんのブログでも,コミットメントについての考え方が説明されています(3).