Agile methods of growth and CMMI best practices are also considered to be at odds with each other. We are likely to see more uncertainty and tension as the acceptance of each strategy grows if these assumptions or their triggers are not addressed.
Our team is practicing Agile all the way from the starting to the present. Agile development of software is an umbrella term for a collection of structures and methods focused on the concepts and values outlined in the Agile Manifesto and the 12 principles behind it. Agile focuses on the individuals who do the job and how they work together. Solutions develop through cooperation between cross-functional self-organizing teams using the appropriate practices for their context.
You can read about it on the Carnegie Mellon Software Engineering Institute Website if you are not familiar with Capability Maturity Model Integration (CMMI). A model for the maturity of engineering practices of an organization is defined by CMMI. During the assessment, you show the competence of the company in areas such as management of requirements, project planning, risk management and decision making.
Recently, I've been involved in a CMMI Maturity Level 3 appraisal. Now, I can hear your groans. You believe CMMI is yet another credential that leads businesses to heavyweight processes that favor waterfall methodologies and a lot of documentation. That's also what I was initially saying. Our work towards this appraisal, in fact, has been refreshingly useful and relatively simple.
Adopting disciplined agile techniques in an established CMMI setting is definitely a very good idea, but the opposite direction, is very questionable when implementing CMMI in an existing Disciplined Agile environment. Agile techniques, despite what you might have read, lend themselves very well to a high maturity level of CMMI. The trick is to approach the assessment with the proper mindset. Although the model itself is divided into concrete practices, how to do these practices does not tell you. Agile methodologies aim to tackle different methods at once.
Mapping CMMI to Agile
It would be easy to build waterfall processes to solve any of these particular activities for those not familiar with agile and whose only interest is in passing an appraisal. The same objectives and activities can be tackled by agile strategies. Let's map the CMMI activities to some agile techniques
- Test-Driven Development (TDD)
- XP Iteration Preparation, Kanban and Scrum
XP Iteration Preparation, Kanban and Scrum are agile strategies for project management that help the client to prioritize the stories that will be part of a release. Along with production stories, stories about the development of end-user documentation are prioritized. The client has expressly prioritized end-user documentation from our releases on my project (in other words, they don't want it), which is completely appropriate to CMMI.
If you want to read more about this topic, you can read