« データモデルパターンのリンク | トップページ | Moodle日本語版をWindowsで動作するにはfs_moodle »

2010/08/28

RUPから見たアジャイル開発のアーキテクチャ助走路

実践UML」などオブジェクト志向分析に関して優れた本を書かれている依田さんが、アーキテクチャ助走路に関する記事を書いていたのでメモ。

【元ネタ】
変貌するアジャイル開発: 「アジャイル開発の本質とスケールアップ」が届いた

※注意:現在は上記リンクはエラーになる。Googleキャッシュでは読める。

(前略)
 アジャイル開発と言えばその主要な特徴として、反復型・進化型の開発スタイルがある。一定の時間間隔に区切って、その中で、少しずつ機能を拡大・強化していくという考え方だ。
 玉川さんのお話が、私にとって納得のいく話だった理由として、私自身が、この10年間、システム開発を支援する仕事ではほとんど常に、この反復型で進化型の開発手法を取り入れてきたということがある。それらのシステムはすべて中規模以上のものであったし、また、システムのオーナーである私のクライアントは、その恩恵にあずかることができた。そのため、アジャイル開発を大型のシステム開発に適用するという考え方は私にとって全く違和感がない。
 10年も前からそんなことができたのには、一つラッキーな理由がある。それは、私が、1998年にApplying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (邦題:実践UML 第3版 オブジェクト指向分析設計と反復型開発入門)第1版の翻訳に関わることができたからだ。
 この本には、オブジェクト指向分析設計のことだけではなく、 UP(Unified Process:統一プロセス)をベースとする反復型、進化型の進め方がサンプルプロジェクトとともに懇切丁寧に説明されている。そのため、翻訳者の一人として、熟読せざるを得なかった私には、しっかりと反復型・進化型の進め方がインプットされた。
 では、10年間、私は自分がアジャイル開発をやっているという自覚があったかというと、そんなことはなかった。
なぜなら、アジャイル開発の何たるかを調べれば、ほとんど必ず、XPやスクラムなど、具体的なプロセスにおける開発現場のプラクティスが説明されている。しかし、私の関わったプロジェクトにおいて私はほとんど必ず発注者側・ユーザー側の立場にいたため、現場でTDD(テスト駆動開発)やペアプログラミングが行われたかどうか、私は知らないのだ。もちろん、私のクライアントであったユーザー企業も、開発を委託した企業の中で何が行われていたか詳細には知らなかっただろう。しかし、私は、クライアントに対し、反復型・進化型の進め方を推奨し、すでに述べたようにクライアントは、確実に、その恩恵にあずかることができたのだ。この恩恵の部分に関しては、また別のブログに書いてみたい。
 そんなわけで私は、反復型・進化型の有効性に対して確たる自信を持ちながら、それをアジャイル開発として説明してはこなかった。自分の経験について「アジャイル」という言葉を使って良いのか、自信がなかったのだ。
そんな中でイベントに参加したのだが、今回は講演の他にも、スクラムのワークショップを経験することができた。アジャイルの一番アジャイルらしい部分に参加することもできて、私にとってかなりお得であった。
 結局、私は、「必ずしもアジャイルらしいプラクティスを含まない、反復型・進化型を主要な特性とするプロジェクトの進め方、そして、アジャイルらしい現場のプラクティス、また、これらがブレンドされたアプローチ、すべてアジャイルと言って良い」という合意があることを理解することができた。スケールアップの話から、ワークショップまで、一つのイベントに包含されていたから、この理解を得ることができた。もし、これらを別々の機会に聞き、また経験していたら、私は以前として自分の経験をアジャイル開発として語ることにためらいを感じていたと思う。マイクロソフトさんと関係者の皆さんに感謝である。
(後略)

アジャイル開発ではアーキテクチャの作り込みに弱点があるという指摘は従来から言われ続けてきた。
ある程度までシステムを作った後に、アーキテクチャそのものを大きく変えたり、後戻りするのは大変というリスクがあるからだ。
特に大規模開発になるほど、後工程でのアーキテクチャの変更は、プロジェクトの命運を文字通り傾けてしまう。

しかし、実際の開発ではアーキテクチャも成長していく。
最初から正しい設計ができるわけではなく、試行錯誤しながらアーキテクチャも変わっていく。
反復型開発という発想で、アーキテクチャの作り込みとその修正をアジャイル開発の中に入れ込むことができる。

余談だが、依田さんが翻訳された「実践UML」は、数々のOOAの著書の中でも一級品に当たると思う。
僕は2002年頃、第1版を無性に読みまくっていたが、2010年現在でも第3版まで販売され続けている。
実践UML」は700頁まで膨れ上がった分厚い本になってしまったが、OOAをマスターしたい人はまず読んでみたらいいと思う。

|

« データモデルパターンのリンク | トップページ | Moodle日本語版をWindowsで動作するにはfs_moodle »

モデリング」カテゴリの記事

Agile」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: RUPから見たアジャイル開発のアーキテクチャ助走路:

« データモデルパターンのリンク | トップページ | Moodle日本語版をWindowsで動作するにはfs_moodle »