マーチン・ファウラー氏が語る、21世紀のソフトウェアデザインとしてのアジャイル開発(前編)。Agile Conference tokyo 2011
アジャイル開発に関する論客の一人マーチン・ファウラー氏は、7月20日にテクノロジックアートが主催したイベント「Agile Conference tokyo 2011」で「21世紀のソフトウェアデザイン」をテーマに基調講演を行いました。
ファウラー氏の基調講演の様子を紹介しましょう。
アジャイル開発の意味が希薄化している
ThoughtWorksのマーチン・ファウラー氏。
アジャイルソフトウェア開発宣言から10年がたち、そのあいだいろんな人が伝えていくうちに当初の意味の希薄化(Semantic Diffusion)が起きてしまったと思う。私の役割は、最初の意味を思い出してもらうことだ。
アジャイル開発と計画駆動開発(Plan-Driven)をくらべてみよう。そこには「予想的な計画(Predictive Plannning)」と「適応的な計画(Adaptive Plannning)」、そして「プロセス主導」対「人主導」という違いがある。
要件の安定性に依存するのは不健全だ
まずは「予想的な計画(Predictive Plannning)」と「適応的な計画(Adaptive Plannning)」について。
土木や建築に由来するのが「計画駆動開発」で、これは最初に計画を立てて設計し、実行する。このプロジェクトの成功の定義は、計画通りにいったかどうかだ。成功は、事前に要件が明確であり、安定していることに依存している。
ソフトウェアの開発では、プロジェクトの途中で要件に大きな変更が起きることはよくある。そのため計画駆動のソフトウェア開発では、成功のために要件をいかに安定させるかということに力を注いでいた。
しかしアジャイル開発では違うアプローチをとった。要件の安定に依存するのは健全ではない。要件が不安定であってもプロジェクトを前に進めていくプロセスがあるべきだと考えたのだ。
アジャイル開発では 少しだけ計画をし、そこから学習する、ということを小刻みに続け、計画をすることを歯車のように動かし続ける。ユーザーは早い段階で状況を把握でき、次に何が必要かを迅速に判断できるようになる。適応的な計画(Adaptive Planning)、これがアジャイル開発のアプローチだ。
まず人ありき
次は「プロセス主導」対「人主導」について。
20世紀に入り、フレデリック・テイラー氏によって科学的管理法が生み出された。 科学的管理法ではプロセスがはっきりしており、そのプロセスに従って働く人のためのマニュアルや指示書がある。
ソフトウェアの開発でも、プロジェクトのチームに対して、この人はプログラマ、この人はテスター、この人はアナリストなど、あらかじめプロセスに対して必要な役割が決まっていて、そこに人を配置していく。ここではプロセスがいちばん重要なものになっている。
アジャイル開発は、このやり方に疑問を持った。たとえプロセスがしっかり定義されていても、優秀な人たちがよい関係で仕事をしないとうまくいかないのだ。デドワーズ・デミング氏も「悪いプロセスはいつでも優秀な人を損ねてしまう」と言っている。
アジャイル開発では、まず優秀な人をさがし、チームとして協力できるかを見極め、そのうえで彼ら自身でやりやすい環境やプロセスを作ってもらう。プロセスありきから、人ありきになるのだ。
これはどのような結果になるのかというと、押し付けられていない、自分で選択しているというチームメンバーの考えが生まれ、もっとプロセスを良くしようとしてプロセスが進化する。そしてもっと改善するにはどうすればいいかと、改善に熱意を燃やすことになるのだ。
アジャイル開発は「Adaptive Planning」「People First」なのだ。
ここまでが1つ目の話だ。(後編に続きます)
続きは「マーチン・ファウラー氏が語る、21世紀のソフトウェアデザインとしてのアジャイル開発(後編)。Agile Conference tokyo 2011」へ。
あわせて読みたい
マーチン・ファウラー氏が語る、21世紀のソフトウェアデザインとしてのアジャイル開発(後編)。Agile Conference tokyo 2011
≪前の記事
何が起きている? インテルがFulcrumを買収、デルがForce10を買収、オラクルがKspliceを買収