Scrum によくある誤解として「アジャイルは計画しないんでしょ?」「柔軟にやるって言って、計画しないから予定通りに何にも作れないじゃん」というのがあります。

自分は、Scrum を説明するときに「よくある誤解でそう言われるのですが」と先手を打って、そんなことはないというのを説明するので、最近は直接言われたことはないのですが、他の人からは、いまだにそれを理由に「アジャイルは信用できないからやらない・やりたくない」という話があると聞きます。

アジャイルの方が短く計画する

Scrum は1スプリント = 1週間~最大1カ月の期間で計画を立てます。その期間には全てのタスクを洗い出し、見積もります。期間内にちゃんとできるように毎日全力で実績を確認します。予定と実績の比較から、予定通りに行っていない場合にはどのように改善するか?も計画してすぐに実施します。

通常、チームのタスクの残作業や自分たちが実施した作業・完了した作業はリアルタイムで見える化されて、チャートでリアルで確認できるようになっているので、昔ながらのウォーターフォールの場合よりも遥かにしっかり計画して、それを実行しているという印象になるはずです。(いわゆる炎上しているウォーターフォールで、EVM をやっていない、CPIやSPIを計測していないようなウォーターフォールよりも、よっぽどハードな毎日のはずです。ずっとだらだらと残業して時間を沢山使うことで遅れや計画の問題を解消するようなことはできないし、そんなことをすると一瞬でバレてしまいます。もちろんそんな時間的余裕もありません。)

それに比べて、従来のウォーターフォールでは、より長い数ヶ月から数年の計画を立てます。当然、長い計画は作業の見積もりも難しく、計画と実績のずれも生じやすいですが、長い時間があることで問題を解決する余裕があります。多くの場合、うまくいった期間とうまくいかなかった期間とを合わせて帳尻をあわせて、全体としてうまく計画通りに行った、という印象になるのではないでしょうか。また、ずれることを前提にバッファを大きくとるのが当たらい前になっていたりします。

もしかして「アジャイルがちゃんと計画してなくて、ウォーターフォールがちゃんと計画しているからうまくいく」のではなく、むしろ逆で、「アジャイルの方がちゃんと計画するので、計画をちゃんとできないチームには難しい。ウォーターフォールではちゃんと計画できていなくても、何とかうまく計画できていたように見せられていた」というだけかもしれません。だとすると、そのウォーターフォールに比べてアジャイルはうまくいかないじゃん、と言っているのですよね。

遠い未来のことはわからないから、その時が来たら計画する方がいい

アジャイルとウォーターフォールのどちらがいいか?というのは、短いから計画をしやすいとか、長いから計画のずれを調整しやすいとか、そういう部分で判断するのは、実はちょっと違うと思います。

アジャイルは、やってみないとわからないことに向いています。こういう言い方をすると、その言葉尻が気になって「やってみないとわからないなんてそれでもプロか?ちゃんとわかってやるのがプロフェッショナルではないか?」と怒る人がいます。それは大きな間違いです。わかりやすい例を挙げると、世界中の誰もまだスマートフォンを持っていない時代、全員がガラケーどころか携帯電話というものをまだ持っていない時代をイメージするとわかりやすいです。その時代に iPhone のようなものが作れれば絶対に売れるはず、と考えて計画して作ることが出来るか?あなたがアプリの開発者だとして、指でタッチできる液晶モニタはおろか、文字を何行も表示できるカラーの画面をもつ電話もまだないのに、ちゃんと今普及している iPhone アプリのようなアプリを、これから作るハードと一緒に提案して計画できるのか?ということです。それは、まぁ、無理でしょう。今の iPhone の形とそのアプリの動作は、携帯電話や、PDAの他、様々なスマートフォンのようなものを販売しては思ったほど売れなくて苦労したという多くの人の経験の後に生み出されたものです。作ってみて、使ってみてもらってフィードバックをもらって、それが受け入れられるか?売れるか?に合わせて計画を練り直すからこそ、新しいものが作れるのです。

実は、スマーフォンそのものを生み出すようなイノベーションでなくても、私たちが普段使っているようなアプリを作るような場面でも、同じようにやってみないとわからないことは無数にあります。ウォーターフォールでは、実際にリリースしてユーザーに使ってもらえるまで1回の計画しかありません。これでは、使い勝手に合わせて改善した再計画をすることが出来ません。アジャイルは同じ期間に、何度もリリースをして、再計画をします。そういう点でアジャイルの方が優れています。

そしてさらにもう一つ、遠い未来の予想は難しい。その間に、何かが起こるかもしれない、ということです。最近の例だと、すごく優秀で自然に会話ができる新しい AI 「ChatGPT」が発表されて、すぐに様々な製品や Microsoft の Azure に組み込まれてもうすぐ自分たちも使えるようになるるという大きな動きが起きています。これが発表されるまで、こんなにスムーズに会話できる AI はなかなか生まれてきませんでした。ここでイメージしてみてください。自分たちが長い期間をかけて、この新しいAIではない、従来の技術で作った自社製の AI の開発をすでに行っていた場合、どうするのがよいでしょうか?もちろん数年前に計画した段階では、昔よりちょっとイケてる AI になるはずでした。しかし長い計画を実行している間に ChatGPT を Azure で使えることが発表されてしまいました。そして今はそれを組み込んで使う方がより良いことがすでに分かっています。さぁ、あなたは「これは計画されたことなので変えられない」と言って、従来の AI を使ったシステムを作り続けるのか?あるいは他の誰かが計画を中止するかどうか判断するのか?誰かに判断してもらえるまでとりあえず続けるのか?そもそも、こういうことが起こるというのを従来の「リスク管理簿」で適切に管理できるものなのでしょうか?そして、今、少なくともあなたは計画の中止を判断する誰かに何かを報告して新しいプロセスを回さなければならないのかもしれません。

これに対して、Scrum では特別に新しいやり方・プロセスを考える必要はありません。いつも通り、次のスプリント(1週間~最大1カ月)で何をするか?考えるときに、今の AI をあきらめて発表された新しい AI を取り入れることを プロダクトオーナー が決めればよいだけです。(もちろんこれはただの例なので、ChatGPTが本当に良いか?はわかりません。ただ、もしもっと別のものがよかったとしても同じように再び計画をし直すことが出来ます)つまり、こういう変化が起こることを前提にアジャイルは短く計画するようにしている、ということです。そういう意味で、アジリティ(素早さ)が高い、柔軟に先の計画を変更できるのです。

時間が経過したり、やってみて初めて分かった「無駄なこと」に時間を使う代わりに、別の価値を得られることに時間を使うことで、最終的により高い価値を得られる。それがアジャイルの一番の効果と言えます。

コメント