「何をやったらアジャイルなのか?」という疑問。アジャイル開発に興味をもち、勉強したり実践を始めたりしたら、一度は突き当たる疑問の一つだと思います。

昨日、参加したアジャイルの勉強会で出た疑問の意見です。

ペアプロすればAgile?朝会すれば?TDDすれば?・・・まさかそんなことはないでしょう。ただプラクティスに従うよりも大事なことがあるはずです。

その勉強会では、「ビジネスとしての価値に判断をすること」や「お客様との距離を縮めること・一致団結すること」といった意見が出ました。確かに、それはAgileを実践した場合の効果かもしれません。

私も同じような悩みをもったこともありました。これまでの私自身のスタンスで言えば、実はあまり言葉の定義は興味なくて、顧客も従業員も満足して利益が出ているのであれば、アジャイルと呼ぼうが何と呼ぼうが構わないのではないか、と考えています。ただ、それではあんまりなので、改めて考えてみたところ、今は「アジャイルソフトウェア開発宣言」に帰着する、というのが私の答えになっています。

http://agilemanifesto.org/iso/ja/

つまり「個人と対話」「動くソフトウェア」「顧客との協調」「変化への対応」に価値の重きをおくということ。

「プロセスやツール」「包括的なドキュメント」「契約交渉」「計画に従うこと」を認めるとは言ってますが、どちらを重視するかといえば、先ほどの4つです。

「何をやったらアジャイルなのか?」と、色々な人に聞かれますが、最近は「アジャイルソフトウェア開発宣言」を読み返して下さい、と答えます。

あえて言うならば、TDDをしようが朝会をしようがペアプロしようが、「動くソフトウェア」をいつまでも作らずに「包括的なドキュメント」を作り続けているようではアジャイルソフトウェア開発とは言えないと思っています。ふりかえりをしようがタイムボックスを切ろうが、「変化への対応」をしないのであれば、アジャイルソフトウェア開発とは言えないのです。

逆に、ペアプロも朝会もしていなくても、「変化に対応」するため「個人と対話」し「動くソフトウェア」を作り続けて「顧客と協調」できているのであれば、アジャイルソフトウェア開発と言ってもいいのではないでしょうか。必ずしもプラクティスに従わなければならない訳ではないはずです。

パッケージの開発や、SaaSの開発・運用、組み込みソフトウェアなど、分野やビジネスは多種多様です。どういったビジネスやコンテキストで開発をするのかによって、プラクティスは変わってきて当然です。

とはいえ、いきなり自分たちのビジネスにあわせた方法を見つけるのは難しいし、時間もかかるでしょう。そういった場合に、すでにあるプラクティスから入るというのは良い導入方法と言えるでしょう。

つまり「守破離」ですね。原則や価値までを理解しきれずとも、まずはみようみまねでも型通りのプラクティスでもやってみることで、本質の理解のきっかけを得ることができるかもしれません。

まずプラクティスを守り、自分たちのビジネスとのギャップを感じたら、そこから変えて行く。そしていつかは自分たちなりの方法論を身につけることができるはずです。

なので、よくあるアジャイルへの取り組みで違和感を感じるのは、まず自分たちの今までの開発の仕方を変えずにそれをベースにアジャイルのプラクティスを取り入れようとしている現場です。

「個人と対話」「動くソフトウェア」「顧客との協調」「変化への対応」これらが重要な価値であると意識を変えようとせずに、ただプラクティスを取り入れたところで、アジャイルソフトウェア開発が目指すところに辿り着くことはないのではないかと思うのです。

でも、本当に大事なのは、ビジネスや体制、規模、ゴールなどといった文脈にあわせた開発の価値を選ぶことが重要なんだと、私は思っています。検収・納品型のビジネスにおいては、製造業を模倣した品質管理やエンジニアリングが重要であり、それは「アジャイルソフトウェア開発宣言」の価値観とはずれているように思います。だとすれば、その文脈に沿った開発をすべきで、実践したい方法論のために契約の仕方を見直すとかおかしな話です。この辺りは、別途エントリします。

ただ、昨日の勉強会で印象的だった意見が「ウォーターフォールの中でもできることは沢山ある。アジャイルの時代が来たときのために、今から練習しとこう」という言葉でした。私にとっては目から鱗でした。私は業界のビジネスモデルを変えていくことで、「アジャイルソフトウェア開発宣言」にあるような価値観を広めていくことを、自分の使命に思っていました。なので、ウォーターフォールの中でアジャイルのプラクティスを実践するのはナンセンスだと考えていたのです。・・・ですが、そのビジネス層で戦うのではなく、現場リーダーを任されている方の言葉で、チームを率いているその方の、その戦略はとても良い戦略なのではないかと、感動したのでした。

改めて、そうした「アジャイルソフトウェア開発宣言」を目指し頑張っている現場リーダーの方々が、本当に素直にアジャイル開発ができる時代を作りたい、そのためのビジネスモデルの確立と普及を目指したいと、決意を新たにしました。

Agile Japan 2011では、そうした実践としてのアジャイルを語り合う場にしたいと思っています。
http://www.agilejapan.org/