アジャイル開発の顧客説得への一考察

 あらゆる産業において、市場の競争が激しくなっており、企業は、ダイナミックで複雑かつ厳しいビジネス環境に直面している。これに対処するために企業は、戦略、政策、組織構造を、変化するビジネス環境に継続的に適応させて、市場ニーズに俊敏に対応していくビジネスモデルを構築していく必要がある。今や新しいビジネスモデルを実践するためにそのビジネスプロセスをサポートする情報システム基盤の開発は必要不可欠になっており、市場の変化に迅速に対応していくために、そのソフトウェア開発を迅速に行う能力がますます重要となっている。そのため米国では、アジャイル開発がソフトウェア開発の本流になりつつある。一方、日本でも、アジャイル開発に対して期待は高まりつつあるが、米国と比べるとまだまだ未成熟の状況である(1)のは何故だろうか。

 その主な原因しては、顧客のソフトウェア開発に対する考え方が、「@顧客がすべての要求を完全に掴んでいる、あるいは、前もって把握している。A変更は小さく、管理できる。Bシステムの統合はうまくいく。C事前に見積もりに時間をかけて行えば、スケジュール通りに提供される。」を前提にしたものであり(2)、開発側との関係を次のように考えているからである。しかし問題が発生している。
1)事前にしっかりと計画をたてて、開発側にまる投げし、後は決められた手順に従ってフェーズフェーズで詳細プロジェクト進捗ドキュメントをチェックすれば計画通りに完成するはずである。また、詳細な仕様書を渡しており変更はあまり生じない。しかし、詳細な計画に従って管理しても、スケジュール遅れは多く発生する。また、最後の時点でしか出来上がったソフトウェアを確認できないので、完成したソフトウェアを見て意図した通りになっていなかったりして、変更が発生した場合の手戻りが大変である。
2)詳細に仕様を決めて文書化して開発側に渡すので、開発が開始されたら、要求仕様に対してそれほど開発側と対話する必要はない、まる投げでよい。しかし、開発側は、詳細文書だけでは不十分で、仕様の内容を誤解することが多々ある。
3)契約も顧客側にリスクが少ない一括受注契約が主流であり、変更が発生したら開発サイドのリスクでやるべきだと考えている。しかし、問題が生じた場合、契約交渉が発生し、この解決のために双方に余計な時間が費やされる。
4)システム開発の目的は事前に決めたプロジェクト目標(スコープ、品質、納期、コスト)を達成することである。しかし、目標を達成しても、ビジネス環境の変化等により出来上がったソフトウェアのビジネス価値がないことが最後にわかり、無駄になることがある。

 これらの問題に対する開発側からの対応策は次のようなものが考えられる。
1)開発する機能に優先順位をつけてもらい、要求事項をビジネス価値の高いものから順に、決められた反復期間内に動くソフトウェアとして漸進的に開発して、適宜顧客に確認をもらう。確認の都度、顧客にとって必要な、即ちビジネス価値のある変更には対応し、最終的に変更を取り込んだ動くソフトウェアをデリバリーする。
2)顧客側も必ずしも最初から詳細仕様は明確ではない場合が多くあるし、文書だけのコミュニケーションでは開発側も内容を誤解する危険があるため、顧客との対話と協調を重視し、開発側が顧客の意図とした仕様を正確に理解して開発ができるようにする。そうすることにより、この動くソフトウェアが双方の対話と協調の重要な架け橋となりうる。
3)契約交渉によるリスクヘッジより、顧客と協調した開発体制確立を推進する。契約の中に変更に関する条項を入れ、両者がWin-Winの関係になるような契約体系を協議して決める。
これらの対応策は、「プロセスや手法よりは個人との対話を重視する、包括的なドキュメントよりは動くソフトウェアを重視する、契約交渉よりは顧客との協調を重視する、計画に従うことよりは変更への対応を重視する。」にマニフェスト(3)として価値をおいているアジャイル開発によるソフトウェア開発の導入の根拠といえる。

 アジャイル開発は、顧客との協調が必須であり、顧客にアジャイル開発のメリットを理解してもらえなければ、一方的に開発側がアジャイル開発を導入してもうまくいかない。しかし、アジャイル開発は、従来の方法と全く異なるので、いくらアジャイル開発の良さを強調しても、これまでのやり方を変えることに対する顧客の抵抗感が発生する可能性が高い。そこで開発側として、顧客のビジネス価値を迅速に実現するソフトウェア開発に関して、顧客にアジャイル開発手法のメリットをいかに実感してもらうかが重要である。
 そのために、開発側として顧客に対する次のような顧客説得アプローチを考察した。
@アジャイル開発における顧客のメリットを充分説明し理解を得る。
A4つのアジャイルマニフェスト(3)と12の原則(4)を理解してもらう。
Bアジャイル開発導入適用性調査と適切な導入方法について提案する。
企業理念、企業文化、変化に対する抵抗感、現状のソフトウェア開発の問題点(プロセス、人、ツール)、開発要員のスキル、契約体系など現状分析をして、アジャイル開発導入の下地を調査し、アジャイル開発導入適用性の評価と最適な導入方法を提案する。
Cアジャイル開発に適した案件(要求事項が曖昧、不確定、リスクが多い)を抽出し、パイロットプロジェクトとして提案する。
Dアジャイル開発に関係する要員教育
 ・アジャイル開発方法論
 ・アジャイルプロジェクトマネジャーのリーダーシップ
Eパイロットラン
Fパイロットの振り返り評価
 このようにして、まずはアジャイル開発に適したプロジェクトを対象にして、顧客とのアジャイル開発に関する相互理解の場を作り、新しい取り組みへの積極的なチャレンジ意欲を盛り上げつつ、顧客と一体になったアジャイル開発実施の決断が肝要であると考える。小規模プロジェクトから始め、経験と実績を積み重ねることにより対象の範囲を広げていくことが成功への近道と言える。

 最後に先日の「なでしこジャパン」のワールドカップ優勝の快挙はまだ記憶に新しいところである。欧米選手に比べ体力的に劣る日本選手が、技術とチームワークによりライバルを撃退して栄光を勝ち得たポイントとして、帰国後の優勝記者会見で主将の沢選手は「試合で課題が見つかれば自主的に選手同士で話し合い課題を解決していった団結力が優勝の秘訣」と語っていた。これはまさしくアジャイル開発チームに求められる自律性の高い自己組織的チームそのもの姿でありアジャイルプロジェクトのリーダーシップのあり方を考える上でも大いに触発される指摘であった。
                                                                              以上
参考資料
(1) 非ウォーターフォール型開発WG活動報告書、情報処理推進機構、2011年3月
(2) アジャイル開発の本質とスケールアップ、ディーン・レフィングウェル、翔泳社
(3)http://www.agilemanifesto.org
(4) http://agilemanifesto.org/principles.html




                         HOMEへ