[logo] ActioNet. Click here to return to ActioNet home.
.
.
SEISM CMMIŽ SE/SW Level3, ISO 9001:2000, 8(a), Woman-Owned Business
you are here: Media-Press > ActioNews Archive
The Rational Unified Process:
Quality and Software Re-Use for Your Business

by Rick Osborn, Project Lead

The Rational Unified Process (RUP) is an iterative software development process created by the Rational Software Corporation, now a division of IBM. The RUP is not a single concrete prescriptive process, but rather an adaptable process framework. As such, RUP describes how to develop software effectively using proven techniques. While the RUP encompasses a large number of different activities, it is also intended to be tailored. Tailoring occurs by selecting the development processes appropriate to a particular software project or development organization.

What makes RUP unique?
Every phase is done sequentially and non-concurrently. Completing all design artifacts before moving on prevents anyone from contemplating or forcing implementation details prematurely. This delays questions of platform, coding language, and persistence until all data is captured, increasing quality and validating successful designs over and over again.

RUP and Process Improvement Frameworks
Complementing RUP, with its execution-oriented approach and detailed guidelines, are process improvement frameworks such as ISO 9001:2000 and the Capability Maturity Model Integration (CMMI®), which operate on a more generic level. They focus on structuring an organization to achieve process-driven quality and leave the details of how to execute the process up to each organization.

How much effort?
Adopting RUP can be very easy or very hard depending on what systems your enterprise has in place. If you’re a government agency using CMMI® Level 3 methods, adopting RUP can be made very consistent with your practices. If you have a more casual process, RUP can be more difficult. Either way return on investment depends on the motivation for adapting. Are you adopting RUP to leverage code and talent from one business area to another? Are you trying to establish repeatable processes that will increase the quality and decrease the effort of staff?

Indicators that a plan-based approach might fail are: service organizations incapable of adhering to a single approach, critical projects where release cycles are impossible, and situations where client communication might take months.

What about ‘Agile Coding’?

Agile or Extreme Programming uses some phases of RUP with programmers working in tandem; or side by side at a workstation. While some argue this improves code and offers many benefits of RUP methodology, Agile Programming has not taken root nor is it as wide-spread as RUP. Agile Programming sometimes dispenses with some artifacts. The concern by some is that this might lower quality and software re-use. Another concern is that the knowledge learned during Agile Programming “pairing” can be lost if the members of teams aren’t rotated regularly.

Resources
There are many books dedicated to RUP and tools which specifically address RUP concern and design. RUP artifacts are also readily repeatable and reusable regardless of geographical location or specific industry. Mention Activity Diagram, Sequence Diagram, or Class Diagram and most programmers will know what you are talking about.

Food for Thought
To help you decide if a RUP approach is right for you and your environment; consider the following: Is the team ready and willing to accept a new process? If so, RUP benefits include creation of use case documents that can be re-leveraged in your business. The leveraging can even be extended to process improvement. You will have software design diagrams that can be used critically in later software releases. Lastly, your business will gradually shift from a focus on heroic key personnel to managed quality in your software release process.

Summer 2006