DevOps By The Numbers – 5 Metrics To Watch

| July 21, 2016 | 1 Comment

Tim Buntel recently sat down with Alan Shimel of DevOps.com and explored DevOps by the Numbers. This discussion looked at how to approach the measurements and metrics of a Continuous Delivery transformation. Tim spoke on tough questions like “are we getting better at delivering high-quality software faster and at scale?” and “has all this effort been worth it?!” After listening to the entire discussion we compiled the top 5 DevOps metrics to watch:


 

Time to Delivery

“Looking at your time to delivery across all the phases in your development process is a great tool to help you identify which of those stages you should tackle first.” – Tim Buntel, VP of Products

This provides insight into the specific processes slowing the pipeline down and what actions should be taken to decrease time to delivery. It’s important to remember, however, to focus your automating efforts on a select few areas of inefficiency at a time, as opposed to trying to do everything at once.

 

Deployment Frequency

Examining how often a company deploys software tells a lot about what is causing bottlenecks that slow down the process. A benefit to regular deployments is that it provides more opportunity to improve your software.

If it takes you a very long time and you’re deploying less frequently then you’re going to be less able to respond. That suggests that you need to rethink the batch sizes that you’re delivering.” – Tim Buntel, VP of Products

In addition, processes dependent on manual labor as opposed to automated ones will only lengthen time between deployments. Automation will not only increase frequency but will also provide you with enough time to respond to any errors.

 

Change Volume

“Releasing frequently is only important if what you’re releasing is valuable. Thinking about what the volume of changes in the releases is a really important metric to bring into the conversation.” – Tim Buntel, VP of Products

However, the value of change will differ depending on each company’s specific software process. Agile companies often turn to user stories or points as the unit to measure change volume. It is essential for each release to come with its own meaningfulness in order to be a change worth making. Be sure to steer clear of lines of code as a unit of measurement as they tend to lack the complexity necessary for change.

 

Success Rate

Frequency and meaning behind your releases may be all for neigh unless it actually works. Be sure to keep an eye on the success rate, which, despite its name, is a unit of measurement focused on the number of times deployment to production resulted in failure. Failure is not to be feared, but rather embraced as an opportunity to learn.

“It’s important to get your releases and changes into production, but if they result in an outage it’s important for you to know that it happened because that’s going to tell you whether there’s quality in both your code and your process.” – Tim Buntel, VP of Products

These failures are usually a warning of configuration drift, which is often experienced by organizations undergoing a DevOps transformation.

 

MTTR (Mean Time to Recovery)

The debate between measuring Mean Time to Recovery (MTTR) and Mean Time Between Failures (MRBF) is very prevalent in DevOps. Our recommendation is as followed:

“Focus on time to recovery because faster delivery—being more agile—opens up more opportunity to failure but they’re not inherently bad. What’s important is can you react to them…can you take the evidence that comes out of that event and prevent it in the future.” – Tim Buntel, VP of Products

Failures in continuous automation are inevitable, but true failure lies in not responding to them fast enough. After all, knowing how well your team can handle unfamiliar situations is more useful than how long they’ve gone without them.

 

Above & Beyond 

These 5 metrics are the primary measurements used to optimize DevOps processes. However, depending on your industry there may be others that can come in handy. Adoption, or whether people are actually utilizing these new changes, can also be beneficial. This can be measured by a variety of factors such as application traffic, calls to Application Program Interfaces (API’s), new user sign-ups, and performance. Consumer happiness with the product is another useful measurement that uses social media to receive feedback from users. Business impact such as trial conversions, or what the market is saying about the company, helps prove that DevOps is a useful tool and can improve the continuous delivery process. Finally, and not as common is cultural impact, which focuses more on the internal such as staff turnover or morale gaged from surveys.

 

Listen to the entire discussion!


Continue reading about Continuous Delivery in the enterprise with “Simple Steps to Improve Applications Deployments to Microsoft Environments.”


Divesh Rupani

About the Author ()


  • Rob Vanstone

    Hi Tim

    As with evolution I think there’s room for step changes in an incremental approach. In our case feedback is critical to this because insightful feedback can lead to (non-random) pivots that we can experiment with (incrementally if needs be).

    Without being too dogmatic about the analogy with evolution theory we at least have the power to make some educated guesses with the direction of our development. With the peace of mind that comes from the ability to release often and safely we have the opportunity to get this feedback equally as often.

    WIth some analysis we could probably design in some safety features to mitigate the risks you speak of, so to take your point, give someone the keys but disable the ability to drive if required. Perhaps that ability is created prior to me handing over keys in an earlier release.

    The (slightly laboured) point here is that rather than blindly incrementing our software we can apply our intellect on creating new features without worrying too much about how to get them in front of our customers if we have solved the frequency problem…