Recently, I read a blog which is talking about the differences between CMMI and Agile. I want to share with you. In that blog, it said there are 7 distinct differences:
1. Focus
Quoting from the Blog
CMMI focuses on the development of organization. The purpose of CMMI is getting benefits from the organizational optimization. Agile methodology focuses on every project. The purpose is completing the project at a high quality in the shortest duration.
Comments of mine
CMMI is more macroscopic. It is searching for the processes and applications which can be used witin an organization. Even it is huge and complex. In order to resolve all the problems in different projects, CMMI tends to discuss more about process and management tools. Agile is microscopic. It cares about every project, cares about every team and even every each team member. In the estimation process, every member can give his opinion about the tasks estimation. Agile respects humanity more.
2. Management
Quoting from the Blog
CMMI lays stress on control, especially the risk control. And the stability is another thing it cares. Agile is much flexible and it lays stress on “self-organize”.
Comments of mine
Agile tells us we can adjust the plan spring to spring according to the reality of the project. CMMI management is rigid. But we can’t say which one is better, because they are looking at two different directions. And what we learned from the practices of China GDC is that these two ideas can combine with each other very well, if we can find the balance between them.
3. Trust
Quoting from the Blog
CMMI gives less trust to employees than Agile.
Comments of mine
I don’t agree with that. Although, when an organization applies CMMI, it controls a lot of the things, but it does not mean “less trust”. Control is for reducing the risks, not for monitoring employees. And in an organization, control is necessary.
4. Plan
Quoting from the Blog
CMMI has a template for planning which can be used for different projects. But it is still focus on the organization. Under agile model, we divide the plan into different layers.
Comments of mine
When we use agile to do the planning, it makes the plan more detail and clear. It makes the tasks and goals more definite. This is an advantage for Agile.
5. Marketing and Client
Quoting from the Blog
CMMI is for a mature marketing and client. Agile is for a market full of alterations.
Comments of mine
Agile will be more practical in a fluctuant market or when the client changes his requirements frequently.
6. Design hypothesis
Quoting from the Blog
The framework of an application supposed to be confirmed in CMMI, but in Agile, the design is flexible and tailored in different project and even in different phases of one project.
Comments of mine
Flexibility in Agile makes the developing process more effective and efficient.
7. Training
Quoting from the Blog
CMMI requires training in every level, organization level/project level and so on. Agile always to do the just in time training.
Comments of mine
For the stable things like the quality standards and format of the documents, having fixed materials for training and do some proactive training is good. But for the technical knowledge, just in time training is much effective.
Conclusion
CMMI and Agile are not conflict. On the contrary, they can combine with each other very well. The development format proved this very well. GDC like a big house, every project are the rooms. The house uses CMMI to build the structure and “the rooms” choose Agile to decorate. How to make the house gorgeous? Just find the balance between CMMI and Agile.