アジャイルがそんなにダメだと思わない7つの理由

鈴木雄介さんが、「アジャイルがダメだと思う7つの理由」というすごいブログを書いてくれたので、がんばって返答を書いてみる。どこかでディスカッションできるといいなぁ。

 

1. 全体スケジュールにコミットできない 

コミットメントって何だろう。コミットメントは約束なのか。約束であったら、破った場合のペナルティも受け入れるのか?受け入れたところでバッファが巨大になるだけではないのか?そして、そのバッファは見えないところで食い尽くされる。

全体を見えずに計画したところでうまくいくはずはない。アジャイルがタイムボックスで計画、実施を行うからといって、全体を計画しないわけではない。むしろ積極的にやるべきである。

全体を計画する上では、なるべく漏れがないように、実施可能なように最大限の努力をする。ただ、それに時間を掛けすぎるのは無駄だ。そして、神ならぬ人間が計画するのであるから、以下を認めなければならない。

  • 全体は全体ではない。あなたの見えている範囲にすぎない。それが十分でなかったら拡張しなければならない。計画の実施を優先して、全体の範囲の確認を怠るとどうなるかは、たくさんの事例があるだろう。想定外は言い訳にならない。
  • 計画はあたらない。どんだけの努力を払ったところで、計画が必ずあたるということはない。それを素直に認めることだ。それでも計画を当てようとする努力を怠るわけではない。

 Plans are useless but planning is indispensable.

 

2. アーキテクチャ上の無駄が生じる

 無駄をわかっていることを、さらに続けることを無駄という。あとで無駄とわかったから、それは避けられたというか?それを避けていたら、もっと大きい無駄を見逃すことにならないか。

 Twitter が最初から Scala にしていたら、作り直しの無駄は避けられたか?避けられたかもしれない、でも今の Twitter の隆盛もなかったかもしれない。

 

3. コーチって何だよ

これは痛い。かといって、成果に連携した契約にする気もない。

おむつを変える気もないけどね。自分のケツは自分で拭け。

それでも、コーチがいたほうがいいと思う。別にコーチでなくてもいい。エンジニアのチームの中のコミットメントに参加しない部外者が。

卑怯な話であるのは認める。でも、私がコーチで現場の近くにいて一番気にしているのは、自分より優秀なエンジニアを過労で失う経験はもうしたくない、ということだ。

優秀なエンジニアは本当に優秀だ。びっくりする。でも、優秀であるが故に、自分の負荷が見えていない人が多い。優秀なエンジニアは、自分のタコメーターが壊れていることに気がつかない。気がつかないから、優秀なのかもしれない。

そこを見える第三者がプロジェクトの近くにいるのは、必要なことだと考えている。

 

4. 変化ヲ抱擁スルために固定化している

すべてを変化しやすくすることはできない。人間が耐えられる変化の量はきっと、これまでもいまからも大してかわらない。それでも変化ヲ包容スルためには、変化しないところと、変化しやすいところを読んで賭けるよりない。それがアーキテクティングだろう。

変化を包容するために、集団もしくはチームの維持にアーキテクチャを賭けるのは、筋の悪い選択だとは思わない。伊勢神宮式年遷宮が今年も可能なのは、建物ではなく宮大工の集団に永続性を見いだしたからだ。

蛇足かもしれないが、ソフトウェアの成果物に重力が働かないことは、ソフトウェアの変化の量を読むのをものすごく難しくしている。重力の働かない場所で、今の建築技術はどこまで使えるんだろう。

 

5.実証主義的な説明に過ぎない

その通り。すべてのベストプラクティスは過去のプラクティスである。次にうまくいく保証はない。

いい人材がいれば成功するだろう。そのとおり。でも、いい人材をどうやって見いだすんだい?どうやって伯楽が育つんだい?それこそ実証的にやっていくよりないだろう。

 

6.手段が目的になっている

まあ、その通り。それでビジネスにはならないし、すべきでもない。

でも、初期には手段を目的にして練習してもいいんじゃないかな。野球を練習するとき、プロで勝つことを目的にはしないでしょ。純粋にキャッチボールやバットで打つのが楽しい。入り口はそこでいい。でも、プロになるには、それだけでは無理という話は矛盾しない。

まあ、「アジャイルで開発したいんだけど、、、」という依頼が来たときは、大抵断ってますけどね。

 

7.アジリティはアジャイルだけのものではない

特定のプロセスにこだわるのは、アジャイルだとは思わない。必要ならプロセスも変えればいいのだ。実証的に。

1980年代ウォーターフォールの形式化に貢献した、アメリカ国防省(DoD)が今何をやっているかご存知だろうか?

 これが、DoD 傘下の Command and Control Research Program の最新の研究成果である。

 

 

The Agility Advantage: A Survival Guide For Complex Enterprise and Endaevors

「アジリティの優位性: 複雑な企業と作戦のサバイバルガイド」

 

これが、アジリティということだろう。