もがいてる

俺たちいつまでも歳を取るのを楽しみにしてようなって話してる

アジャイルは死んだ。しかしアジャリティは滅びんよ、何度でもよみがえるさ!

http://pragdave.me/blog/2014/03/04/time-to-kill-agile/

タイトルごめんなさい。

13年前、ユタのスノーバードに17人の中年白人男性が集められたが、私はそのうちの一人だった。私達はソフトウェア開発について共通する信条をシェアするためにそこに集まったのだが、自分たちが思っていることを書き記す方法があるんだろうか疑問に思っていた。
しかし、有用性の短いリストが出来上がるのには一日もかからなかった。私達はその有用性を、実例のリストと一緒に出版して「アジャイルソフトウェア開発宣言」と銘打った。


プロセスやツールより個人や興味
わかりやすいドキュメントより動くソフトウェア
契約の交渉より顧客との協力
計画に従うより変化に対応する


私は私達がやったこと、つまり私達はプロセスにも生み出した結果にも誇りを持っていた。また80年代や90年代に見られた無駄で、精神を破壊するような実例から、この宣言が開発エンジニアを救ったと思っている。
しかしスノーバードの会議ののち、私はアジャイルのイベントに一つも参加しなかったし[1]、アジャイル協会とも親しくしなかった。「アジャイル」のコンサルタントもしていないし、アジャイルの10周年記念にさえ参加していない。


なぜか。


これらの活動は私達の生み出した宣言の精神とは少しも一致しないからである。アジャイルカンファレンスの開催はバレエ競技会とさしてかわらない。それにこの4つの価値にまつわる産業界を形成するのは、生きる人々のために労働組合を作るのに等しく、そのことに私は毎度打ちのめされるのである。
しかも残念なことに、時が私の正しさを証明してくれた。「アジャイル」という言葉はある地点で事実上意味を失い腐敗してしまったのである。そしてそれ以降アジャイルコミュニティは、サービスや製品を食い物にするコンサルタントやベンダーのための広い活動の舞台になってしまったようだ。


アジャイル」を引退させる時が来たのである。


アジャイルが名詞として使われている場合、まぁたぶんこの言葉を追放したくなるだろう。これは単なる平易な間違いである。「アジャイル正しさをする」とか「バカのためのアジャイル」とかいうのは、英語に対する無数の攻撃のうちの二つである。この文章は意味不明だ。アジャイルは名詞ではなく、形容詞なのである。形容詞は他のものを修飾しなければならない。「アジャイル正しさをする」は「オレンジ色な正しさをする」と同じようなものだ。
しかし文法問題を脇に奥としても、まだより大きな問題が存在している。かつてあの宣言が一般に広まった時、アジャイルということばは人々をひきつけた。惹きつける点は様々だ。信奉だとかお金だとか、あるいは売れる製品のためだったりする。とにかくアジャイルはマーケティングの手へ渡り、エコとかナチュラルみたいにセールスを促進するための道具に成り下がってしまったのだった。このようにして乱用された言葉は無益になってしまう――そのもののもつ意味を失い、ブランドになってしまうのである。


これは沢山の人を傷つけるだろう。だが私ノ場合、開発者がダメージを受けることをとても心配する。コードを書くのは簡単ではないし、ソフトウェア開発者は往々にして、価値の拡散をより効果的にしてくれるものに対してアンテナを張っているものだ。私は有用性を守り、宣言通りにものごとを推し進めることで彼らの努力は報われると固く信じている。
しかし一度アジャイルという言葉が意味を失ってしまえば、ソフトウェア開発者はもはやそれを彼らの実業務における有用な道標として使うことができなくなってしまう。私達はもっと単純に、世界的にもアジャイルという言葉を消し去るべきである[2]。

Moving to the Right

もう一度4つの有用性を見てみよう



プロセスやツールより個人や興味
わかりやすいドキュメントより動くソフトウェア
契約の交渉より顧客との協力
そして計画に従うより変化に対応することを重要視する


左側のフレーズ(日本語の場合は右側)は理想を表している――右を選ぶか左を選ぶかは個人の自由だが、ソフトウェアを「アジャイルに」開発する人なら左側(日本語の場合は右)に賛成するはずだ。


さてあなたに「アジャイル」を始めさせたというコンサルタントやベンダーを考えてみよう。彼らは軸の左右、どちらにいるだろうか。私が予想するに、彼らが製品を提案するときに使う(コンサルタントはマネージャを喜ばせるためにドキュメントがたくさん必要だというものだ)ツールやプロセスは重く、かなりの確率でホワイトボードやメモ帳に内容を書く以上にきちんとした計画が求められる。
もしあなたのところでもそんな光景が見られるなら、それがなによりの証拠だ。「アジャイル」はすでに崩れ、価値を失っている。
(もちろん、コンサルタントの中には2日間のトレーニングコースを受講した人もいるかもしれない。私はそうではないので、つまり彼らはアジャイルをマスターしているが私はそうではない。そういう意味で私は間違っているのかもしれない)

Back to the Basics/基本にかえる

アジャイルの流行の中でなにをどうすべきかというのを下記に示した

なにをすべきか:

  • 自分のいる場所についてよく考える
  • ゴールに対して小さなステップを取る
  • 学んだことをベースとして理解を調整する
  • 繰り返す


どうやってすべきか:


ほぼ同じ価値を生み出せる手段が複数ある場合、将来的な変更ができるだけ少ないパスを選ぶ

そしてこれが本来の「アジャイル」なのだ。なにをすべきかの4項目とどうやってすべきかの1項目は、効果的なソフトウェア開発について知ることになるすべてを内包している。もちろんかなり大量の試行錯誤をせねばならないだろうし、なにをすべきかの4ステップはフラクタルな入れ子になっている。変数の命名から長期間に渡る安定版リリースまでに何度もこのネストの中を通らなければならないが、より大きく複雑なプログラムを組む人だけが、ものを売ることができるのである。


これらの文章の全ては義務である。すなわち我々は「なにをすべきか」「どうすべきか」を語るために動詞に基づいていなければならない。
そしてそれが私の提言に導いてくれる。
ことをなさない人々のためのアジャイルという言葉をすてさろう。
その代わりに我々がやるべきことを書いた言葉を使おう

Let’s develop with agility/「身軽」な開発をしよう

  • あなたはアジャイルプログラマではない。すばやくプログラムを書くプログラマだ。
  • あなたはアジャイルチームで働いているのではない。あなたのチームには機敏性があるのだ。
  • あなたはアジャイルの道具を使っているのではない。その道具があなたの機敏性を高めてくれるのだ。


何事に関しても「アジャイル」という言葉を付け加えるのは難しくない。でも機敏性を横取りするのは困難だ。
そして重要なのは、ラベルは売り買いできるということだ。短い講座に参加すれば突然あなたは職種にたいしてラベルをつけることができる。しかしあなたは経験を買うことはできない。ただ獲得することが出来るだけだ。

And let’s protect our investment/我々の投資を守ろう

究極的には我々がやることは我々が「それ」と呼ぶものに勝つことである。しかし良い言葉は私達のコミュニケーションを効率的にしてくれる。
我々はアジャイルという言葉を失ってしまった。機敏性にしがみつこう。その意味をあるままに維持しよう。そして我々のアイデアから魂を抜き取って売りつけようとする輩からそれを守るのだ。


Updated 3/11: Thanks to numerous folks who pointed out I’d mislabeled “agility” as an adverb. Also fixed the hyperlink to the Agile Manifesto.


※1. アジャイルインド2014(私がアジャイルに関してただ一回だけ参加したカンファレンスだ)に参加してから、このブログの記事を書こうと思うようになった。カンファレンスに参加したのはトピックに興味があったからではなく、尊敬するオーガナイザー、Naresh Jainが参加していたからだ。


※2 そう、そのとおりで、私は自分自身でしかけた罠にかかってしまったのだった。Ruby on Railsがやってきたとき、私はRubyが私に与えた機敏性に旨をうたれた。実にWebプロジェクト上でよく動いていると思う。だから私は「Railsを使ったアジャイルウェブ開発」を書いたのだ。今あの本を書いているとしたら、タイトルは多分全然違ったものになっていただろう。

Posted by Dave Thomas Mar 4th, 2014

うーん、こなれない。