We often talk about the tangible benefits that Chaos Engineering provides for teams managing complex systems, such as reduced downtime, increased availability, and decreased mean time to resolution (MTTR). And while these benefits are easy to understand implicity, measuring them is much harder. After all, the entire goal of Chaos Engineering is to prevent impactful events from happening in the future. How do you quantify and demonstrate the value of something that won't happen?
In this article, we'll provide guidelines that you can use to measure the success of your Chaos Engineering efforts and demonstrate value to the rest of the business.
Before we can talk about measuring the benefits of Chaos Engineering, let's discuss what those benefits are.
A key benefit is cost savings. The primary goal of Chaos Engineering is to prevent incidents from causing problems in production and creating downtime. Downtime costs companies an average of $9,000 per minute, with complete outages costing twice as much as partial outages. Chaos Engineering reduces downtime by preventing outages before they happen and avoiding these costs altogether. And while there is an upfront cost to implementing Chaos Engineering, a survey by Forrester Consulting found that it had a 245% return on investment (ROI).
However, the only way to demonstrate cost savings is by having a way to track costs related to Chaos Engineering and improved reliability. If you can demonstrate that Chaos Engineering saved costs in the long-term by reducing downtime and incidents, management will be more likely to continue investing in it. It's important to keep this in mind as we explore ways to measure and prove the benefits further in this article.
Now that we've covered the key benefits, why is it so hard to measure them?
For one, Chaos Engineering is a proactive, preventative process. The goal is to prevent failures and outages from happening in the future, when you need your systems to be at their most reliable. With that in mind, how do you measure something that you're trying to prevent?
Measuring the cost of an outage is hard enough on its own, let alone measuring the cost of an outage that never happened. Instead, look at similar outages that your team or other teams experienced and use their cost as your own basis for calculation. But even this number can be misleading, as each team is different, and even individual services contribute different amounts of value to the business.
Also, outage prevention isn't the only value Chaos Engineering provides. Chaos Engineering helps engineers find and fix bugs earlier in the development process. This provides significant savings on engineering labor and opportunity costs, as bugs are up to 30x more expensive to fix in production than in earlier stages of the software development lifecycle. We need to factor these costs into the ROI as well.
Now that we've introduced the challenges, let's look at ways to calculate the cost of downtime and the value of a Chaos Engineering initiative.
Start by understanding your baseline performance metrics. This doesn't just refer to your systems and services, but how well your team handles incident response. These include:
For past incidents, calculate and track the economic impact that the business experienced. Ask questions like:
An easy way to calculate revenue loss is by estimating the average amount of revenue the business normally generates over a period (e.g., one hour) and multiplying this by the duration of the outage.
Whenever you uncover an issue in your infrastructure using Chaos Engineering, make sure to document that issue in your ticketing system. Add a note or tag specifying that the issue was found with Chaos Engineering. This allows your team to easily find and list all issues found and fixed with Chaos Engineering so you can prove its effectiveness to management.
Additionally, track the amount of work that went into fixing these issues. Ideally, this will reflect the number of person-hours (the number of people working on the issue multiplied by the time taken to resolve it). If that's not available, estimate the number of hours spent troubleshooting, fixing, testing, and deploying the fix.
If you're unfamiliar with incident severity levels, they're a way of identifying and prioritizing incidents based on their impact on the business. Each incident is assigned a SEV (short for severity) number, with 0 or 1 being a critical impact and 3 or higher being a low impact. For example, if a bank's customer emailing service failed, it would likely be a SEV3, but if their core transaction processing service failed, it would be a SEV1 or SEV0.
As you use Chaos Engineering to uncover weaknesses and implement fixes, you should see the number of incidents—especially high severity incidents—decrease over time. This is another strong indicator that your Chaos Engineering efforts are working.
According to the 2021 State of Chaos Engineering report, nearly 20% of organizations experience 10—20 high severity incidents per month!
If you've already started tracking your cost per incident as described earlier in this article, this is another way to calculate your cost savings thanks to Chaos Engineering. For each severity level, count the number of reduced incidents compared to before you implemented Chaos Engineering, and multiply this by the average cost of an incident for that severity level. This will give you the average cost savings per severity level, and if you combine them, you'll get your average total savings.
((Number of SEV1 incidents this period) - (Number of SEV1 incidents last period)) * (Average cost of a SEV1 incident)
Ultimately, the goal of all of this effort is to do what's best for your customers. The fewer latent failure modes there are in your system, the less likely it is that those failure modes will cause production incidents, and the less likely it is that customers will have a poor experience using your service. But for those few issues that do end up reaching production, it's valuable to know what the potential impact might be.
If possible, calculate the number of potential customers that an issue would impact. One way to measure this could be by tracking the number of individual user IDs or sessions that are handled by the services being impacted. For example, if you have a service that exclusively handles multi-factor authentication for users, and 20% of your users use multi-factor authentication, then a service outage could theoretically impact up to 20% of your users.
If we assume all customers contribute equally to sales, a 20% drop in users results in a 20% drop in sales. To calculate the revenue lost, we simply take our normal sales volume over a period (e.g., one hour), multiply it by the length of the outage, then multiply by 20%.
We also can't forget to include the indirect costs of fixed issues. For one, customers who experience outages are less likely to continue using our services in the long-term, causing a drop in future sales and revenue. We'd also need to invest several engineering person-hours into identifying and fixing the issue, which has associated salary costs and missed opportunity costs.
In short, proactively fixing reliability issues saves us from:
To summarize, here's how we measure the benefits of Chaos Engineering:
If you want to dig more into the value of reliability and its positive impact on the business, read our blog on The KPIs of improved reliability.