Innovate 2010 wrapped up today with a keynote from Walker Royce focusing on “econometrics that are core to continuous improvement.”
Royce’s message was clearly one of “breakthrough agility,” speaking out against the waterfall approach which he labeled as “geriatric.” He promoted integration test before unit test claiming that this would give teams the ability to catch “malignant errors early in the cycle,” saying that key metrics such as defects, scrap and rework were improved when using agile methods rather than conventional approaches.
To be honest, I was surprised that IBM took such a strong and public stance against the traditional waterfall methodology. I attended a Tuesday breakout session, “Quality in the Trenches Panel: Traditional? Agile? Something Else?” with Terry Quatrani and Scott Ambler, and in that session, too, the underlying message was clearly one that screamed “agile is the better approach.” The debate was pure tongue-in-cheek with Ambler in suit and tie arguing the waterfall approach and Quatrani with Mickey Mouse ears and casual dress arguing for agile, much in the style of Mac vs. PC commercials. However, the humor was clearly mocking the waterfall approach as an approach riddled with inefficient processes and an over-emphasis on documentation and lack of collaboration.
Though I knew a lot of agile was going on within IBM, with Big Blue having more of a suit-and-tie reputation, it surprised me that their message was not just pro-agile, but anti-waterfall.
At the keynote, Tim Lyons of Nationwide spoke about his implementation of an agile methodology.
“We thought we had standardized practices, but when we applied metrics they weren’t as standardized as we thought. Metrics provided the insights to dive down into multiple levels of standardizations and truly get into best practices,” said Lyons.
Nationwide adopted an onshore agile, lean model, operating with CMMI level 3 team and found it more cost-effective than an offshoring model.
Agile and CMMI combined? That was something I hadn’t expected to hear. Royce confirmed I was not alone in this viewpoint when he got back up on stage and said, “Many people think they’re opposing, but they can be used together.”
CMMI (Capability Maturity Model Integration) is a model that helps organizations attain continuous improvement of their software development processes. My experience with CMMI is that it’s quite rigid, requiring thorough documentation of standardized, repeatable processes. Agile is adaptable. The Agile Manifesto promotes “Individuals and interactions over processes and tools” and “Working software over comprehensive documentation.” With CMMI being documentation-heavy with strict adherence to process, I have a hard time imagining this being used in a purely agile environment which promotes adaptability and change. Nevertheless, Nationwide is using both and seeing positive results.
What do you think? Are agile and CMMI a good mix or are they opposing in nature? And what about waterfall? Is the methodology dying?