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:
- Traditional software processes are too heavy. No one reads large and lengthy process descriptions.
- Process must focus to support developers, not just process experts.
- Process must assist teams to get product quality as well as process quality; thus not only pass CMMI appraisals, but also deliver good software. The focus of any software development process must be on producing good software.
- Process must provide agility with discipline, balancing the need for governance without stifling creativity.
- The approach must let project teams (developers without the help of process engineers) easily add good practices on top of existing processes.
- Process should empower the team.