I have been using CMMI framework for development for managing projects since the beginning of my career. It is a very impressive framework for project management. In this article I would like to give a brief introduction to CMMI and also explain why we need such frameworks. I will start with the later first.
Note: My experience is CMMI framework in limited to the development area and I do not have sufficient experience in CMMI for Services and CMMI for Acquisition
The person or the group that named this framework as CMM has chosen the best name. Before I justify that let us look at what “Capability” and “Maturity” means in various dimensions of an enterprise.
Capability is the answer to – Can we do it?
In financial terms capability determines the revenue for the company. If a company is capable of accomplishing certain business critical and unique set of tasks they have an opportunity to grow their revenue (setting aside market reasons).
Maturity is the answer to – How well can we do it?
In financial terms maturity determines the profit of the company. If a company can do tasks well then it can make good amount of profit otherwise the expenditure is going to go up. What I mean by doing certain tasks well is that doing tasks with processes that deliver a quality end product, minimizes the rework effort.
Now that I have explained what capability and maturity is. Let me define the link between them. You need to first attain capability in some areas of the enterprise before attaining maturity in it. That is why the word Capability comes before Maturity in the name of the model. This is also the reason why capability levels start from 0 and maturity levels start from 1 in CMMI model. Refer to Table 3.1 Comparison of Capability and Maturity Levels in this document.
In my experience, I have seen benefits in both tangible and intangible areas of the project when a project is executed in CMMI framework. Here are some of the benefits at a team level
- Changes teams from reactive to proactive
- Makes team a hero rather than glorifying individuals
- Peace of mind and less stress
- Good brand image in the market
- Open to continuous learning
- Increases predictability
- Minimizes and mitigates risks very well
- Decisions based on data rather than intuition
- Increases scope for automation in day-to-day work
- Improves quality
- Minimizes person dependency
There are 22 process areas that a company has to focus on and process areas are grouped to attain certain level of maturity. Enterprises need not start with all the process areas nor they need to implement CMMI on all projects in the beginning. Company culture plays a significant role in embracing CMMI processes and making changes as a result of these processes.
Refer to Table 3.2 Process Areas, Categories, and Maturity Levels in the document mentioned previously. This will show which process areas we should focus on for each level of maturity. The process areas that fall under Maturity Level 2 (the lowest level in appraisal) are
- Requirements Management (REQM)
- Configuration Management (CM)
- Project Planning (PP)
- Project Monitoring and Control (PMC)
- Process and Product Quality Assurance(PPQA)
- Measurement and Analysis (MA)
- Supplier Agreement Management (SAM)
The order of process areas mentioned above are based on my experience and I will explain in upcoming articles why I maintain this order and how to implement processes for these areas, metrics to collect and audits to conduct. My advice is to take two process areas at a time and implement them, refine them and then mature it to replicate it to other projects in the enterprise. In the next article I will write about requirements management area and explain what challenges the projects that I managed for a start-up faced and what processes we implemented and how we improved it.