Why does MTTD & MTTR matter for software delivery?

I’m back with another article! This time i’ll talk a bit about MTTD and MTTR and why they matter and how they relate to each other. You can review some of my articles on DORA metrics, change failure rate and more on my website. First we’ll start off with MTTR and why it’s important.

What is MTTR?

MTTR, or Mean Time to Recovery/Repair, is a crucial metric in software delivery for several reasons:

  1. Customer Satisfaction: If a software or a system fails, it needs to be fixed as quickly as possible to minimize disruption to the customer or user. The shorter the MTTR, the quicker a problem is resolved, and the less likely it is to negatively impact the customer’s experience.
  2. Availability: MTTR is directly related to system uptime and availability. Systems with high availability are those that have short MTTRs because issues are identified and fixed quickly. This is particularly crucial for systems that need to be available 24/7, like banking systems, e-commerce websites, or any system where downtime directly correlates with lost revenue.
  3. Efficiency: MTTR is a measure of the efficiency of your support and development teams. A shorter MTTR means that your teams are good at identifying, diagnosing, and fixing problems quickly.
  4. Reliability: Low MTTR also implies high reliability. If a system can recover quickly from failures, it increases the confidence of stakeholders in the system’s reliability. This can be a competitive advantage in the market.
  5. Performance Monitoring: MTTR is a useful performance metric. It helps in identifying trends, spotting recurring problems, and informing decisions about where to invest in system improvements.

OK, so what is MTTD and why does it matter?

MTTD stands for Mean Time To Detect. This is a measure of how long it takes, on average, to detect a problem or failure in a system.

MTTD is a critical metric in system management and incident response for a few reasons:

  1. Early Detection: The earlier a problem is detected, the sooner it can be fixed. Early detection often means less impact on users and potentially less complex repairs, which can save a lot of time and resources.
  2. Proactive Response: A lower MTTD can indicate that the system has effective monitoring in place, capable of proactively identifying issues before they escalate into larger problems. This could lead to fewer outages and more stable service.
  3. System Health: Like MTTR, MTTD is also a reflection of the system’s overall health and the efficiency of its monitoring tools. A system with low MTTD is typically considered more robust than one with a high MTTD.

MTTD and MTTR are closely related. Together, they cover the entire incident lifecycle, from detection to resolution:

  • MTTD is the time it takes to find a problem, which starts the clock for the incident.
  • MTTR starts when the problem is identified (i.e., when MTTD ends) and ends when the problem is resolved.

Both MTTD and MTTR are critical for maintaining high-quality service, and reducing them can improve customer satisfaction, system availability, and operational efficiency. Improving MTTD often involves investing in better monitoring and alerting tools, while improving MTTR typically involves improving both the tools and processes used for incident response and recovery.

How do you measure / monitor potential incidents?

Generally, with incidents, there’s some sort of trigger and alerting going on. Here are some tools you can use to set these up. I’ve personally used pagerduty, new relic, grafana and splunk. They each have different use cases in my mind but are good overall. Implementing these tools effectively requires a good understanding of your system’s normal behavior, so you can set appropriate thresholds for alerts. Too much alerting and then alerts won’t mean anything. Too little and you’ll be missing critical information. Using these tools in combination can often provide the best results, as it allows you to cover multiple aspects of your system’s behavior and quickly identify and address a wide range of potential issues. It’s recommended you try these out and see what’s appropriate for your use case. I don’t have knowledge of all of these. There’s probably way more so this isn’t exhaustive.

  1. Prometheus
  2. Grafana
  3. Zabbix
  4. Datadog:
  5. New Relic
  6. PagerDuty
  7. Sentry

OK, I have the data, now what?

Manually tracking MTTR (Mean Time to Recovery) and MTTD (Mean Time to Detect) is quite straightforward when you’re starting out and don’t have a large volume of incidents to handle. Here’s a basic process you can follow:

  1. Incident Logging: When an incident occurs, note the exact time it was detected. This could be the time a customer reported the issue, the time an internal user noticed a problem, or the time an automated monitoring system sent an alert.
  2. Incident Resolution: When the incident is resolved, note the exact time at which the fix was confirmed and normal service was restored.
  3. Calculation: To calculate MTTD and MTTR:
    • MTTD is the average time from when an issue occurred to when it was detected. If you’re manually tracking this, you’ll need to know both when the problem started (which may not be possible for all types of incidents) and when it was detected.
    • MTTR is the average time from when an issue was detected to when it was resolved. You calculate this by subtracting the detection time from the resolution time for each incident, then averaging this over all incidents in a given period.
  4. Record Keeping: Keep a log of all incidents, detection times, and resolution times. This could be in a simple spreadsheet when you’re starting out. Each row could represent an incident, with columns for when the incident occurred, when it was detected, when it was resolved, the time to detect, and the time to resolve.
  5. Analysis: Over time, you can analyze this data to see trends, identify common types of incidents, and find areas where you could potentially improve your MTTD and MTTR.

Remember, while manual tracking can work when starting out or dealing with a low volume of incidents, as your systems and operations grow, you will likely want to automate this as much as possible to ensure accuracy, efficiency, and scalability.

Closing

I hope that helps resolve some of the mystery around MTTD / MTTR! If you have any questions or need this setup for your company, please feel free to reach out. I’ve set this up for small and public facing companies of various sizes. It’s definitely daunting at first but gets easier.

Thanks as always.

Latest posts

Leave a Comment