たなかこういちの開発ノート

システム開発に携わる筆者が、あれこれアウトプットするブログ

予測型のウォーターフォールに対して適応型のアジャイル

先日、DDD Allianceによる「DDD Alliance! 3週連続DDD 第1週」という勉強会が開催されました。私は参加しなかったのですが、参加者さまによるツイートを眺めていたら「予測型のウォーターフォール、適応型のアジャイル」という趣旨のツイートを目にしました。「予測型のウォーターフォールに対して適応型のアジャイル」、素晴らしくよく様子を表現した言葉です!講師の増田氏が話された内容のようでした。講演資料が公開されましたので確認したところ、同資料21枚目にありました。
 
私自身がコンシューマー向けWebサービスの開発現場で得た理解を、以前こちらの記事にまとめました。「メンバー個人の当事者意識に賭けるアジャイルと、組織的な仕組みで担保しようというウォーターフォール」という価値観または文化の対比で捉えました。また、こちらの記事では、プロジェクト遂行に当たっての“道標”を如何に獲得するか、という点を「計画主導のウォーターフォールと、いわば結果主義(?)のアジャイル」という対比で表現しました。
 
ここで、アジャイルの「当事者意識に賭ける」という価値観はとても訴求力があるのですが、対して「結果主義のアジャイル」という表現では、ウー太くんに「いきあたりばったり」と言われても、ちょっっと仕方が無いかなー、と自分自身で思っていました。
 
そうしたところに、「予測型のウォーターフォール、適応型のアジャイル」のツイートを目にしました。なるほど全くもって「適応」です。適応、つまり適者生存とは全くもって結果主義なのですが、結果的に良い方向へ進むことができるメカニズムをよく説明してくれます。
 
 
また、「(RUPなどの)反復型」と「アジャイル」の関係に対する疑問ツイートも見かけました。増田氏の講演資料による説明とはやや異なるのですが、私見ながら下図のように理解できると思います。
 

f:id:tanakakoichi9230:20150906232912p:image

 
こちらの記事でも一言言及しましたが、予測型か適応型かという対比軸でみればUPも所詮予測型の変種でしかありません。現代のエンタープライズ開発現場では、「ウォーターフォールでやってます」と言っても全く反復せずに進める現場はさすがに少数派です。多くは何らかの反復を行っています。反復してもそれがアジャイルでは無いのは、つまり次の理由によります。
 
(1) 反復自体が組織的な仕組みであり、個人のパフォーマンスを引き出すことに重点を置いている訳では無い。
(2) 予測可能な程度にスコープを小さくしているのであって、適応的に進めているのではない。
 
 
<追記1>
ところで、適応型で進めるというのは、とてもしんどい事です。生物進化で言えば、10の生物種のうち9は適応できずに絶滅するということです。適応して次世代へ生を繋げられるのは1つだけです。要は「10回試行錯誤して、1つ成功すればOK」、という感覚です。もし予測できるのであれば始めからその1つだけ試行すればいいので、必要リソースは予測できる場合の10倍です。しかし、予測できない世界では10回試行するしかないのです。ここに、いや「がんばれば見通し立てられるのではないか?」という欲(?)も加わります。「見通し立てるために調査してる間に、試行錯誤を進めた方がいいのではないか?」という逆の迷いも生じます。実践はなかなか難しいです。
 
<追記2>
もう少し考察すると、予測可能な世界であれば、計画し組織的に力強く推し進めることができます。予測できない世界では、個々の試行に期待するしかないのです。個々の試行に期待するとき、その各試行が本当に目標やチームへ貢献する方向でパーフォームしてくれるかどうかは、試行実施者の当事者意識(=暗黙知レベルの価値観共有)に依存します。
 
◆以上