.netagilecmmi

What is the difference between CMMI and Agile in terms of development and planning?


I am currently working on an agile .NET development project and will transition to a CMMI project next month. In terms of how requirements are placed in the backlogs and the daily standup meetings. How are CMMI meetings different and how are work items determined to be worked on? What toolsets are used for CMMI planning? For agile, we use VS Team Services.


Solution

  • The short answer is that there is no difference.

    The longer answer is that unlike Agile CMMI is not a project planning or development methodology. CMMI works with any methodology whether it is Scrum, Kanban, waterfall, etc.

    Think of CMMI as a set of requirements FOR your operations rather than a specific methods of running them. CMMI addresses the "What to do" Agile addresses the "How to do it." So CMMI is really a way of making any organization more resilient and high performing regardless of the methods.

    According to the CMMI Institute about 70% of CMMI users are using some Agile methods or practices. So, for example, CMMI will say "you need to identify and involved relevant stakeholders" in your Requirements Development. It won't tell you specifically how to do this. In Scrum having users validate story points, or doing Sprint demos are two ways of doing this. In waterfall there might be some requirements document review.

    CMMI is not prescriptive while Agile methods are very prescriptive. CMMI also covers a larger set of organizational behavior. Scrum, for example is pretty much focused on breaking down work and managing workflow. CMMI will cover this, but also cover questions like, "Do you have a way of making sure your people are trained?", "Do you have a way of identifying risks and managing them?" etc. CMMI really creates a fact-based culture of continuous improvement that is resilient and sustainable, so in Agile CMMI organizations you might see people measuring things, or making sure people are learning beyond project teams across the organization, or thinking about training, etc.

    Now at your work if they differentiate between Agile and CMMI projects they

    (1) probably don't understand either Agile or CMMI (2) which means they are probably responding to specific client requests.

    In that case the "CMMI project" will have adopted whatever specific methodologies the client requested and there will be the infrastructure, measures, and evidence that insure it is actually being done.

    It might be a spiral project, a scrum project, a waterfall project or whatever. Ironically, with CMMI the specifics are never dictated...so it is hard to say what you will see except that it is likely to be appropriately tailored to the work and pretty holistic. Hope that helps.