
なぜアジャイル開発では「ビジョン」が大切か
「アジャイル開発ではプロダクトビジョンが大切です。」
よく言われるし、IPAが出している情報システム・モデル取引・契約書(アジャイル開発版)にも書いてある。
契約前チェックリストのチェックポイント
2. プロダクトのビジョン
・開発対象プロダクトのビジョンが明確であるか
・開発対象プロダクトのビジョンについてステークホルダーと認識が共有されているか
なぜ重要なのか、これがないと何がうまくいかないのか、実体験として経験しつつある。
ウォーターフォールプロジェクトでもプロダクトビジョンはあるのにはあるのだろうけど、
私のような末端エンジニアまで伝わってきたことは過去あまり記憶にない。しかしアジャイル開発に触れてからやたら「プロダクトビジョン」という言葉を見聞きする。
ウォーターフォールでは最初に要件定義をして、そこで工程承認を経て次の工程へ進む。
ここで要件は固まるわけだから要件定義に関わる人だけがビジョンをもってさえすればなんとかなった。
その後の工程では前工程の成果物をインプットにアウトプットを作っていけさえすればよかった。
一方アジャイル開発は変化を味方にしていくため、開始段階で明確な完成形は見えない。
それでもチームが一丸となって進んでいく。そのためにチームの心柱になるようなものが必要なのだ。
スクラムマスターとしてなにを心がけているのか他の人に説明するときに、
まずはティーチング、そして次に自分たちのことは自分たちで決めることができる自己組織化したチームを目指すようにするという話をする。
人から言われてやり方を決めるのではなく当事者が考えて試して最適なやり方を見つけるのが最短で最善であるという考え方だ。
最良のアーキテクチャ・要求・設計は、
自己組織的なチームから生み出されます。
誰かが引っ張るのではなく、自分たちで決めて進んでいく。
そこでやっぱりチームの心柱になるのがプロダクトビジョンなのだと思うし、開発者含め全員が共通認識を持っていなければならない。
アジャイル開発でやっているのにも関わらず、「ビジョンって別になくてもよくね?」って思っている方(チーム)があれば、
その方(チーム)はHOWが先行したものづくりになっていないか要注意だ。
これを作ってさえいればいいんだよ、な考えだとそれに陥りやすい。
WHY中心でいきたい。作るものを固定するならばそれはもうアジャイル開発でなくて良いと思う。
短期間でリリースし、フィードバックを得ながら計画を適応させていけるのがアジャイル開発の強みだからだ。