日本アイ・ビー・エムは6日、ソフトウェア開発に携わる開発者やマネージャー、アーキテクトを対象とする「IBM Rational Software Development Conference 2007」を開催した。同カンファレンスでは、『ソフトウェア開発の「今」と「これから」が見えてくる』をキーワードに、ソフトウェア開発に関する最新テクノロジーや実践的ソリューション、パートナー企業による導入事例の紹介などが行われた。本稿では、IBMが現在推進しているチーム開発向けの次世代プラットフォーム「Jazz」を紹介した、同社ソフトウェア事業部 Rational テクニカルセールス 藤井智弘氏のセッションをレポートしたい。
ライフサイクルの統合を目指したチーム開発プラットフォーム
「Jazz」は商用製品の新しい開発モデルを模索するためにIBM RationalとIBM Reserchが共同で開始したプロジェクトだ。IBMではEclipseによってクライアントサイドのプラットフォーム統合を目指してきたが、Jazzはその次のステージとして製品開発のライフサイクルの統合を目指すものとなっている。
藤井氏によれば、JazzプロジェクトにはEclipseで得た知見の他に、Web 2.0、アジャイルプラクティス、ALM(Application Lifecycle Management)といった要素が含まれているという。Eclipseはコミュニティベースで進めらた大規模な開発プロジェクトの成功例であり、そこで得られた様々な知見がJazzの第一のベースになっている。Eclipseプロジェクトで実施されていたアジャイル的な手法、例えば6週間単位での反復リリースなどもJazzに採り入れられる。
Web 2.0はコミュニティの力を引き出すための要素として非常に優れたものと言える。Web 2.0では参加型のアーキテクチャによって「投稿→議論→編集→評価」という一連のコラボレーションを促進し、そこから新しい価値を創造していく。Jazzでは、これをソフトウェア開発の中でも活かしていくという。
一方で藤井氏は、「アジャイルやWeb 2.0的な手法でも上流からの情報管理の重要性は依然として低下していない」と指摘する。そこでJazzで重視するもうひとつの要素がALMだ。ALMとは、要件管理から変更管理、意思決定、設計、モデリングといったアプリケーションの一連のライフサイクルを適切に管理することである。これによって、成果物間の関連を明確にできるほか、ハイレベルなプロセスの自動化も実現できる。
オープンソースの開発スタイルで商用製品を製作
Jazzではこれらの要素をベースとして、伝統的な開発モデルから脱却した新しいソフトウェアエンジニアリングのイノベーションの創造を目指しているという。そこでJazzが採用しているのが「Open Commercial Software Development」という開発スタイルだ。これは、Eclipseのようなコミュニティベースのオープンソース開発を商用アプリケーションの開発にも適用したもので、「製品の仕様決定のプロセスを全てオープンにすることで、開発者とユーザが協調して仕様を決められるようになる」(藤井氏)という。
さらに藤井氏は、現在の一般的なチーム開発のスタイルについても言及し、開発者同士のディスカッションやチャット会議などのいわゆる"非公式なコラボレーション"が公式な記録に反映されてい点を指摘している。現状、DBに保存される公式な情報は、ものごとが決まった後の単なる記録でしかないが、品質を向上させるためには非公式なコラボレーションの記録も不可欠である。
これらの点を踏まえた開発モデルの構築により、Jazzでは最終的に以下に挙げる3つの事柄の実現を狙う。
- ライフサイクルの統合
- チーム・ファーストな開発
- プロセスの発効と透明性の確保
現在、IBMではJazzによる成果物として「IBM Rational Team Concert」を公開している。同製品では、上流から下流まで、ライフサイクル全体にまたがる情報を適切に管理することで、アプリケーションのライフサイクルの統合を図っている。IBMではプロジェクトの様々な場面をサポートする各種製品をリリースしているが、Team Concertはそれらの製品で管理される情報を適切に関連付ける役目を担うという。さらに、チャットシステムなどのコラボレーション手段と連携することで、公式な情報と非公式な情報を結びつけることができるとのことだ。
開発プロセスのチェックは面倒! - 違反時に自動的にアラート
Jazzのポイントとなるのはチーム・ファースト、すなわちチーム単位で開発プロジェクトを考えていくという点である。Team Concertでは、このチーム単位での情報管理に必要な様々な機能を統合しているという。たとえばチームの現状を知るためのfeedによる通知や各種コミュニケーションツール、チーム毎に必要な情報の取得に適した機能別の情報管理などである。
3つ目の目標である「プロセス」については、Rationalで培った長年のノウハウが最も活かされている点だろう。藤井氏は、プロジェクトで開発プロセスを定義・適用した場合でも、その手順をチェックする作業を面倒臭がってしまい、実際の現場では使われないで有名無実化してしまうケースが多いことを指摘する。ではプロセスに効力を持たせるにはどうしたらよいか。Jazzの出した結論は、「必要なときだけ」「自動的に反応する形」でツールが手助けするということだ。
例えばあるルールを設定した際に、それがクリアされていなければ次のステージに進めないようにする。同時にクリアするための解決手段も提示する。そして可能であれば自動化する。このようにすることで開発者自身がプロセスを確認しなくても、それを守ることができるようになる。さらに、Jazzでは多くのプロセスやプラクティスをサポートし、プロセスの定義によってツールの振る舞いが変わるようにするという。
Jazzで提供されるアーキテクチャは、「既存のインフラの上に"コラボレーション"という価値を提供する」と藤井氏は言う。同プロジェクトではパートナ企業や顧客、開発者などを対象としたコミュニティサイト「The Jazz Project」を立ち上げており、参加者はJazzプラットフォーム開発に関する様々な情報にアクセスすることができる。