Our software development team was hit by a six sigma black belt today. It came in the form of a lengthy process-maturity survey. Needless to say, while we have many processes in place, we have a lack of formalism in terms of documentation. This was quite apparent in our response to their survey. While it seems to me that the end goals of an agile development process and a six sigma process are in unison, they appear (at least to me anyway) to take two different vehicles to get there. Let's examine the core values of agility:
We Value:
- Individuals and Interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
While there is value in the items on the right, we value the items on the left more.
A few items in particular seem incompatible to me. By its very nature, six sigma seems to very much put process at its heart. This includes defect measurement, comprehensive documentation (the next point), and following the plan (the final point). This feels like going against the grain to me. I do feel like certain agile practices, however, are very complementary to the six sigma goal of waste and defect reduction. In particular, the use of test-driven development to bake in quality and reduce unnecessary cruft, the application of continuous integration for a repeatable build process, the close alignment of developers and business stakeholders for reduced waste and inefficiency, and a short, iterative release cycle for delivering incremental business value. Ultimately though, I am not a Six Sigma practitioner and have not studied their teachings. I do think, however, that we looked a lot worse on paper than is the case in real life.
I would ask you, dear reader, where is the intersection of Agile Development, Six Sigma, and CMM? Have you had any experience with these practices in your current or former project? Does Six Sigma or CMM embrace change?