This paper will compare and contrast the CMMI model and the agile method model. In the software engineering profession there has passed time since professionals listen, or read with frequency in conversations, projects or e-mails, the questions about whether their businesses should implement the CMMI, or the agile methods for their software development projects. The capability maturity model integration (CMMI) is a model to make improvements and to evaluate the different processes of development, maintenance, and operation of software systems.
The agile development method is one of a growing number of alternatives to traditional, process-centric software management methods with a focus on people, results, minimal methods and maximum collaboration (Highsmith, 2000). All in all, there exist some vast similitudes and differences between both models. Firstly, I will describe how both models are similar. One of the main aspects of CMMI that are equal to the agile methods is their end; improve processes in order to manage projects effectively, obtaining a successful outcome.
Also, according to Turner and Jain, both models have specific rules: “process-oriented and some of the agile methods (particularly [the agile] XP [method]) have specific rules that must be followed. Agile tends to have considerably fewer rules, but the feeling of [a] group [in a project] is that this [makes] those few much more critical”. Another similitude would be that both are motivated by the desire to become a high performance organization (Turner, Jain). Secondly, I will describe how they are different. One of the main differences in both models is how they gain customer trust.
In CMMI, process infrastructure is used, whereas in the agile methods the productions of working software, and the continuous participation of the client in the project, are the means to get customer trust. Another difference is the way in which both models make decision analysis and resolutions; in Fritzsche and Patrick research we can found that “the ability to adapt quickly to new situations is preferred by agile methods to a formal evaluation process. ” The agile method identi?es and evaluates alternatives informally and not in the formal way that the CMMI suggests.
Another strong difference tied to this decision analysis is the communication style; CMMI is oriented to macro, and organizational communications, which is completely opposed to the agile method, which makes use of micro, or person to person communication. “in CMMI oriented organizations, common processes and training are seen to support communication across broad sections of the organization using work products as the medium. Such artifacts provide traceability, can be used in process analysis, and provide history for later projects. This adds additional time and effort to the project. In contrast] agile methods tend to encourage frequent, person-to-person communication and specifically address only intra-project communication. This allows rapid development, but can make recovery or later analysis more costly” (Turner, 161). Fritzsche and Patrick suggest that “process improvement with CMMI can also be carried out when using agile methods. However, since some process areas are in con?ict with agile principles, agile methods can be applied without any major adaptations in the early stages of a project with some minor changes”.
Turner, in other hand, concludes that “from the results of the component comparisons. It is clear that while both represent methodologies of a sort – maturity models and appraisal techniques or agile tenets and practices – the defining characteristic is the attitude or mindset under which development activities are accomplished. The differences between the agile and process worlds are beginning to be better articulated and so better understood. He also believes that neither model is the “right” one to develop software or software-intensive systems.
Rather, there are instances of projects or phases of projects when one or the other represents a significant advantage. I hope you’ve enjoyed reading this comparison and contrast between the CMMI and the agile methods models for software engineering projects management.
1. Turner, R. and A. Jain. “Agile Meets CMMI: Culture Clash or Common Cause? ” XP/Agile Universe (2002): 9-26. Print. 2. Fritzsche, M. and P. Keil. “Agile Methods and CMMI: Compatibility or Con?ict? ” e-Informatica Software Engineering Journal 1. 1 (2007): 153-165. Print.