So this famous question: Are Scrum and CMMI antithetical? Or are they complementary?
If we believe the famous article by Jeff Sutherland Scrum and CMMI Level 5: The Magic Potion for Code Warriors, which you can find translated here thanks to Fabrice Aimetti (thanks to him), the answer is yes, a thousand times yes. But well, it’s about a CMMI level 5 company (they’re not a dime a dozen around here, I’m not talking about such and such service company that got its Indian cluster of 10 developers stamped level 5 and magically extends the badge to its entire group…). Assuming you’re lucky enough to work in a CMMI level 5 structure, I suppose those that implement Scrum or Lean like in Jeff Sutherland’s example are rare.
But nevertheless I quite agree in saying, according to my personal experience, that the two complement each other well, because I can see clearly in my personal practice that depending on the needs I turn either towards agility (Scrum/XP) or towards CMMI. So in which cases? Since that’s the question.
To summarize: I turn towards agility whenever it involves producing, creating, thus carrying out projects. I turn towards CMMI whenever I need to audit. Normal, nothing surprising. It’s a cheerful truism. CMMI is a model, Scrum is a method. Words are important, a method is a set of reasoned processes for doing something; a model is a representation, in IT (for CMMI) of structures, treatments, practices… A representation is also an image, a painting, a photo taken at time T. Temporality (oh dear they’ll accuse me of intellectual masturbation, but what can I say I went to liberal arts school) is different: action (movement, duration) on the Scrum side, representation (state, analysis, definition, present moment) on the CMMI side.
Naturally in the company both are required: action (value creation: projects etc.), representation (indicators, analysis, consolidation, etc.). The difficulty is that the two are on different planes and are not necessarily carried out by the same people, nor as we’ve seen at the same pace. The scrummaster (let’s say the project manager), the developers, etc. are in action; management (to use an easy umbrella term) consolidates, analyzes at a macro level (the Scrummaster consolidates and analyzes at the level of his project!). Nothing is specifically asked of the scrum team member for example regarding the use of their time. They’re part of the team and they participate (constantly) in the project. Yet we clearly understand that they will have to enter at some point or another their time spent on such and such project in a group consolidation tool. I also remember a Scrum project that had worked very well and for which I’m asked for a task/planning consolidation in a CMMI framework. As a sort of snub I submitted photos of the radiators over the days (it’s a good practice to photograph your radiators every day) but this isn’t really a good answer to the question I was asked I admit because it’s quite unusable as is… So agility must have the intelligence to provide models like CMMI with the necessary information (I think all the XP tooling is an important first bridge. It will provide important metrics). On the other hand, the inertia, the static side of the model, must not break the rhythm and dynamism of the Agile project.
We must try to achieve convergences, that’s the whole challenge. CMMI will be the requester, and Scrum the provider. In my eyes we’ve taken the path in reverse: today it’s Scrum that comes to blow up the inertia of CMMI in companies. It’s rather CMMI that should come to consolidate the Scrum processes already in place. Consolidate by providing strong indicators that will allow agile projects to be better managed without disturbing them otherwise. A convergence rich in lessons but one that relies on a probably fragile balance.