Thursday, October 11, 2007

It occurs to me that some folks know about the Unified Software Development Process (USDP) and how it can ensure quality results. They may even act as process evangelists, helping IT shops implement process changes and USDP development techniques.

It also seems to me that some of them don't really believe in it. Maybe they understand the benefits from an academic perspective, but having never actually lived in a "process pure" environment, they see software development processes as intrusive and weighty.

The truth is, software development is chaotic by nature. The questions of "how do we begin", "how do we know when we are done", "what are our deliverables", and "what is quality" seem basic. However, it is surprising how often development projects are undertaken without understanding what these things mean. Even when process evangelists are involved from the beginning, when the team fails to follow the process systematically the project will begin to degrade toward chaos.

A good development process does not have to be heavy. The most important features (use case driven development, visual modeling, and iterative development) can be tailored to the project and the project team.

Following a USDP can lend order to the chaos. It provides focus to the development effort. Everyone on the team has a common mental picture of what must be done, how it should be done, what is being produced, how the components relate to each other, and how to know when they are done and done correctly. Even when things start to degrade, as they often do when schedules and budgets get tight, a good development process is self-healing. It provides the disciplines needed to regroup and re-focus the team, mitigate risks, resolve unforeseen issues, and establish corrective measures.

Actually putting the USDP into practice is the key to understanding its benefits. Once you have been on a development team whose focus is USDP, you will never want to do things the "old way" again.

No comments: