Skip to main content
Cloud DevOps Solutions
Get a quote Talk to an engineer

SRE & Incident Response

Toil Reduction: Find and Automate Repetitive Ops Work

A toil reduction analysis identifies the repetitive, manual, automatable operations work your engineers do, measures how much time it takes, ranks it by payoff and risk, and automates the best candidates. The result is more engineering time for work that improves the system instead of just keeping it running.

Key takeaways

  • Toil is manual, repetitive, automatable work that grows with the service and leaves no lasting value.
  • You cannot cut what you have not measured, so we start with a time and frequency inventory.
  • Not every task is worth automating: we rank by effort saved, risk and how often it recurs.
  • Some toil is removed by fixing the cause, such as noisy alerts, rather than scripting the symptom.
  • Automation is delivered as reviewed code with documentation, owned by your team.

Why toil quietly consumes a platform team

Toil rarely arrives as one big problem. It arrives as a ten-minute job here, a weekly request there, a restart that “only takes a moment”. Each one is small enough to justify doing it by hand. Added together, they decide whether your engineers spend their week improving the platform or keeping it upright.

The cost is not just hours. Interrupt-driven work destroys focus, manual steps introduce mistakes, and repetitive tasks are what make good engineers leave. A toil reduction analysis is how our SRE and incident response service turns that drag into a ranked list of fixes with reasons attached.

What counts as toil, and what does not

Precision matters, because teams who call every unpleasant task toil end up automating the wrong things. Toil has these characteristics:

  • Manual. A person runs a command, clicks through a console or edits a file.
  • Repetitive. The same task recurs; it is not a one-off investigation.
  • Automatable. A machine could do it, now or with reasonable effort.
  • Tactical. It reacts to events rather than moving the system forward.
  • Scales with the service. More customers or services mean more of it.
  • No enduring value. After finishing, the system is no better than before.

Things that feel tedious but are not toil: meetings, writing a design document, a first-time migration, and incident analysis. Those are overhead or engineering. The distinction affects what you automate and how you report progress.

How the analysis works

Gathering evidence

We use several sources because each one hides things the others show:

  1. Ticket and request history. Recurring request types are the clearest evidence.
  2. Chat search. Phrases like “can someone restart”, “can you give me access” and “is the pipeline stuck” mark invisible work.
  3. On-call and incident records. Repeated manual remediation steps in runbooks are often automation candidates.
  4. Interviews. We ask each engineer what they dread and what they do on autopilot.
  5. Calendar and time sampling. Where possible, a short sampling period beats memory, which tends to under-count small tasks.

Scoring each candidate

We keep the scoring deliberately simple. A table like this gets built for the top candidates:

TaskMinutes eachPer monthError riskAutomation effortSuggested fix
Grant a developer namespace access15frequentMediumLowSelf-service via Git pull request
Rotate a certificate by hand30rareHighMediumAutomated renewal and expiry alert
Restart a stuck consumer5frequentLowLowFix the cause, or a liveness probe
Rebuild a staging environment90occasionalMediumMediumInfrastructure as code pipeline

The numbers in your table come from your own measurements; the example only shows the shape. We multiply time by frequency, then adjust for risk, interruptions and out-of-hours impact.

Choosing the right kind of fix

Automation is not always a script. The ladder, from most to least valuable:

  • Remove the cause. If a consumer keeps hanging, fix the bug or add a proper health check. Scripting the restart hides the defect.
  • Self-service. Let requesters do it safely through a pull request, a form or a portal, with guardrails and approvals built in.
  • Automate with code. A pipeline job, Ansible playbook or Terraform module replaces the manual steps. Our Ansible service and infrastructure as code work cover this.
  • Improve the runbook. If it cannot be automated yet, make it faster and safer to do.
  • Accept it. Rare, high-judgement tasks may stay manual on purpose.

A small, typical automation looks like this, a scheduled GitHub Actions job that reports stale resources instead of someone checking by hand:

name: stale-resource-report
on:
  schedule:
    - cron: "0 7 * * 1"
  workflow_dispatch:
jobs:
  report:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: List unattached volumes
        run: ./scripts/list-unattached-volumes.sh >> report.md
      - name: Post to channel
        run: ./scripts/post-report.sh report.md

Note the pattern: report first, delete only after a human reviews. We add destructive automation last and with a dry run.

Decisions and trade-offs

Build versus buy. An internal developer portal or a managed service can remove toil faster than custom scripts, but adds a system to run. Small teams usually do better with plain pipelines and scripts.

Automation debt. Every script is software that needs owners, tests and updates. If nobody will maintain it, a documented manual process may be safer.

Order of work. Start with high-frequency, low-risk tasks to build trust, then take on riskier ones with review. This also gives early, visible wins.

When not to do this. If the team is two people and the real problem is that the product is unstable, fix stability first. Toil analysis pays off most when work is repetitive, not when it is chaotic.

Common failure modes

  • Counting only what people remember, which misses the many small tasks.
  • Automating a broken process, so it fails faster.
  • Scripts with no owner that quietly rot after the author leaves.
  • Treating toil reduction as a one-off project instead of a standing review.
  • Ignoring alert noise, which is often the largest hidden source of repetitive manual work.

Delivery and handover

You receive the inventory, the scored backlog, the automation delivered as reviewed code in your repositories, and documentation on how each piece works and who owns it. We also give you the measurement method so your team can repeat the exercise each quarter. Where the work fits, it connects to Managed DevOps so recurring tasks are handled continuously and not rediscovered.

How to tell it is working

Compare the same measures before and after: hours per month on each automated task, manual interventions, errors from manual steps, and out-of-hours pages. Ask the team whether interruptions have dropped. If the time recovered is going into reliability and delivery work rather than new toil, the analysis has paid off. To look at your own backlog, get in touch.

References

How we deliver it

  1. 01

    Inventory the work

    We gather tickets, chat requests, runbook usage and engineer interviews to list the recurring manual tasks and who does them.

  2. 02

    Measure time and frequency

    For each task we estimate minutes per occurrence, occurrences per month and whether it interrupts focused work or happens out of hours.

  3. 03

    Classify and rank

    We separate true toil from overhead and project work, then rank by effort saved, error risk and difficulty of automating.

  4. 04

    Choose the fix

    For each candidate we decide between removing the cause, self-service, a script, a pipeline job or leaving it manual.

  5. 05

    Build and review

    We implement automation as code in your repository, with tests where practical, a dry-run mode and a rollback path.

  6. 06

    Re-measure and hand over

    We measure again after a few weeks, record the time recovered and give your team the documentation to extend the work.

Tools and technologies

TerraformAnsibleGitHub ActionsGitLab CIPythonBashAWS LambdaKubernetes OperatorsBackstageSlack

Frequently asked questions

What counts as toil?
Toil is operational work that is manual, repetitive, automatable, tactical and grows as the service grows, without leaving the system better afterwards. Resetting access by hand each week, restarting a flaky job and copying configuration between environments are typical. Writing new features, incident learning and design work are not toil, even when they are tedious.
How much toil is acceptable?
Some is unavoidable and a little is healthy for staying close to the system. The Google SRE book suggests keeping it under about half of an engineer's time, with the rest for engineering work. Treat that as a guide, not a target, and watch the trend and its effect on morale rather than one number.
Should we automate everything we find?
No. Automating a task that happens twice a year, or that needs human judgement each time, often costs more than it saves. We weigh effort saved against build and maintenance cost, and sometimes the right answer is a better runbook, a self-service form or removing the reason for the task.
How long does an analysis take?
It depends on team size and how well work is already tracked. Teams with ticket history can be analysed faster than those whose work lives in chat and memory. We scope it after a short conversation, and the output is a ranked backlog you can act on with or without us.
How do you measure whether it worked?
By comparing the same measures before and after: time spent on each task, number of manual interventions, errors caused by manual steps and, where relevant, out-of-hours pages. We also ask the team, because a perceived reduction in interruptions matters as much as the arithmetic.

Talk to an engineer about toil reduction

Book a free 30-minute call. We review your current setup and tell you honestly whether and how we can help.

Written by Saddique Khan, DevOps / SRE / Cloud Consultant Engineer. Last updated 2026-10-08.