Posts

Combining the Best of Agile and CMMI

Like politics, software development seems to advance according to Hegel’s dialectic.

Many see Agile as the culmination of the software engineering experience, making it the perfect process for all human endeavors even beyond the software development field for which it was created. We are probably at the second stage of the dialectic for Agile and will move on to another state, one that takes the best ideas from Agile and mixes them with other good ideas to arrive at a new synthesis.

Hegel’s dialectic consists of three stages:

a thesis, giving rise to its reaction; an antithesis, which contradicts or negates the thesis; the tension between the two being resolved by means of a synthesis.[1]

The Agile Antithesis

Agile may be seen as a reaction to the weaknesses of Waterfall, the previously dominant management process, which is most often, yet incorrectly, associated with CMMI. It is argued that while Waterfall may work well for building bridges, where requirements are known and surprises are few, software development is, by its nature, more an act of discovery. Previous practices like CMMI are seen as heavyweight, requiring too much documentation and too many measurements.

As more people apply Agile and Scrum to more situations, its limitations become clear. Organizations often find that when they switch to Agile, their projects tend to go on forever and they frequently end up with technical “surprises.” Even when teams are able to build functionality fast, the lack of documentation can make a company beholden to the developers who built the system as only they know how it works.

CEOs of companies who have bought into the pie-in-the-sky dreams of internal Agile proponents increasingly feel bamboozled as the latest fad continues to leave their companies in the same position: suffering with unpredictable schedules and technical surprises that result from difficult and risky issues being ”put off” sprint after sprint so that teams can report their continuing progress.

Proponents of Agile built their case by pointing out high profile failures of past methodologies. However, the almost universal reaction to high profile Agile failings, like the website for the Affordable Care Act, healthcare.gov, is to say that the process must not have been implemented correctly. In a famous YouTube video, Ken Schwaber, one of the pioneers of Agile, says that if you have a poor team with bad engineering practices, Scrum will generate crap for you time after time.

The ‘Silver Bullet’

silver_bullet_1At Bleum, we see many companies that try to implement Scrum in many different ways; some successful, most not. Agile was supposed to be the answer to previous difficult-to-implement processes, but that did not seem to work out in real life. I would be surprised if five percent of our customers implement Agile the way it is “supposed” to be implemented.

If you poorly implement Agile, Waterfall, CMMI or any other process, you are bound to get poor results. In my opinion, it would be best for organizations to start there rather than looking for the next silver bullet that will magically solve all of their implementation problems.

That is not to say that they shouldn’t use Agile. While plenty of successful projects were implemented before Agile came along, including landing a man on the moon, Agile does have value when used in the right place and implemented correctly. The idea of small, productive teams breaking work up into small iterations and delivering frequently is a helpful one. The continuous build concept wasn’t invented by Agile but is often part of it and helps to dramatically reduce rework downstream.

Likewise, the control and precision that comes from a data-driven paradigm like CMMI has enormous value to help organizations improve their performance over time. Expending resources on things like documenting designs and test cases may not help a current project finish faster or better, but it is crucial where a production system is going to need to be supported and enhanced over a long time.

How to Improve Agile with CMMI

Hydra - Bleum's project management and tracking tool gives clients full visibility of the status of their projectOne good way to marry Agile and CMMI is to use tools to automate the collection of performance and technical metrics. Tools like Bleum’s Hydra Code Quality, Sonar, and CAST can provide a snapshot of the quality of the source code and enable some sort of apples-to-apples comparison of progress being made on quality.

Another important process step that many lose but should consider returning to is formal reviews. Reviews are quality gates that take advantage of a second set of eyes to make sure that as we build, we build on a solid foundation. Review activities can be measured in terms of whether or not they were planned, whether or not they were conducted , how much time was expended, how many issues were found, and how many defects escaped. This gives a holistic view of the quality of the reviews. Besides being a quality screen, reviews also serve as mentoring and coaching opportunities for inexperienced developers.

Takeaway

Agile methods are strong when the teams take ownership but tend to be better at completing functionality while being prone to inefficient architectures and a short-term mentality.

By bringing in organization level measurements around the quality and productivity of the work being done and by ensuring that reviews become formal, (i.e. documented and utilizing evolving checklists), the technical capability of all team members can be raised to a predictable level.

What are your experiences with Agile and CMMI? Have you had success combining them for your projects? Share your thoughts in the comments section below.

CTA_Free_Project_Estimate_v1

Top 5 Customer Benefits of CMMI Level 5

Last week Bleum was re-appraised for the Capability Maturity Model Integration (CMMI) at Maturity Level 5.

This was the fourth consecutive time we’ve achieved CMMI Maturity Level 5, since our very first CMM assessment in 2005.

We’re really proud of that achievement.

Bleum Celebrating CMMI Level 5 Award for Fourth Time

Some Bleumies celebrate!

But what does it actually mean?

How does a CMMI Maturity Level 5 appraisal actually translate into real value for our customers?

Let us explain, but first…

What is CMMI? What’s the benefit of Level 5?

The Capability Maturity Model (CMM) is a methodology used to develop and refine an organization’s software development process. The model describes a five-level evolutionary path of increasingly organized and systematically more mature processes.

The focus for Maturity Level 5 is on continuous process improvement, so that the impact of new processes and technologies can be predicted and effectively implemented when required.

The CMM Integration (CMMI) project was formed to sort out the problem of using multiple CMMs. The combination of selected models into a single improvement framework was intended for use by organizations in their pursuit of enterprise-wide process improvement.

So that is CMMI. Long name; great model!

Why is CMMI important?

In short, it means you get a high quality, timely, predictable delivery that enables the best possible ROI.

But more specifically, let us explain how our CMMI Level 5 approach has helped our clients in five different ways.

1.  CMMI Ensures Better Quality

One of the key concepts of CMMI is repeatability.

By designing processes that are easily repeatable, and harnessing technology to do so easily, quality can be maintained at a consistently high level throughout the project.

This means a high quality delivery for our customer, with a low number of defects.

Zero Defect Development graph - Bleum achieves more than half of all projects at zero defect

Bleum’s zero default project percentage over the last nine years

2.  CMMI Provides Better ROI

Because fewer defects make it into the production release, they cost less to fix.

And because defects are resolved earlier in the development lifecycle, they have less of an impact overall.

Defects found earlier in the development cycle are much cheaper to fix - using CMMI means defects around found earlier, and therefore fixed cheaper

The secret to fault-free releases: find defects earlier in the development cycle

At Bleum we’ve calculated that defect removal is 72% more expensive in the rest of the industry than it is for us. That means that for every $100 spent on defect removal at the industry average, due to our CMMI approach it only costs our customers $58.

Productivity is a key performance indicator (KPI) both for us and for our customers. Because a focus on improving productivity leads to direct increases to your ROI.

3.  CMMI Enables On Time Delivery

Our customers are always striving to reduce their time to market. By using CMMI, we can ensure that we can quickly and accurately respond to their business requirements, and guarantee an on-time delivery.

Our schedule variance for the last two years (after re-baselining for change requests) is zero percent

And for agile projects, our completion rate (percentage of story points finished per sprint) is 90 percent.

4. CMMI is Flexible to Fit Your Needs

It can be difficult to combine agile principles with the more formal, ‘heavy’ requirements of CMMI.

How do you maintain your quality and delivery through an agile development process?

How do you ensure the iterative and quick-reacting benefits of agile are not lost through the detailed documentation requirements of CMMI?

At Bleum, we researched how we could reconcile agile with CMMI and as a result we created the Agile Maturity Model (AMM). The AMM allows us to monitor and guide projects towards a high level of agile maturity, as well as a high level of CMMI maturity, ensuring both a quick and a high quality delivery.

 

Automation Tools

As well as the Agile Maturity Model, we have also worked hard to automate CMMI.

By using internally developed tools such as Hydra and Omnipresent, it is easier for our teams to quickly respond to requirements changes, which means we can continue to support our clients’ needs, even in very fast-paced markets.

Bleum is on the leading edge of providing full transparency into outsourced operations. Hydra/Omnipresent provides our partner-clients with a real-time, 360° dashboard view of activities, KPIs and resource data. Regular joint-review of KPIs enables better decision making for IT executives, project managers and developers alike.

Hydra - Bleum's project management and tracking tool gives clients full visibility of the status of their project

Hydra – Bleum’s project planning & tracking tool

5. CMMI Encourages Continuous Improvement

For a mature software company, optimization is never complete. And this is one of the most important aspects of a CMMI Level 5 certification – the ability to continuously drive improvement.

At Bleum we drive process improvement throughout each of our projects, but also, we drive improvement into the organization itself. Best practice is shared across the whole organization and drives future improvements for all of our customers.

Takeaway

It is not easy to be appraised at CMMI Level 5, but it enables us to deliver great benefits to our customers.

That’s why CMMI is so important to us.

So the next time you’re in the market for a new IT partner, make sure they have CMMI Maturity Level 5.

CTA_Free_Project_Estimate_v1