ObjectSquare [2010 年 2 月号]

[技術講座]


「アジャイルは単に廃れつつある流行語なのか?」
セミナー報告

( 株 ) オージス総研 藤井拓

2009 年 12 月 12 日に東京でアジャイルプロセス協議会主催、12 月 14 日に大阪でソフトウェア技術者ネットワーク ( S-open ) 主催で開催したフィリップ・クルーシュテン博士の「アジャイルは単に廃れつつある流行語なのか ? 」セミナーの概要を報告します。なお、本報告では実際の講演で説明が省かれた部分を補ったり、訳語を変更しました。そのため、講演内容そのままではない点をご理解頂くようにお願致します。




クルーシュテン博士の紹介

クルーシュテン博士は、統一プロセスのアーキテクチャ表現である4+1ビューの提案者やラショナル統一プロセスの元開発責任者として著名な人です。現在は、カナダのブリティシュコロンビア大の教授として教鞭をとる傍ら、ご自身で経営する KESL ( Kruchten Engineering Service Ltd. )という会社でコンサルティングも提供しています。専門分野はソフトウェアアーキテクチャとアジャイル開発を含む開発プロセスであり、Agile Vancouver というコミュニティの創始者でもあります。



アジャイルさとは

アジャイルは、「アジャイル対ウォーターフォール」、「アジャイル対規律」、「アジャイル対アーキテクチャ」などの対立軸で語られることが多い。しかし、そのような考え方は間違っている。「予期(=計画)する」という立場と「適合する(=成り行きに合わせる)」という立場のどちらかしかないと考えるのは間違いである。結局、ビジネスや開発に関する不確実性がどの程度あるかに応じて、「予期」と「適合」の中間で立ち位置がいろいろあると考えた方がよいであろう。

図 1 間違った 2 元論
図 1 間違った 2 元論

アジャイルさとは、ジム・ハイスミス氏が定義するように「変化する周囲の状況に対して、変化を生みだしたり、変化に適合することで対処していく」ということなのである。これは単に開発だけのことではない。今の世の中で組織は多かれ少なかれアジャイルであることが求められているのであり、「アジャイルではない」ことを望む組織は少ないだろう。

アジャイル開発のスイートスポット

アジャイル開発は以下の4つの特徴を持つものと考えられる。

アジャイル開発については XP、スクラム、リーンなどいろいろな手法があるが、それらの手法をそのまま使えば開発がうまくいくというものではない。まず、異なるアジャイル手法は異なるレベルの問題に対処するものである。従って、これらの異なるアジャイル開発手法を組み合わせることできる

アジャイル開発が成功する状況には、以下のような特徴がある。

これらの条件をアジャイル開発のスイートスポット(ストライクゾーン)と呼ぶ。プロジェクトによっては、これらのスイートスポットから外れるものもある。私自身が経験したものとしては、以下のようなものがある。

このような状況で、アジャイル開発を本に書いてある通りにまじめに実行しようとしてもうまくいかず、「アジャイル開発は使い物にならない」という結論に行きつくことが多い。

アジャイル開発については、ハイプカーブのピークをなす過度な期待が集まる時期は過ぎつつある。現実に気付くとともに熱は冷めてくるだろう。しかし、その先で真の有効性が理解され、アジャイル開発は当たり前のものとして根付くだろう。

それではどうすべきか

一言でいうと、自分が置かれた状況(コンテキスト)に合った開発プラクティスを選ぶということだ。自分を取り巻く状況については、以下の 2 つのレベルを考えた方がよいだろう。

環境条件は、以下の 5 つの軸で考えることができる。

状況属性は、以下の 8 つの軸で捉えることができる。

これらの状況属性は、互いに独立ではなく、相互に影響する。そのような関係を、各状況属性について以下のように整理することができる。

例えば、「統制」という状況属性についてこれらの 3 点を記したものが図 2 である。

図 2 統制
図 2 統制

「統制」は、別の言い方をすれば「経営陣」、「管理職」、「顧客」などプロジェクトの成功/失敗の責任を最終的に負う(影響を受ける)人がプロジェクトを失敗させないために行う制御ということである。どのような制御が組織全体になされるか(=環境条件)は、会社の文化や組織の成熟度によって決まる。次に、プロジェクト自身の個別状況(=状況属性)によって「統制」の強さややり方を変えるべきだが、そのような個別の状況を決めるものとしてはビジネスモデル、規模、分散度がある。さらに、必要とする「統制」の強さややり方を考慮して取捨選択や調整をすべきプラクティスとしては、計画立案、適応性、ドキュメント作成、リスク管理があるということである。

なお、講演の配布資料には、他の状況属性についても環境条件、他の状況属性、プラクティスとどのように結びつくかが示されている。興味がある人は、ぜひご参照ください。

結論

結論として、アジャイル開発の教科書通りのプラクティスがうまく適用できるスイートスポットの状況属性は図 3 のようになる。(青字の部分がスイートスポット)

図 3 アジャイル開発のスイートスポット
図 3 アジャイル開発のスイートスポット
図 4 プラクティスの取捨選択
図 4 プラクティスの取捨選択
図 5 ポストアジャイル主義
図 5 ポストアジャイル主義

逆に、このスイートスポットを外れた場合には、図 4 で示すように環境条件と状況属性に応じてアジャイル開発手法のプラクティスを取捨選択する必要があることになる。

アジャイルさは、「環境の変化率よりも速くそれらの変化に対応し、適応する組織の能力」である。そうなるためには、アジャイル開発のプラクティスもアジャイル宣言も役立つだろうがそれらを絶対視しない方がよい。「状況に合わせたアジャイルさ」が求められるのだ。「アジャイル開発」がもたらした良い点と悪い点を総括し、そこから先に進むというのが「ポストアジャイル主義」の立場だ(図 5 )。今後、アジャイルさがさらに一般化するとともに「アジャイルさ」という概念はオブジェクト指向と同様に常識になり、特別なものではなくなるだろう。


筆者の所感

このセミナーは、今後アジャイル開発が日本で普及するために大きな2つのアドバイスを提供したのではないかと思う。

このセミナーが与えた第1のアドバイスは「アジャイルになりたいという共通の目標があれば、組織の風土の違いを乗り越えてアジャイルになれるだろう。その際に、自らが置かれた環境と状況をよく考えてアジャイル開発を取り入れるのが現実的だ」ということである。筆者は、「アジャイル開発が普及するためには、組織において『ビジネス上の結果を重視し、個人を信じ、新しいものに失敗を恐れず挑む』という風土が必要であり、それは日本の現状ではあまり一般的に期待できるものではないかもしれない」と考えていた。しかし、日本の現状をそう悲観しなくてもよいのかもしれない。

このセミナーが与えた第2のアドバイスは、「アジャイルは、統制とのバランスを取りながら普及するだろう」ということである。筆者は、アジャイル開発を行う際に「顧客と開発者」の間の信頼関係は必須だと考えている。しかし、同時にその信頼関係を「なれ合い」や「ごまかし」にしないためにも「顧客と開発者」の間に「けじめ」や「説明責任」も必要ではないかと考えている。「統制」とは「アジャイル」と対立する概念だという印象を受けるが必ずしもそうではない。例えば、サッカーチームを考えてみよう。プレイヤー個人の自律性や創造性があれば、創造的なチームで型にはまらないプレイができるかもしれない。でも、プレイヤー個人の自律性や創造性だけでは勝てないこともよくある。その場合、戦略や戦術を変更したり、プレイヤーを交代する指示が監督から出るが、これを「統制」の1つの形と考えれば良いと思う。「統制」があると必ず「アジャイル」でなくなるわけではない。「統制」と「アジャイル」のバランスを取ることが大事なのである。

謝辞と本セミナービデオ

本講演の開催にあたり、ご尽力下さったアジャイルプロセス協議会の皆様とS-openの皆様にこの場を借りて感謝致します。さらに、本講演会の支援をして下さったAgile Allianceの方々にも感謝致します。

なお、本セミナーの12月14日の開催分を収録したビデオデータをクルーシュテン博士の許可の下https://dl.dropbox.com/u/278380/DrKruchten/AgilityDrKruchten14Dec2009.wmv に置きました。講演時間は 1 時間 40 分で逐次通訳ありです。以下の参考文献に、PDF形式の講演資料へのリンクがあります。ご興味がある方はご覧ください。

また、今回報告したセミナー以外に 12 月 11 日に開催されたUMPT主催のセミナー、ワークショップでクルーシュテン博士は「ソフトウェアアーキテクチャに関する知識の作成と管理」について講演されたり、モデリングについて議論しました。これらの講演のレポートや議論の内容は、以下のページで公開されています。


参考文献



© 2010 OGIS-RI Co., Ltd.
HOME HOME TOP オブジェクトの広場 TOP