V字モデルとアジャイルとユーザーフィードバックとアンチパターン
ウォーターフォールとアジャイルとV字モデル、そしてユーザーフィードバックとアジャイルのアンチパターンを、アジャイル開発/スクラム開発の実践経験から考えてみる。
まず、ウォーターフォールとアジャイルを超簡略化して比較すると以下のように、ウォーターフォールで行う、要件、設計、実装、テストというフェーズを、アジャイルでは各スプリントで実施していると考えられる。
次に、ウォーターフォールにおけるV字モデルを超簡略化して考えると以下のように、要求に対しての確認(バリデーション)、設計に対する検証(ベリフィケーション)の2つが重要であろう。
このV字モデルをアジャイルに当てはめて考えると、各スプリント毎にV字を回していると考えれる。 各スプリントでユーザーフィードバックを得るアジャイルにおいては、各スプリントで回すV字で、要求に対するバリデーション(確認)を行っているということになるだろう。
各スプリントにおける要求に対するバリデーションで重要なことは、アジャイルチームが直接エンドユーザーからのフィードバックを得ることができることである。
しかしながら、特に大企業におけるアジャイル開発においては、アジャイルチームが頻繁に直接エンドユーザーフィードバックを得ることが難しい体制となることがある。ビジネスユニットや営業などがエンドユーザーの代弁者としてアジャイルチームの成果をレビューし、その上でエンドユーザーにコンタクトすべきだ、という考え方である。この図のようになると、アジャイルチームはエンドユーザーからの直接フィードバックを得ることができなくなる。
しかし、現実はもっと複雑であり、以下のような図となることも、しばしば起こる。
このようになってしまうと、要求に対するバリデーション(確認)を頻繁に行うことによって、手戻りを少なくし、本当に必要なものから開発していこうということができなくなってしまう。つまり、アジャイルのメリットを享受できなくなってしまうのである。
このようなアンチパターンに陥らないために、少なくとも以下の図のような体制にすべきであろう。
そのためにも、プロジェクトのオーナー(多くは組織長であるだろう)が、アジャイル開発の本質を正しく理解しておくことが必要である。 アジャイルチームだけでは解決できない問題であり、アジャイルチームを不幸にしないためにも、プロジェクト開始前にステークホルダー全員にアジャイル開発の説明を欠かさずに実践していただきたいと、苦い経験から切に思う。