アジャイルモデリング(AM)
公式サイト

AMについて

www.agilemodeling.comについて 

by Scott W. Ambler, Copyright 2001-2002

第一に、このサイトの目的はアジャイルモデリング(AM)方法論を開発し、推進することです。私の経験をみなさんと共有するだけでなく、みなさんの経験からも学び、ソフトウェアモデリングに対するこのアプローチについて議論し、育てたいと思っています。私のねらいは、このサイト上で展開した材料をもとにAMに関する本(「Agile Modeling」)を書くことです。貢献してくれた方の名前はすべて謝辞に含めるつもりです。私のこれまでの著作に関わってくれた人に連絡してみてください(彼らの多くにはメーリングリストに参加してくれるよう、すでに声をかけてあります)。

まず自己紹介をします。1980年代半ばからソフトウェア開発を、1990年代半ばからソフトウェア開発に関する著述を始めました。Ronin Internationalのコンサルタントとして、組織のソフトウェア開発方法の改善、あるいはモデリングの仕方に焦点を絞ってきました。その間、次のような鋭い質問を受け、それに答えようとしてきました。

  • ソフトウェアを効果的に開発するにはどのようにすればよいか。
  • どのようにソフトウェアをモデリングすればよいか。
  • ソフトウェアのモデリング時にはどのような種類の成果物を開発すればよいか。
  • 成果物をどのように組み合わせればよいか。
  • どのようなモデリングのプラクティスを行うとうまくいくか。
  • どのようなモデリングのプラクティスを行うとあまりうまくいかないか。
私が得るに至ったこれらの問いに対する答えを共有するために、私はソフトウェアプロセスに関する一連の書籍を記述・共同編集しはじめました。1995年には、私独自のオブジェクトモデリング表記法と、独自のアジャイル(機敏)なソフトウェアプロセス(ピンボールプロセス)をThe Object Primer第1版で紹介しました。1997年に統一モデリング言語(UML)が登場すると、私はいち早くそれを2冊目の書籍Building Object Applications That Workに採用し、現実の開発で用いるためにどう拡張すればよいかを示しました。実際のビジネスアプリケーションソフトウェアを開発した経験から、UMLがとても完全とは言えないもので、それを使って成功するには広範囲のモデリング手法が必要であることが分かりました。しかしこれは、オブジェクト指向の理論家が気付いていないか単に聞きたがっていなかったことであり、実際に完全な解決策を提供できていなかった(私の推測ですが、そのためUMLが同じように完全でない─今でも明らかに不完全ですが─ことを喜んでいた)モデリングツールベンダーも当然同じでした。

私がより大きなソフトウェア開発の図を考えはじめたのは、そのすぐ後のことです。私はひどい失敗に終わった大規模プロジェクトに参加しており、オブジェクト指向ソフトウェアプロセス(OOSP)という重量級のきっちりと定められたソフトウェアプロセスを、自著Process Patterns(1998)およびMore Process Patterns(1999)で提案しました。その頃、Rational Corporationではソフトウェア開発用のラショナル統一プロセスをまとめていて、それがUMLと同様、業界を席巻することは明らかでした。その結果、Rationalという市場の巨人を相手に争うことはできそうにないため、統一プロセスが現実のソフトウェア開発のニーズを満たせるよう(できればUMLが不完全であるために発生する問題を避けながら)補助する方法を探すべきだという判断をせざるを得なくなりました。私は、主に自分のOOSPと、OPEN Processやその他主要な技法をベースに、統一プロセスの拡張を記述することにしました。その結果、Larry Constantineと共同編集したCMPの統一プロセスシリーズ、The Unified Process Inception PhaseThe Unified Process Elaboration PhaseThe Unified Process Construction Phase、および「The Unified Process Transition and Production Phases」(近刊)が出来上がったのです。

私が重量級ソフトウェアプロセスについてこれらの仕事をしていた間、Kent Beckらはエクストリーム・プログラミング(XP)に取り組んでいました。XPは最初、プロセスおよび組織パターンの集合として紹介され、その後、一連の書籍が出版されました。私は「The Object Primer」および「Building Object Applications That Work」で記述した一連の原則やプラクティスと同じでありながら、ずっと進化したものをそこに認め、あっという間にXPに魅せられました。作業環境の性質によって、XPのようなアジャイルなプロセスが最善の方法のこともあれば、統一プロセスのようなきっちりと定められた方法が向いていることもあるということが明らかになりました。これが動機となって、私は自分の原点に戻り、ソフトウェア開発に対するアプローチを再検討して、モデリングを向上させるプラクティスおよび原則に反映させました。私は、ソフトウェア開発者に必要だと思われる基礎的なモデリング手法の入門書「The Object Primer」を書き直し、オブジェクト指向およびコンポーネントベースのソフトウェアを開発するための、要求、分析、設計に関するモデリング手法を記述しました。この本では、基本的なモデリング手法、変更案、ユーザインターフェースモデリング、UMLの技法、および、データモデリングなどの構造的/手続き的技法を扱っています。先に述べたように、私の経験上、UMLは「モデリング手法の道具箱」に最初に揃えるにはよいツールですが、現実の開発にはそれだけでは不十分です。また、設計をどのようにコードに変換するか(Javaを使っています)や、テスト、検証についても示しています。

「The Object Primer」が出版される頃、モデリング手法の書籍が、よい出発点ではあっても、解決策全体の一部でしかないことに私は気付きました。また、「The Object Primer 2nd Edition」で説明したさまざまなモデリング手法を適用するときの、原則やプラクティスを探究する必要性も感じました。そのため、エクストリーム・モデリング(XM)(現在のアジャイルモデリング─名前の変更についてはこちらを参照)の概念についての研究を始めました。これはSoftware Developmentの連載コラムとして始まり、現在のこのサイトを経て、最終的には近刊予定の書籍「Agile Modeling」(John Wiley & Sons)となる予定です。