Governments are overwhelmed balancing consumer expectations, aging workforce, regulations, rapid technology change and fiscal deficits. This blog gathers a community of SMEs who discuss trends and outline how public sector organizations can leverage relevant best practices to drive their software-led transformation and build the future of technology – today!

« Imperatives and trends reshaping DMV operations | Main | Analytics to improve road user safety »

Be more predictable and agile with CMMI

Capability Maturity Model Integration (CMMI)® is being increasingly used around the world to build scalable, resilient, high performance organizations and empower those organizations to deliver on the promises of agile approaches. Organizations leverage the CMMI to scale and strengthen agile implementations and address business problems outside the scope of agile approaches1.

However, people misunderstand the alignment between CMMI and Agile and think that these both are competitive. In this blog, I will try to address this misconception and outline how CMMI and Agile are actually complementary and how CMMI can help organizations balance predictability and agility.

What is CMMI?

Capability Maturity Model Integration (CMMI) is a process level improvement training and appraisal program designed to optimize organizational performance.  IT organizations in particular have implemented CMMI processes and measurement systems to improve throughput and the quality of delivery.  This capability improvement model is not limited to IT but can be adapted to solve any performance issue at any level of the organization in any industry.  CMMI guidelines and recommendations are used by over 5000 organizations in 70 countries to help diagnose problems and achieve measurable business goals.

Why does CMMI matter?

The track record for public sector IT projects is less than stellar. The commercial sector doesn't fare much better.  Let's look at some numbers published by New Mexico Department of Health in their report on the mistakes that cause public sector IT projects to fail2:

  • 40-60 percent of all public sector IT projects fail; i.e., are either scrapped or don't deliver the desired results
  • 70-90 percent of public sector IT projects with budgets over $10 million fail; i.e., are either scrapped or don't deliver the desired results
  • 33 percent of public sector IT projects fall behind schedule
  • 50 percent of IT projects with budgets of over $15 million run over budget, run behind schedule and, on average, deliver 56 percent less functionality than the project was designed to deliver

Why does this happen with IT projects time and time again?  In general, poor project management and an inadequate execution model are often cited as the key reasons for failure. These projects waste a lot of effort and ultimately taxpayer money.

CMMI based planning and execution of IT programs can drastically improve these numbers.  CMMI provides a rigorous framework which makes the entire execution process more predictable - problems can be recognized faster and earlier in the software development life cycle and resolved more quickly3. One of the great benefits of following CMMI processes is a significant reduction in the amount of re-work, lowering the overall project cost and risk. Unplanned disruptions which throw projects off course are minimized and the overall quality of delivery is improved.  CMMI is at its core a continuous improvement methodology which provides project documentation that helps executives plan similar exercises.

We have used CMMI Level 5 practices extensively to successfully deliver some of the complex programs for clients like the District of Columbia and Ministry of Transportation, Ontario.

CMMI & Agile - Complementary, not competitive!

CMMI, despite all the positives, is not well understood by many working inside and outside of information technology.  Some of the misconceptions about CMMI include:

  • CMMI only applies to IT projects that follow a traditional waterfall development methodology so is not really relevant for today where the focus is on agile development
  • CMMI does not guarantee a successful project.  Many organizations, despite being appraised at CMMI level 3, 4 or 5, have been responsible for large public sector IT programs failures

These misconceptions about CMMI and the negative perceptions of its effectiveness can generally be traced back to the following sources1,4,5 

  • Just because a system integrator is appraised at a high CMMI level doesn't mean that a specific program is executed using the same level of CMMI process improvements guidelines.  Sometimes the failure is driven by the client either through the imposition of unrealistic timelines and in other cases the SI has not developed a program management structure capable of implementing CMMI guidelines.
  • Misuse of CMMI and Agile - CMMI is a process model that can apply to any project to assure quality and efficiency.  It is not a software development methodology like agile or waterfall.  CMMI provides a map of what must be done while Agile prescribes how to do it.  Many people incorrectly see CMMI as bogging down Agile development with documentation.  Agile doesn't mean no documentation or a free run in the sun, and CMMI doesn't necessarily mean a ton of paperwork. CMMI model should be implemented not applied.  For software engineers, a simple analogy would be to think of the CMMI as the "requirements" or "story points" for their organization and various agile ceremonies or techniques as a particular instantiation of those requirements. CMMI is lifecycle agnostic and is useful with any software development methodology
  • Terminology differences - terminology in CMMI (e.g., discipline, quality assurance, and predictability) and Agile (e.g., continuous integration, test-driven development, and collective code ownership) carries context-specific connotations that are easily misunderstood and abused. For example, the word predictable is a locus of the confusion and misunderstanding between the traditional and Agile development communities. Many in Agile community believe that software projects cannot be predicted with any great precision. These believers say, "Perfect is the enemy of good enough, so don't try to predict, just react and re-factor." However, CMMI uses the word predictable in a more subtle sense. Predictability does not arise from a detailed project plan up front that covers the entire project lifecycle (nor does CMMI require or generally expect this type of predictability to be possible)

CMMI and Agile are compatible. At the project level, CMMI focuses at a high level of abstraction on what do projects do, not on what development methodology is used, while Agile methods focus on how projects develop products1.

There can be much value gained from Agile and CMMI synergies. Today, many CMMI-adopting organizations have Agile development teams. Conversely, CMMI can be effectively introduced in an Agile setting where an iterative, time-boxed approach is used, which is perfectly compatible with CMMI1.

As methods and techniques are adapted and evolve according to the project requirements and the development methodology, CMMI provides the foundation upon which organizations can iterate or tailor their techniques in a way that is appropriate to the dynamics of their business environment. CMMI balances stability with agility.

How Infosys Public Services is leveraging CMMI to balance agility and predictable, on-time, on-budget execution

Infosys Public Services (Infosys) was recently appraised at CMMI Level 5.  Even before being formally appraised at the highest level, Infosys had been following the model in combination with waterfall and iterative development methodologies to plan and execute complex IT programs for our public sector clients.

Infosys implemented an integrated eligibility system for food and cash assistance programs. Infosys married CMMI best-practices combined with an iterative methodology for execution to deliver the program on time and within budget.

Infosys followed a similar approach with the Ministry of Transportation, Ontario (MTO).  We built an enterprise-services based, modern and citizen-centric licensing and registration system with data management, automation, and real-time digital updates for commercial vehicles (carriers). The system, serving one of the largest client bases in the region, was built using Oracle products within two-years and went live on time-without any glitches. The new system is helping MTO deliver better services, experience, and safety to 1+ million commercial vehicles. 

Many public sector organizations and system integrators serving the public sector advertise that they are at level 3 and seem pleased to be there.  While attaining that level is a positive step, CMMI Level 5 organizations do a better job of learning from each project, creating a reusable knowledge base for future projects and using this information to continuously increase productivity.

Clearly, interest in agile is growing in public sector. Infosys Limited was among the first companies to be appraised at CMMI level 5 and also a first-mover to agile (with a global agile solution offering). We have been leveraging both these models successfully for our clients and expect that the demand for these services from existing and new clients will continue to expand.



Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

Please key in the two words you see in the box to validate your identity as an authentic user and reduce spam.