SoftwarePuzzler
 

Unified Software Development Process

Good Foundation, Bad Execution

The Unified Software Developmet Process is created by Ivar Jacobson, Grady Booch and James Rumbaugh and is the foundation for the commercial product Rationan Unified Process.

The basic ideas that serve as the foundation for the process are all sound and useful. Requirements, architecure, risks, iterations and increments are all in focus, as they should. The problems appear when you see what the actual work in the activities are focused on.

USDP relies heavily on non executable UML models. It prescribes the creation of an analysis model, a design model and an implementation model. All this is created before a single line of code is written. The activities in USDP has to little focus on the actual goals of the project, to implement a working, documented system for your customer. If a model can equally well be represented by code, it should be, beacuse code is the goal of the project and code can be tested.

The use of roles in USDP, with personal goals other than the creation of a working system, is also a dangerous ingredient. It is easy to identify the risk that the architect, the use-case engineer and the component engineer are working towards their own goals, which not necessarily conincide with the creation of a working system. A feeling of them against us can easily emerge.

The invention of the model, as opposed to code, is really the biggest culprit here. No evidence has been presented that the use of UML generates better designs that the use of an object oriented programming language. In the end, a model is just code visualized in a different way.