In recent years, agile development method can better adapt to modern software development, and gradually develop into a mainstream development method, also changing the software development process. However, agile development methodologies are often considered to be incompatible with the CMMI process because CMMI is viewed as a normalized method of controlling the software development process.
In 2008, Hillel Glazer, Jeff Dalton, David Anderson, Mike Konrad and Sandra Shrum published the CMMI and Agile methods: Why not be compatible with each other, Open a window for development organizations that want to keep the project process manageable and want to experience agile development flexibility. CMMI Process Management is often seen as an obstacle to implementing agile development as an enemy of self-organizing teams, as the CMMI and agile teams have different cultural backgrounds, which leads to many misunderstandings. For example, agile teams rarely use the term "predictability," but "predictability" is key to the CMMI Process management model.
CMMI, on the other hand, is a cross organization approach that can improve software quality and control the cost of software development, even though the execution of CMMI Process Management takes a lot of effort to develop the organization.
Project managers tend to adopt CMMI process Management, while the self-organizing development teams within the development organization do not recognize or even view CMMI Process management as a major risk to the project. How can the two opposites be unified? How can a self-organizing Agile team from a large development organization meet software development maturity (level 2 to Level 3)?
Eliminate language barriers
To unify the two opposites, the first problem to be solved is the barrier of language communication. In order for Agile preachers or process management engineers to use the same language to communicate with development teams using different technologies, a modern technology exchange method called "Meta language" needs to be used. With the meta language, you have to be able to ensure that team members can translate meta language into their natural lifecycle language. For example, a PMP enthusiast often talks about "functional requirements," but agile team members prefer to use the word "User stories." They are talking about the same concept, but they use words with different meanings. In this example, you can unify the "specification" as a meta language so that both are receptive and unified.
Meta-language is the key to unified Agile development process and CMMI process Management. If the CMMI preacher, project manager and agile members can communicate with each other in a unified meta language, then the language barrier can be eliminated so that the communication is smooth.
For example, in the requirements development phase, agile developers and ordinary developers can use meta language to unify their lifecycle languages. As shown in the following table:
Metalanguage Term Meta language |
Formal methodology Formal development methods |
Agile Methodology Agile development Approach |
Goal Goal |
Functional Scope Function range |
Epic Epic Story |
Business case Business Use Cases |
Use Cases User Use Cases |
User Story User Stories |
Appliance Application Requirements |
Scenario Requirements Scenario Requirements |
Acceptance Conditions Acceptance conditions |
Review Review |
Periodical Tracking Meeting Regular check-out meeting |
Retrospective Project Review |
Figure 1: Enumerating some of the meta languages in the development phase of customer requirements
Recognizing and using a unified meta language requires that the preacher of CMMI Process Management can recognize the meta language, unify the meta language, reduce the differences between the maturity models, and also recognize that the meta language needs to be continuously expanded and refined, which is a work without end.
Figure 2: Can you identify whether this is a product's unfinished list or a requirement list? Ideally, you can apply your own lifecycle model to the public model.