アジャイル開発のコード中心主義に待ったをかける男

2003/2/21

スティーブ・メラー(Stephen Mellor)氏

 翔泳社主催の「Developers Summit 2003」が2月20日、21日の2日間にわたって青山ダイアモンドホールで行われている。「.NET」「UML/開発プロセス」「データベース」「ストレージ・バックアップ」「Java/EJB」「XML」など幅広い分野で展開されたさまざまなセッションに国内外のソフトウェア開発者が熱心に耳を傾けていた。

 最も活況だったのは「UML/開発プロセス」関連セッションだろう。中でもIEEE Software Industrial Advisory Boardのメンバであるスティーブ・メラー(Stephen Mellor)氏の講演「Maching ExecutableUML and Agile」は刺激的だった。アジャイル開発プロセスとモデリング中心の開発プロセスとのギャップを鋭く指摘しながら、両プロセス群の妥協点を見いだそうとする試みである。
 
 メラー氏によると、アジャイル開発プロセス陣営との最大の違いは「検証」という1語に集約されるという。つまり、「アジャイル側は、コードは実行(プログラムの実行)できるが、モデルは実行できない。実行できなければ検証ができない。ゆえに、モデルは不要でコーディングを重要視するのは当然」(メラー氏)という論理。しかし、メラー氏の見解はまったく異なり、「モデルも十分実行できるし、検証も可能」だとする。

 メラー氏が提唱するモデリング重視の開発プロセスの中心には、「ExecutableUML(実行可能なUML)」という考えがある。実際、OMGが策定するUMLのバージョン1.5は、Action Semanticsが定義されており、モデルからコードの自動生成が理論上可能な領域(実際的にも可能とされている)にまで到達している。

 とはいえ、アジャイル側の主張はあくまで「コード中心主義」に傾いているとメラー氏はやんわりと批判する。確かに「アジャイルソフトウェア開発宣言」を読むと、アジャイル陣営の論理は、1か0かを迫る果敢なものである。例えば「プロセスやツールよりも個人との対話を重視する」「大量のドキュメントよりも動作するソフトウェアの方が重要」「契約や取引よりも顧客との共同作業の方が重要」「計画に頑固にしがみつくよりも積極的な変更を受け入れるべきだ」などが挙げられる。

 メラー氏の懸念は「アジャイル陣営の論理はわかるが、設計図の重要性を無視するわけにはいかない」ということだ。複雑化、大規模化の傾向を示しつつある現代のシステム開発において、やはり開発の道筋を示す設計図は重要。そしてその設計図がすぐさまコードに変換でき、動作可能であるならば、モデリングの重要性はますます重要になるのではないか、という意見だ。そのうえで、アジャイル開発の利点をも取り込んでより効率的な開発を目指すことができると指摘する。

 講演の途中でメラー氏は、完全にモデルだけで動作するソフトウェアが存在することの証明として「agile Elevator」なるソフトウェアを紹介した。エレベータの動作を画面上で表現するアプリケーションソフトだが、動作は非常にスムーズだった。

(編集局 谷古宇浩司)

[関連リンク]
翔泳社

[関連記事]
「ソフト開発は発明とコミュニケーションの協調ゲーム」とコーバーン氏 (@ITNews)
組み込みソフトウェア開発の現場で何が起こっているのか (@ITNews)
良いユースケースを書くコツを伝授 (@ITNews)
アジャイルプロセス協議会発足、「ガイドライン策定を目指す」 (@ITNews)
ボトムアップの民主的なプログラミング手法、XP (@ITNews)
悪循環を断ち切る効率的なシステム開発を考える (@ITNews)

情報をお寄せください:



@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)