ラショナル統一プロセス® (RUP®)は1990年代にソフトウエア開発の最良のプラクティスを実践するためのフレームワークとして開発された。このフレームワークの中心的な特色である反復開発、平易さ、価値への着目、継続的なフィードバックなどはソフトウエア開発を成功させるための重要な要素だと考えられている。RUPを出発点として、異なるプロジェクトの領域に統一プロセスを適用する方法を確立した人もいる。
- リスクに対処することを主要な推進力にして反復的に開発する
- 要求を管理する
- コンポーネントベースの設計を採用する
- ソフトウエアを視覚的にモデル化する
- 継続的に品質を検証する
- 変更を管理する
- カスタマイズ可能
- 開発を導く変更可能なプロセス
- プロセスの適用を自動化するツールtools
- プロセスとツールを適用しやすくするサービスservices
画像の出典: http://en.wikipedia.org/wiki/File:Development-iterative.gif
中心となる作業分野と同じようにRUP®は構成管理、変更管理、プロジェクト管理、環境支援のような補助的な作業分野も定義している。RUP®についてのさらなる詳細はこちらを参照されたい。
ソフトウエア開発を行う組織にとって機敏さは、周囲の環境がもたらす変化や要求に対して迅速かつ正確に反応し、適応するための能力です。アジャイルプロセスはこのような適応能力を素早く発揮することを支援します。したがって、プロセスの規模やプロセスの進み具合ではなく柔軟性が重要な関心事になります。この記事ではラショナル統一プロセス® (RUP®)がどのような点において柔軟性を実現しているのかを説明するつもりです。
本質的統一プロセス
本質的統一プロセス(EssUP)はソフトウエア開発のライフサイクル全体を形成する実践を集めたものです。この実践を中心に据えた手法は既存のベストプラクティスを含み、その上に構築されます。EssUPのプラクティスは統一プロセスやアジャイルなどの原則と統合され、手法の構造や機敏さ、プロセス自体の改善など、それらの手法のよいところを取り入れます。
ESSUPは一揃えの本質的原則として提供される。これらの原則は無料でダウンロードできるドキュメントとして入手できる。生み出すべきこと、するべきこと、鍵となる能力の3つを一組にしてひとつの原則が形成され、それぞれに説明とガイドラインが記述されている。
OpenUP - リーン統一プロセス
OpenUPもソフトウエア開発に必要なプロセス、原則、実践、役割、成果物、タスクについて定義している。OpenUPはEclipse Process Framework (EPF)として配布されている。
OpenUPは反復的でインクリメンタルな方法を構造化されたライフサイクルに適用するリーン統一プロセスです。OpenUPが採用するのは、ソフトウエア開発の恊働的な側面に着目する実践的なアジャイルの哲学です。ツールに捕われず形式的な要素も少ないプロセスで、さまざまなプロジェクトのタイプを扱えるようにするための拡張も可能です。
Bjorn Gustafsson氏が書いたOpenUPの手法とツール についての記事によると、
EPFはIBM RationalのRUPについての成果物や技術のある部分に支援されて2006年に開始したオープンソースイニシアティブです。開始当初からこのプロジェクトは20を超える企業の参加を得て、2007年の9月には最初のリリースを行いました。Eclipseプロジェクトの一環として始まったにもかかわらず、EclipseでのJ2EE開発だけでなくMicrosoft Visual Studioを使った.NET開発等、どんな種類の開発でもこのプロセスを作成できるようになっています。
この記事で氏はEPFの背景を説明し、また、OpenUPの配置についても説明している。氏の結論は、
この新しいOpenUPはRUPとアジャイルから作られたベストプラクティスであり、軽量さや素早さの点でもRUPとアジャイルの代替方法になり得ます。RUPを起源に持つので、反復的でインクリメンタルで、ユースケース駆動でかつリスク駆動であり、アーキテクチャを中心に据えた手法です。これらの方法論はアジャイルプロジェクトの習慣でもあります。OpenUPが提供するプラクティスは多くのプロジェクトにそのまま適用できます。しかし、プロジェクトに対して最適なプロセスに仕立てるために、EPF Composerツールを使ってサードパーティ製のプロプライエタリなプラクティスの拡張を追加することもできます。
エンタープライズ統一プロセス
RUP®のもうひとつの派生はScott Ambler氏のエンタープライズ統一プロセスだ。
RUPが定義するのはソフトウエア開発のライフサイクルですが、EUPはこれを情報技術(IT)全体のライフサイクルに拡張します。EUPではふたつの新しいフェーズを導入しました。それは、Production と Retirementです。そしていくつかの新しい作業分野を定義しています。それは運営と支援であり、エンタープライズ分野における7つの作業分野です(エンタープライズビジネスモデリング、ポートフォリオ管理、エンタープライズアーキテクチャ、戦略的再利用、要員管理、企業経営、ソフトウエアプロセス改善)。
ラショナル統一プロセス(RUP)を単純化した手法です。この手法はRUPに従いながらもアジャイルの技法と概念を使いながらビジネスアプリケーションを開発するための方法を記述します。アジャイルUPの手法も、その記述内容も可能な限り単純にしておくことが目標のひとつです。記述は単純で適切です。詳細について知りたければリンク(ウェブ上)先で確認できます。この手法では以下のようなアジャイルの技法を利用します。テスト駆動開発(TDD)、アジャイルモデル駆動開発(AMDD)、変更管理、データベースリファクタリング。これは生産性を高めるためです。
このウェブサイトにはRUPの作業分野とアジャイルUPの作業分野の違いについて説明してある。
上に見てきた手法はすべて統一プロセスの変形と派生だ。
あなたもこの中のどれかの手法を利用してみて、アジャイルの世界とどれくらい馴染むのか確かめてみてはどうだろう。