最初に結論を書いてしまえば「プロセスは銀の弾丸じゃないよ」ってこと。
そして、エンジニアだけがやるものじゃないんだろうね、ってこと。
最近というよりも、アジャイルという言葉はずっと以前から言われていて、
アジャイルソフトウェア開発宣言は2001年だし、
Scrumが生まれたのも1986年だ。
20年以上も多くのソフトウェア開発プロジェクトはプロセス改善を叫んだし、
実際にやってもきたけれども、
何故未だに建物を建てるようにソフトウェアを創れないんだろう?
これは自分がよく知る話。
「ソフトウェアの開発に変更はつきもので、かつエンジニアの力量によっても工数は大きく変化する」
というエンジニアの認識があったとき、こんな話がでることがある。
「なら最初からそれを織り込んだスケジュールを立てれば良いだけの話です」
「原発や東京スカイツリーのような巨大建造物でさえ、当初に立てたスケジュールに沿って建設されています」
「数十万キロ彼方の小惑星まで飛んで帰ってくる人工衛星でさえ、秒単位、分単位のスケジュールを立てて運航されています」
「どんなプロジェクトだって、事前には想定しきれない不具合や支障があるでしょうが、それを織り込んだスケジュールを立てて、皆がそれを運用しています」
確かにそうかもしれない。
でも、
なぜソフトウェアは建築物を建てるように構築できないんだろう?
なぜソフトウェアは秒単位、分単位で運行される衛星や列車のように運用できないんだろう?
答えはエンジニアの中にあって、エンジニアの外にはない。
だとしたら、どうやって伝えれば良いんだろう?
顧客を巻き込むプロセスは多くの場合、
これらの問題に答えをもたらしているし、
現実は多くの場合、顧客を巻き込めない。
だから、アジャイルは失敗する。
なので、
恐らく、ソフトウェア開発が劇的に改善することはきっとないだろう。
でも、それは技術によってではなく、人間の心によってだと思う。
だからこそ、今やれることがあるんじゃないかな、とは思っているところ。