Java開発者のための最先端テクノロジー・カンファレンス

リポート
2007年6月19日、東京都千代田区のベルサール神田において、Java開発者向けの技術セミナー「JavaWorld DAY 2007」が開催された。「Making new World!〜Javaと周辺技術の“融合”が創り出す新たな世界〜」というテーマの下に開催された今回のJavaWorld DAYでは、例年と同様、Java市場を牽引するベンダー各社によるセッションと、業界有識者による基調講演、およびテクニカル・セッション(JavaWorldセッション)が実施された。ベンダー各社のセッションについては本ページ下のリンク先にある個別記事をご覧いただくとして、ここでは基調講演とJavaWorldセッションの内容をリポートする。
2001年にスタートして以来、7度目の開催となるJavaWorld DAY。もともとはJavaWorld誌が主催して2001年にスタートした本セミナーだが、残念ながら同誌は昨年末をもって休刊を迎えた。しかし、「年に一度、Javaに関する情報を“ライブ”でキャッチアップすることのできる貴重な場をなくしてはならない」という業界の強い要請に応え、JavaWorld DAYは引き続き開催する運びとなった。
そうした中で開催されたJavaWorld DAY 2007のテーマは、「Making new World!〜Javaと周辺技術の“融合”が創り出す新たな世界〜」だ。今日、企業システム開発の中核技術としてJavaは不動の地位を獲得している。だが、もともと“オープン技術の本命”として登場したJavaは、それ単独で閉じた技術体系ではなく、他の有力技術との連携性の高さを売りにしてきた。動きの激しいITの世界で主流技術としての地位を保っていくうえで、今後はこの特徴がますます重要になるに違いない。1年先、3年先、さらには10年先のJava開発の動向を見据えようと開催されたJavaWorld DAY 2007では、この“周辺技術との融合/調和”というテーマの下、業界有識者がそれぞれにビジョンを提示した。

JavaWorld DAYの特徴の1つは、毎回、国内外の著名エンジニアを迎えて実施される基調講演だ。これまで、DI(Dependency Injection)コンテナ「Spring Framework」の開発者であるロッド・ジョンソン氏や、グーグルのオープンソース戦略の中心人物であるグレッグ・スタイン氏らを招いてきたJavaWorld DAYが、今年キーマンとして招聘したのは、“アジャイル開発の伝道師”として知られるスコット・アンブラー氏(米国IBM ラショナル・ソフトウェア アジャイル開発プラクティス・リーダー。写真1)である。
ITシステムに課せられる要求が複雑化/高度化している今日、顧客の要求に応じたシステムを実現するための俊敏性(アジリティ)をシステム開発に取り込もうというのが、アジャイル開発のコンセプトだ。しかし、実際には、まだこのコンセプトが十分に理解されておらず、誤ったかたちで実践されるケースが少なくない。そうした現状に警鐘を鳴らし、アジャイル開発の特性を真に生かした開発活動を促そうというのが、アンブラー氏の講演『アジャイル・ソフトウェア開発の現在――Javaによる迅速なアプリケーション開発に向けて、今、開発者が実践すべきこと』のねらいである。
壇上に立ったアンブラー氏は、初めに「アジャイル開発とは何か?」という問いを発し、「その正式な定義は存在しないが、『反復型で、暫時進化していく開発手法』と位置づけられる」と説明。この開発手法を採用する意義を次のように強調した。
「アジャイル開発とは、顧客の要求が常に変化するという前提に立ち、それに対応しながら開発を進めることで、顧客に対してより多くのメリットを提供しようというものだ。必然的に、(アジャイル開発を採用しない)競合の開発会社に対して優位に立てるので、この開発手法を採用しない手はない」
そのうえでアンブラー氏は、アジャイル開発が従来の開発手法と異なる点を4つ挙げた。それらは次のようなものだ。
このうち、(1)は開発チーム内だけでなく、顧客とのコラボレーションにも重点を置くことを意味する。これは、代表的なアジャイル開発手法として知られる「XP(Extreme Programming)」のプラクティスの1つ「オンサイト顧客」などとして体現されているコンセプトだ。
また(2)については、ドキュメンテーションに無駄な時間をかけず、実際に動作するソフトウェアを作り、それを基にして顧客との間で合意を形成することを意味する。
(3)は、文字どおり、個々の開発者が果たす役割が広がることを指す。これについてアンブラー氏は、テストを例にとり、従来のやり方を次のように批判した。
「従来の開発手法のように、テストしかやらないようなスペシャリストを設けていたのでは効率が悪いし、そもそも他人に品質の心配をさせるようなコードを書く開発者はプロフェッショナルだとは言えない。プロならば、自分の書いたコードには自分で責任を持つべき(テストすべき)だ」
さらに、(4)については「従来の開発手法からの重要な変更」と位置づけたうえで、「例えば、ソフトウェア開発の世界における通説(Theory)の1つに『既存の(動作中の)データベース・スキーマは変更しない』というものがある。しかし、私が実際に試してみたところ、変更しても何ら問題はないし、むしろ積極的に手を入れ、改善(リファクタリング)していくべきものだ」と語り、通説に盲目的に従うのではなく、実際に試して確証を得ることの重要性を説いた。
なお、前述したように、アジャイル開発に対しては、まだ多くの誤解がある。アンブラー氏は、「アジャイル開発に対する誤解が、この開発手法の普及を妨げている」と指摘し、典型的な誤解をいくつか挙げ、それらに対する反論を述べた。
「例えば、アジャイル開発ではドキュメントを作成しないと言われるが、ドキュメントを作らないのではなく、本当に必要なドキュメントだけを作るのだ。また、アジャイル開発には規律性がないと言われることがあるが、これも大きな誤解だ。むしろ、アジャイル開発では高い規律が要求される。計画性がないという指摘も間違いだ。アジャイル開発の生産計画に対するアプローチは、製造業のリーン生産方式に近いものだ。つまり、顧客の要求が固まる直前まで仕様を固めるのを待ち、ジャスト・イン・タイム方式で対応する。それにより、顧客が望むものに極力近い結果を得るのである」(アンブラー氏)



