ウォーターフォールかアジャイルか
最近、少しX(旧Twitter)で話題を呼んでいる、ウォーターフォール不要論についてちょっと自分の考えを書こうかなと。
僕に関して言えば、基本アジャイルの開発スタイルで、アジャイル好きなので、ウォーターフォールはほとんどやったことがない。
その上で、ウォーターフォールについて語るというよりは、アジャイルについての認識を書いた上で、ウォーターフォールの場面を書く感じにしようと思う。
ざっくり概要
アジャイルは、直訳で言うと「素早い」という意味になる。
何が早いということなのだろうか?
それには、Lean Startup という考えが大きく影響を与える。
Lean Startup とは、「無駄を極限まで削減し、顧客の価値を届ける」という考えのもの。
その上で、MVPという考えも取り入れている。
アジャイルはこれらを体現するためのイテレーションを開発工程で行うための開発手法。
要は、顧客への価値を最小限のコストで、最大限に提供するために石橋を叩いて開発をしましょうという考え。
対して、ウォーターフォールはというと
プロジェクトを完了させるための特選武器といった、あるタイプの敵に対してのみ天敵となるような槍のようなもの。
これらの違いはどうなのかというと
アジャイルは、プロダクト周りを囲う城のようなものに対し
ウォーターフォールは、プロジェクトに対する特化型武器というもの。
この時点で、イメージからも全く別のものという構図が出来上がるだろう。
家と城を比較するのは容易だが、城と槍とでは比べるものではないのは一目瞭然だと思う。
このように、目的が異なるものに対する比較というのはするものではない。
アジャイルの戦略
Lean Startup という考えは、コストを最小限に抑えるということを強みとする。
「価値を届けること」は確かに最優先事項ではあるのだが、コストを無限にかけていいのかと言われるとそんなことはなく、できればコストを抑えた形で進めるのがベストになる。
そのため、その手法として、MVPという考えを取り入れている。
つまり、本当に価値となるものなのかどうかを検証を行う工程である。
この検証フェーズを取り入れることにより、価値だと思っていた自分たちの仮説が間違っていた場合、その検証を中止することでコストが広がる前に次の検証に移せるようになる。
例えば
映画館に、映画を見る前に購入できるポップコーンとコーラを提供してみようという仮説はとても分かりやすい。
映画を見る、聞くという行動に対して、手と口は空いている。
以下のような仮説を立てて、検証することができる。
1. 最初は飲み物だけを提供してみよう。それなら缶やペットボトルで提供するだけでけでできるので、労力としては飲み物を取り寄せるだけでできる。
2. 繁盛したので、チョコレートなども提供してみよう。チョコレートも包装されているものを取り寄せるだけで提供できる。
3. 飲み物の中でコーラの売り上げが良かった。ならそれに合う食べ物も提供してみよう。
4. ポップコーンを作って提供してみよう。
という流れで、ポップコーンとコーラの図が成り立つのが眼に浮かぶ。
実際はそんな簡単にことが進むわけではないだろうが、大雑把にはこうだ。
この流れには、映画を見ている間は、手が空いているであったり、映画の時間にお腹が空くのではないか、という仮説から、どうしたら顧客に対しての価値を提供できるかを考え、さらにまずはペットボトルによる飲み物の提供から始めることで、コストを最小限に抑えている。
これがウォーターフォールであるなら
すでにもうポップコーンとコーラが価値を生み出すと結論付いた中で、以下に最小コストで最速にポップコーンとコーラを提供できるかに焦点が当たっていくだろう。
どこどこの提供元は、○○円安くなるから、ここから何リットル取り寄せようとか、取り寄せる際の運搬にはどこどこ会社を経由しようとか、そっちに焦点が行き、目的が顧客の提供ではなく、提供のコストを抑えることにあたることになる。
目的の違い
ここで、多くの人は目的の違いに気づいたのではないだろうか。
もう一度おさらいすると、アジャイルは顧客の価値を最小限のコストで確かめることを目的にしている。
ウォーターフォールでは、顧客の価値は達成されているので、その目標達成のための手段を考えることが目的としている。
ここで、すでにフェーズが異なっているのである。
しかし、それでは終わらないのがビジネスの世界。
アジャイル
次は、パッケージはどうするか?という話になってくる。
ストローでの提供にするか? 飲み終わった後のゴミは持ったまま鑑賞になるのか? 複数人で分けれるようなポップコーンの提供箱にできないか? 複数の味を楽しめるようにしたらどうか?
いろいろと仮説が生み出されるだろう。
そうすると、またその価値を確認するためのアジャイルがイテレーションとして始まる。
その中で、ある映画が流行っている間は人の流動が多いから、この時に検証するのがいいのではないかという考えの元、パッケージの作成やデザイン、ロゴなど、プロジェクトが立ち上がり、いつまでにパッケージにロゴを当てはめて、売り出すというウォーターフォール的な仕事が始まる。
当然、パッケージに拘りを出さないのであれば、そのプロジェクトは立ち上げなくてもできるだろう。そこでコストを抑えるというのもアジャイルの手法だと思う。
映画に合わせたパッケージであれば、もしかしたら売れるかもしれないといった仮説が出たのであれば、試してみるのもアリであろう。そこで仮説検証され、「売れる」とみなされたのであれば、次からはウォーターフォールとして映画に合わせたデザイン作成、ロゴ作成が行われる。
しかし、その中でも小さなアジャイルが発生する。
パッケージには、主人公だけでいいのか? サブキャラにもファンがいるのであれば真ん中に立たせるのはサブキャラでもいいのではないか? パッケージから剥がせるようなデザインにすれば、食べ終わった後もコレクションとして置いておけるようにできれば需要は高まるのではないか?
こういった仮説は、常にアジャイルで検証が必要になる。
大事なのは、どれをどの順番でそれを検証していくかになってくる。
コストがかからないのはどれが一番か? その中で費用対効果が高い仮説はどれか?
こういった事を繰り返していくことで、顧客に対する価値を作るのがアジャイルの目的となる。
ウォーターフォール
ウォーターフォールでは、そこの検証が全くないである。
つまり、すでに答えが見えているものに対して、プロジェクトを回すのである。
例えば、どこでもドアなんてものがこの世にあれば、誰もが欲しいと思うだろう。じゃあそれを作ろう、と段取り決めて完成形を作りだす。
それだけなのである。
ただ、ここで出てくるのは、「どのように作るか?」だ。
これは、アジャイルも同じになる。
どのように作るかというのは、ウォーターフォールであろうと、アジャイルであろうと変わらない。
そのために技術検証は行う。
そこもウォーターフォールであろうが、アジャイルであろうが変わらない。
しかし、見えてる景色が異なる。
アジャイルは、霧の中で目的地の灯台の光が複数見えてる状態だ。
対してウォーターフォールは、目的地の灯台の光が一つと、そこまでの道まで見えてるのだ。
どちらも道が険しいかどうかは別であるが、向かう先が一つか複数か、見えているか見えていないかの違いである。
灯台の光が価値だとしたら、本当に価値があるかどうかが見えていない時点で、ウォーターフォールで開発をしてしまうと、もしかしたらどこでもドアではなく、ただの引き戸を高コストで開発してしまう可能性がある。
結果、作りきった後に「やっぱ逆方向にある灯台の光に向かおう」となれば、それはもうコストどころではない。
こういった違いが分かってくると、比べるものではないということと、どういう時にアジャイルを取り入れるか、どういう時にウォーターフォールを取り入れるかが、少しずつ浮き彫りになってくるのではないだろうか。
まとめ
非常に多くの人が、「ウォーターフォールかアジャイルか」という論争を目にする。
しかし、そこには目的が異なる二つ、つまり性質が全く異なるものを比べようとしていることに気づくだろう。
我々がやっているのは、プロダクト開発であり、昨今のプロダクト開発には多くの不確実性が紛れ込んでいる。
それらの不確実性が混在している状況下で、何かを決めつけて盲信するにはリスクが高すぎると思いませんか。
そのため、石橋を叩いて、もし崩れたのであれば、引き返して別のルートを探せば良いのです。
崩れないのを前提に、最速のバイクで走り切るなんていうやり方は現代には合わないというのはそういうところから来るのだと思う。