In regard to software development methods, our industry continues to debate the relative merits of being lightweight, or “agile” against being more formal or heavyweight, often code for CMMI-oriented organizations. Both sides can point to the failings of the other, usually with thin evidence to back up their claims. But, in actual software development practice, there is a vast middle ground that uses a combination of practices that are both recognizably agile and CMMI.
Virtually all real-world projects today demand both the flexibility that characterizes agile methods and elements of the technical and managerial rigor that characterize CMMI. And this, of course, is what really happens most of the time. Instead of debating the relative merits of one approach or another, Jim will focus on ways that the best-performing development teams use the entire spectrum between agility and formality. Features such as planning, training, measurement, role definitions, coaching, design, and testing are crucial for most long-term definitions of “success.” So, let us acknowledge them as such, talk about how to incorporate the critical elements of each as appropriate, and move forward.
- Discover that agile and CMMI have a far more intimate historical relationship than most people realize.
- Learn how agile and CMMI co-exist quite happily in many organizations today.
- Understand that both agile and CMMI concepts must be embraced in order to meet the business and technology challenges of the future.