In with the Good...Out with the Bad
- By Charles Ashbacher
The Rational Unified Process: An Introduction
By Philippe Kruchten
Addison-Wesley, Reading, MA, 1999
272 pp., $29.95, ISBN 0-201-60459-0
While the Rational Software company is most widely known for its creation of the Unified Modeling Language (UML), that may change. In UML, the term Unified means it is a unification of the modeling approaches of Grady Booch, James Rumbaugh, and Ivar Jacobson. In this book, the term is applied to all the steps in the software development process. As anyone who has "served time" on a team developing a major project can attest, unity is often lacking. From the visionary architects to the coders and finally the testers, there is a complex and often antagonistic set of relationships. Part of this problem can be alleviated by assuring that everyone in the cycle is acutely aware of the project status, which is where the Unified Process is invaluable. Although the UML can be a godsend, it is complex and will not be used by all in the development cycle, which limits the scope of use. The Unified Process, however, is designed to be global across the development team; so in that regard, it may exceed the value of the UML.
It is now conceded by all but the most stubborn of stalwarts that the waterfall method of development simply does not work in software production. This model is the simple, yet stable one where each step is completed before the next is started. However, software project development often cascades into an escalating feedback loop that can take on the appearance of the mathematical model known as chaos. In this theory, even the smallest of perturbations can cascade back into a feedback loop that quickly escalates into a tidal wave that overwhelms everyone in the process. Since the loop is going to exist anyway, the only hope is to manage the process by damping the feedback down to manageable proportions-which is what the Rational Unified Process is designed to do.
The alternative developmental model is the spiral or iterative model, which harnesses and directs the feedback process. In this case, each iteration produces an executable product that can be tested and demonstrated. The good is kept and refined, while the bad is relegated to the bad memories folder. The enunciated six best practices or golden rules of software development are: (1) develop software iteratively, (2) manage requirements, (3) use component-based architectures, (4) visually model software, (5) verify software quality, and (6) control changes to software. Sound advice to be sure, but like a magic trick done by a professional, hard to duplicate, even when done right in front of you. These six principles are the basis around which the unified process was created.
While The Rational Unified Process: An Introduction contains descriptions of the elements of the Rational Unified Process, it is more a description of the development process than a commercial for the product. The magic phrase used throughout is "workflow," which is defined as a sequence of activities that produces a result of value.
Each step in the process is modeled as a workflow, as can be seen by the chapters with the titles: "The Project Management Workflow," "The Business Modeling Workflow," "The Requirements Workflow," etc.
Charts that show the time frame of parallel development of all these aspects of software projects are scattered throughout the book. They are very helpful in providing guidelines concerning where and when resources should be allocated.
Another significant point is the concept of the "hat" rather than a traditional worker. It is likely many individuals will perform more than one task, thereby wearing more than one hat in the project. Unnecessarily encapsulating workers into a rigid niche is artificial and counterproductive. If an individual is placed in another position, she gains an appreciation for the problems of that task, and that can reduce tension between departments.
While the power of computers is rising rapidly, the use of software to run the world is increasing even faster. The functional demands on that software are also on the rise. To cope with these trends, all the hats in the development ring need as much direction and organization as possible. The principles described in this book are sound and effective. It should be read by all team members before they begin production.