プラクティスのCherry Pickingは善か悪か?
昨日、Agile Japan 2012が開催されました。私自身は今年は参加していなかったのですが、twitterなどで情報を追う限りでは今年も熱く有意義なイベントだったようです。それらを見ながら感じたことと今まで考えてきたことを合わせて、全体の文脈や空気を読まないまま、思いをまとめてみたいだらだらと書いてみたいと思います。
プラクティスのCherry Picking
"Cherry Picking"とは、Wikipediaからその説明を引用すると以下の通りです。
チェリー・ピッキング(英語:cherry picking)とは、数多くの事例の中から自らの論証に有利な事例のみをならべたてることで、普遍的な真理や政治的な妥当性を導こうとする論理上の誤謬、あるいは詭弁術。cherry-pickingの語義はサクランボの熟した果実を熟していないものから選別することであり、転じて「いい所取り」「(特売品専門の)購買者」「つまみ食い」の意味で使用される。
チェリー・ピッキング - Wikipedia
この通り、"Cherry Picking"にはネガティブな意味がつきまとっており、アジャイル開発の文脈においても「個別プラクティスのつまみ食い的な採用」として悪い意味で用いられます。実際、前職で組織へのScrumの導入・展開を進める上で、メンバーからよく聞かれた質問に次のようなものがあります。
この資料には、「Scrumを導入するなら最初からフルセットでやるべきで、Cherry Pickingはダメ」って書いてあるし、こっちの本には「できるプラクティスから順次導入していけばよい」って書いてある。どっちやねん?
現実にはどうか?
実際にアジャイル開発で成果を出している現場ではどうなのでしょう?
例えば、昨日のAgile Japan 2012での"DEEP AGILE PEOPLE"というセッションで解説をされた森崎修司氏はそこでの議論を受けて以下のような所感を述べられています。
#aj12 80分の3氏の発言でメモをA4 15枚くらいとった。わかったことは、3氏ともフレームワークやプラクティスといった形にはこだわっておらず、コンテキストに応じて臨機応変に進められていること。私も本質と思っていることを発言されたこと。
— Shuji Morisakiさん (@smorisaki) 3月 16, 2012
#aj12 書籍や記事ではフレームワークやプラクティスに目が向いてしまうが、実際にはそれらに開発を合わせてコントロールするのではなく、コンテキストに合わせたり、相手に合わせたりして一体となってあるべき方向に導いていることがわかった。これは3氏の共通点
— Shuji Morisakiさん (@smorisaki) 3月 16, 2012
ここでのキーは、「コンテキストに合わせたり、相手に合わせたり」と「一体となってあるべき方向に」でしょう。逆に言えば、成果を出している現場では、この2つのポイントをしっかり守った上で現場に合ったやり方をしているのであり、それは単に興味や取っ付きやすさなどに基づく「つまみ食い」としてのCherry Pickingではないということでしょう。
フレームワークとプラクティス
また、フレームワークとプラクティスについても、本当は分けて考えなければいけないとも思います。フレームワークとはまさに「枠組み」であり、本来はそれ全体として意味をなすものであり、一部を取り出してみたらもはやそれは「枠組み」としては崩れていることになります。一方で、プラクティスは(相互に依存するものもあるでしょうが)どちらかというと独立したものであり、個別に導入可能なもの、と私は理解しています。
そう考えると、プラクティスを取捨選択して現場のコンテキストに合わせて導入するというのは比較的やりやすいけれども、フレームワークを現実のコンテキストに合わせるというのは、それを総体としてテーラリングするということで、かなりの注意が必要な気がします。(フレームワークとしてのScrumの導入に関してよく言われる話はこのあたりと密接に関連しています。)
全体をイメージするためのミーム複合体としてのアジャイル
ここで思い出すのは1週間ほど前に、以下のエントリで書いたミームとミーム複合体の話です。
アジャイル開発へのミーム学的アプローチ - Always All Ways
ここでは、アジャイル導入・展開をする上では個別の要素の導入よりもミーム複合体としてのアジャイルのブランド(ScrumとかXPとかKanbanとか)として導入をする方が現場に伝わりやすいと述べる一方で、それ自体は必ずしもトップダウンでのビッグバン的導入を意味するものではないと述べています。
ここら辺の使い分けというか手綱捌きが、成果を出している現場の特徴であり。また最初に紹介したセッションでの登壇者の「達人」の皆様に共通する「強み」なのではないかという気がしています。
アジャイルも進化している
もう一つ意識しておかなければいけないのは、アジャイル・マニフェスト(Manifesto for Agile Software Development)から10年を経過し、アジャイル開発自体も日々進化しているということです。
ちょうど、昨日Bob Marshall氏が以下のような挑発的(?)なブログ・エントリを書いています。(一節だけを引用しますが、短いエントリですので是非全文を読まれることをおすすめします。)
"The young Turks meanwhile have uncovered deeper, more fundamental blockers to effective software (and product) development. And they continue to push the envelope with fresh insights and novel combinations of knowledge from other fields. And thus, new solutions, too."
Time For the Agile Old Guard to Retire « Think Different