アジャイルの押し付け
http://martinfowler.com/bliki/AgileImposition.html
アジャイルアライアンスのボードメンバによると、アジャイル方法論は「キャズムを超えた」そうだ。 つまり、より多くの人に知れ渡ったということだろう。 これはアジャイルの利点だが、同時に問題も起きている。 方法論や設計手法が単なる流行になってしまったために、流行にのみ注目して、使用したり、教えたりする人が多い。 また、アジャイル設立者の原則とは正反対のことをして、アジャイルの名を汚しているという報告もある。
Webを巡回していると、ある開発チームが上層部からアジャイル方法論を押しつけられているというコメントを見つけた。 チームにプロセスを押しつけるというのは、アジャイルソフトウェアの原則に完全に反しているし、そもそもアジャイルですらない★。
私にとって、アジャイル方法論とはピープル指向なものだ。 「人」を認識し、いかに一緒に働くかに気づくことが、 ソフトウェア開発においてもっとも重要な要因である。 プロセスは二の次だ。 これはアジャイルマニフェストの第一項「プロセスやツールより個人と相互作用を重視します」を反映したものであり、アジャイルマニフェストの2つの原則により補足されている。
- モチベーションのある個人の周りにプロジェクトを構築する。必要な環境、サポートを与え、彼らが仕事を成し遂げることを信頼する。
- ベストなアーキテクチャ、要求、設計は、自己組織型のチームから生まれる。
この価値と原則によりもたらされる結論は、 チームは自らのプロセス——携わっている人、コンテクストに合ったプロセス——を選択しなければならないということである。 アジャイルプロセスを外部から押しつけることは、 アジャイルの心臓部とも言うべき「自発的決定」をチームから奪ってしまうことだ。
この考えを推し進めると、もうひとつのアジャイルマニフェストの原則につながる。 「定期インターバルでは、どうすればより効率的にできるかをチームで考える。やり方をチューニングして、適応させるようにする」という原則だ。 チームはただプロセスを選択すればよいのではなく、そのプロセスを進化させていかなければならない。
プロセスをチームにフィットさせる(その逆ではない)という考えは、アジャイル方法論の必要条件である。しかし、十分条件ではない。 たとえば、ウォーターフォールのような、アジャイルプロセスではないプロセスを選択するチームもあるだろう。 その場合、リンゴ味のイチゴがリンゴではないように、そのプロセスはアジャイルではない。 ただし、アジャイル方法論はすべての状況においてベストというわけではない。 個人的には、大好きなアジャイルプラクティスを押しつけられるくらいなら、アジャイルではないプロセスを選択したほうがマシだと思っている。
アジャイルの押しつけは危険信号だと明言しておこう。 ただし、いつもそうだが、これがすべてのことに当てはまるとも限らない。 一見、似たような状況であっても、実際はまったく違うということもある。
たとえば、学習がそうだ。 アジャイルを導入するときは通常、多くの新しいことを一度に学習することになる。 中には直感では理解できないことも多い。 これは、部分的には、XPの真実である。 慣れるまでしばらくは、プロセスをチームに合わせることは難しい(この点については、数年前にXPを交えた記事を書いた(邦訳))。 チームはまだ守破離の「守」の段階で、コツをつかむまでは盲目的にプラクティスをこなす必要がある。 このような状況では、「教義主義」や「非柔軟性」も(一時的には)良い学習ツールとなっているのである。
もうひとつの状況は、ThoughtWorksでよく見られるクライアントとの共同プロジェクトチームである。 我々にはソフトウェアを納品する責任があるが、うまく引継ぎを行うためにクライアントと一緒に働く必要もある。そのため、クライアントは我々の仕事のやり方で仕事を行うことになる。 この状況では、我々はできるだけ効果的に仕事を成し遂げる必要があり、そのプロセスは我々に合わせたものとなる。 これはクライアントの環境に我々が合わせないということではない。 それは常に必要である。 しかし、クライアントの環境にうまく合わせることと、我々を成功に導くプラクティスを捨てることの線引きは難しい。
以上のような状況では、「押しつけ」はそれほど悪いことではないだろう。 ただし、基本的な点はそのままだ——アジャイル方法論の押しつけは、アジャイル方法論の根底にある価値、原則とコンフリクトするのである。
こういった類の問題は必然である。 私はオブジェクト指向とその他オブジェクトほげほげみたいなよく分からないものが流行したことをハッキリと覚えている。 新しいものが受け入れられる過渡期では、これはごく普通のことだ。 アジャイルではないものに「アジャイル」という名前がつくことを防ぐことはできない——厳密なアジャイルを取り締まる「アジャイル警察」はいないのだ。 我々にできることは、アジャイルが本当に意味することを説明できるよう、日々心がけることである。 「説得」ではなく「説明」しよう。