The Essential Unified Process

The Essential Unified Process integrates practices from the unified process camp, agile methods camp, and process improvement camp.


August 02, 2006
URL:http://www.drdobbs.com/architecture-and-design/the-essential-unified-process/191601687

Ivar is one of the "fathers" of components and component architecture, use cases, UML, and the Rational Unified Process. Pan-Wei and Ian are chief scientists at Ivar Jacobson Consulting. The authors can be contacted at http://www.ivarjacobson.com.


Everybody recognizes the need for processes to improve how software is developed. Everybody recognizes the need for agility, flexibility, and adaptability. And everybody agrees on the need for quality. But many of us find that existing processes are cumbersome, constraining, and a hindrance to our creative juices.

Developers are tired of process. The Unified Process has become too heavy, the process improvement programs require too much boring work, and the agile camp promises too much. Still, we know we need good practices to develop good software on time and on budget. In short, we need to fundamentally reengineer the way we design, configure, teach, adopt, and deploy process.

The Essential Unified Process

The Essential Unified Process (EssUP) is a new process that stands on the shoulders of modern software development practices. EssUP (www.ivarjacobson.com) is a fresh start that cautiously integrates successful practices from the unified process camp, the agile methods camp, and the process improvement camp, each contributing different capabilities.

Among the reasons we need a new process are:

New Paradigm: Practices as First-Class Citizens

Traditional processes (such as the Unified Process) are described by their different activities and artifacts. These activities and artifacts may serve different purposes—doing requirements with use cases, test-driven design, or component-based development. These practices are not explicit, not visible, and don't have a name. The process contains a "soup" of practices.

To easily identify, design, and deploy new practices, we need to let practices become first-class citizens. Process is the result of composing the practices you have selected. To make this possible, we need to be able to separate different practices from one another during design, deployment, and improvement.

In this regard, EssUP is very different from other processes or methods in how it is presented. It embodies an idea new to the process industry—Separation of Concerns (SOC), as in aspect-oriented thinking. When we apply this idea to process development, we generate a fundamentally different process—one that makes it easier and more intuitive to select your tailor-made software process. Most importantly, it will be more natural and intuitive to plan and execute a software project. To illustrate, here are a number of situations where we have applied the idea of SOC: