アジャイルマニフェストからの10年をふりかえる by マイク・コーン

この文章はMike Cohn さんの原文を、@kawaguti が翻訳したものです。誤訳などありましたら、ご指摘をいただけると助かります。
[原文] REFLECTIONS ON THE 10 YEARS SINCE THE AGILE MANIFESTO by Mike Cohn*1

アジャイルマニフェストからの10年をふりかえる

今日は、結果としてアジャイルマニフェストが生み出されることになったミーティングの、その最初の日から、10周年の記念日になる。アジャイルマニフェストから10年間で多くの変化があった。当時、マニフェストの源流となったXP/スクラム/DSDM/FDDなどを使ったソフトウェア開発は数えるほどしかなかったため、現実世界のアプリケーションには向かないよと、退けるのは容易であった。

私の部署でも、スクラムを採用することには疑念があった。当時はユニファイドプロセスに関する話題(buzz)が飛び交っていた。もしまだユニファイドプロセスを使っていないなら、使ってみるべき、という風潮があった。私たちはスクラムを使って非常に素晴らしい成功を収めていたが、こんなおもちゃのように小さなプロセスではなく、もっと完全な方法論を使えばもっと成功したんじゃないか、という不安でいっぱいだった。他にスクラムをやっている人なんて知らなかったし、"アジャイルソフトウェア開発"なんて言葉もなかった。全世界が"ユニファイドプロセス"に移行しようとしているように見えた時代に、そう思っていないのは私たちだけなんじゃないか?という疑念を払拭するのは難しかった。

そして2月のある朝、ウォード・カニンガムからのメールを受けた。「私がこの数日、なにをやっていたかを見てほしい。」と書いてあった。新しいウェブサイト www.agilemanifesto.org へのリンクがついていて、ホワイトボードを囲んで立っている何人かの男たちが映った、粗い画像が表示されていた。しかし私は、そのウェブサイトから稲妻に打たれたような衝撃を受けた。私たちはひとりじゃない。突如、私たちと同じように考えている人たちが、少なくとも17人は存在する、ということを知ったのだ。そして、日が経つにつれ、agilemanifesto.org にサインする人々の名前は増えていき、短い団結宣言が追加された。

私たちのやっていることに "アジャイル" という名前がついたことで、私たちと同じような人々がそこかしこに出現したようだった。"わたしたちもやってるよ!" というのが初期のアジャイリストたちのキャッチフレーズになり、我々は皆一人ではないことを発見した。

そして現在、10年が経ち、状況は180度変わった。あなたがもしアジャイルをやっていない/アジャイルになろうとする過程にないなら、自分もやった方がいいんじゃないか?と思うだろう。10年前と比べて最大の変化は、どのプロセスを利用するかを検討する議論において、アジャイルプロセス群は席が予約されている、ということだ。もし私が大企業の開発担当副社長で、他の部門の副社長たちにアジャイル開発を薦めたら、彼らはむやみに拒否することができないだろう。アジャイルは、いろんなやり方があるが、実行可能で実現可能な代替案である。すべての会社やプロジェクトにおいて適切な手法であるとは限らないが、アジャイルを提案するとき、誰一人として、それを笑いとばすことはできないだろう。

10年で、笑い飛ばされそうな手法から、実現可能な代替案になった。アジャイルはこれからどうなっていくのか? 幸いなことに、次のステップとして2つの案が示されている。私は、全てのブランドを排除したい。スクラム、XP、カンバン、リーン、DSDM、クリスタル、すべて必要ない。ただ、アジャイルと言おう。このことはオブジェクトの世界で20年前に起きたことだ。当時は多くのモデリングアプローチが存在した。ランボー法、ブーチ法、メイヤー法、ヤコブソン法、などなど。結果的にそれらの違いは脇に置かれ、現在は単にオブジェクトとUMLを使うようになった。

次の10年の変化として私が見たいのは(起こると予想されるのは)、オブジェクト指向の世界でも起きたことだ -- 我々はアジャイルについて語るのをやめる。しばらく前から、我々はオブジェクトについて語るのをやめた -- オブジェクト指向が勝利したときから。そしてオブジェクト指向に関する大激論にだれも巻き込まれなくなった。もちろん、厳しい性能要件のアプリケーションなどで、オブジェクトを使わない場合はあるし、非オブジェクト指向の言語で実装されたプロジェクトもある。しかし、そのような場合でも、オブジェクトの影響を受けたコードを書いているのではないだろうか。私はアジャイルを同じ地点にもっていきたい。もう何も話さなくてもいい、という地点に。"アジャイルソフトウェア開発" ではなく、単に "ソフトウェア開発" に。もちろんそれはアジャイルである。もし私がRubyのコードを書けば、だれもそれがオブジェクトかどうかなんて聞かない。もちろんそれはオブジェクトだ。私はいつか、私がプロジェクトでアジャイルを使っていても、だれも聞かないようになってほしい。もちろん、私はアジャイルをやっている。

次の10年で、私はまた、アジャイルマニフェストから20年をふりかえれればと思う。それまでにマニフェストは多くの人からは忘れ去られたドキュメントになっていてほしい。マグナ・カルタのように。そう、それは埃だらけの過去のことだ。私の人生はいまだにマグナ・カルタの影響を受けている。最近も陪審員として呼ばれたところだ。しかし、マグナ・カルタについて考えることに日々を費やすことは難しい。アジャイルマニフェストにも同じような運命が待っていることを願う。そして、10年後にアジャイルソフトウェア開発をふりかえるとき、それをアジャイルと呼ぶことをやめていることを願う。我々はアジャイルと呼ぶことは一切やめてしまい、ただ、アジャイルをやっている状態になっていることを願う。

ご指摘、修正等

コメントで、ご指摘頂いた点を対応しました。ありがとうございます

  • 「自分もやった方がいいんじゃないか?と思っている」⇒「自分もやった方がいいんじゃないか?と思うだろう」
  • 「そのプロセスを利用するかを検討する議論において、アジャイルプロセス群は席が予約されている、ということだ」⇒「どのプロセスを利用するかを検討する会議卓の一席にふさわしいものである、ということだ」
    • ごめんなさい、この点はどうもしっくりこないので(私の訳がよいというつもりはないのですが)、一旦リジェクトさせていただきました。
  • 「ランバー法」⇒「ランボー法」
  • 「ジャコブソン法」⇒「ヤコブソン法」

*1:翻訳したよ、という連絡をコメントでしたところ、"That's great." と言ってくれてます。