筆者は以前,「日経ITプロフェッショナル」という雑誌の編集部に所属していた。そこで,2003年に開発プロセスの特集記事を担当したことがある。ここで言う開発プロセスとは,ソフトウエアを開発する際のエンジニアの役割や手順,作業内容,入力する成果物と作業の結果として出力される成果物,などを定めたものだ。

 当時はちょうど,多くのシステム・インテグレータがそれまでの「ウオーターフォール型開発プロセス」の限界を意識し始めた頃で,多くの大手システム・インテグレータがこぞって,反復型やユースケース駆動,アーキテクチャ中心といった特徴を持つ「UP(Unified Process)」を自社の開発プロセス標準の一つとして採用しようとしていた。UPあるいは「RUP(Rational Unified Process)」の“ブーム”と言っていい状況だった

※UPもRUPもIvar Jacobson氏に端を発する開発プロセスだが,UPはツールに依存しない汎用的な開発プロセス。RUPは日本IBMの製品であり,具体的な手順や成果物のテンプレートなどで構成される開発プロセス

 しかし,「そうした試みはすべて“トライアル”のまま終わってしまった。RUPを購入したシステム・インテグレータはほとんどなかったし,UPをベースに全社的な標準化を成し遂げられたシステム・インテグレータもほとんどないのではないか?」と,UPに詳しいコンサルタントは語る。その理由は,「当時の試みは,UPに関する書籍や雑誌の記事を“つまみ食い”したものだった。つまみ食いなので,明確で体系的な開発プロセスなど作れるはずがない。その結果,多くの場合失敗に終わった」(同)。

 この当時の,自称“UPをベースにした”「反復型」開発プロセスの失敗により,「反復型は難しい」というイメージが定着。UPあるいはRUPのブームは去っていった。「反復型ではいつまでたってもユーザーの要求がフィックスできないため,大規模プロジェクト開発には向かない」という反復型に対するネガティブなイメージも定着してしまった。

 この状況が,最近になってようやく変わってきた。その大きな理由がXP(eXtreme Programming)などのアジャイル型開発プロセスの普及である。「まず小規模なプロジェクトでアジャイル型が広まった。その結果,ドキュメントがきちんと整備されないのでメンテナンス性に問題がある,といったアジャイル型の限界が浮き彫りになってきた。そこで,再び組織的にきちんと開発プロセスを整備しなければならないという動きが出てきた。と同時に,再びUPやRUPが注目されてきた」(同)。

 ただし「規模の大小,パッケージ・ソフトを使うのかどうかなど,プロジェクトの性質は千差万別。ウォーターフォール型開発プロセスやUPなど,どれか一つの開発プロセスをすべてのプロジェクトに当てはめるのは不可能。このため,必ずプロジェクトに合わせて,開発プロセスをカスタマイズしなければならない」(あるベテランITアーキテクト)。

 プロジェクトに合わせて開発プロセスをカスタマイズ(あるいはテーラリング)することを,「プロセス・エンジニアリング」と呼ぶ。とは言え,これまでは,プロジェクトに合わせて開発プロセスをカスタマイズすると言っても,容易ではなかった。それを支援するツールがなかったからだ。

 だが,こうした状況が変わりつつある。日本IBMの「RMC(Rational Method Composer)」,オープンソースの「EPF(Eclipse Process Framework) Composer」といった開発プロセスを容易にカスタマイズできるツールが登場してきたからである。

 RMCは,開発プロセスをGUIベースでカスタマイズできる編集ツールとRUPで構成される製品である。2005年に発売されたRUPの後継製品であり,小/中/大規模プロジェクト向けRUP,パッケージ開発向けRUP,SOA向けRUP,XP向けRUPなど様々なバリエーションが用意されている。

 IBMは,自社製の開発プロセスであるRUPの要素を小規模プロジェクト向けにまとめたものを,2005年にオープンソースの統合開発環境Eclipseのコミュニティである「Eclipse Foundation」に寄贈。Eclipse Foundationでは,これを基にオープンソースの開発プロセス「OpenUP」を開発中で,現在「OpenUP/Basic」が公開されている。

 IBMはさらに,開発プロセスの「メタモデル」とそれをJavaで実装した「UMA(Unified Method Architecture)」もEclipse Foundationに寄贈している。開発プロセスの「メタモデル」とは,そもそも開発プロセス自体がどんな要素(手順や役割,成果物など)で構成されているかを表したもの。Eclipse Foundationでは,UMAを「SPEM(Software Process Engineering Metamodel」,UMA上で構築されたオープンソースの開発プロセス編集ツールを「EPF(Eclipse Process Framework) Composer」として公開している。

 OpenUP,EPF Composerともに,製品版であるRUP,RMCよりも機能は少ない。しかし,手軽にUPと「プロセス・エンジニアリング」を経験できる。ソフト開発の生産性を高めるためには,プロジェクトの性質に合った開発プロセスの標準化が必要なことを否定する人はもういないだろう。UPやプロセス・エンジニアリングの経験がない人は,ぜひEclipse Foundationからダウンロードしてみてほしい。

■変更履歴
設定ミスで記者名が表示されていませんでした。お詫びして表示させていただきます。[2007/2/28 10:21]