Automation

Automating Brittle Workflows Without Overbuilding the Solution

This piece looks at how to approach automation projects pragmatically: start from the process, not the technology, and build the smallest useful system that genuinely reduces friction.

Node.jsAutomationPlaywrightWorkflow

Published

March 2026

Reading Time

10 min read

Related Project

Workflow Automation and Internal Tools

01

Problem

Many repetitive workflows are attached to systems that were designed for manual use rather than automation. That creates brittleness, hidden failure points, and a temptation either to over-engineer the fix or settle for a script that is impossible to trust.

02

Approach

The better approach is to start with the workflow itself, identify where the real friction lives, and then design a narrow automation tool with clear inputs, predictable output, and visible failure behaviour.

03

Result

That produces smaller tools that are easier to maintain, easier to rerun, and far more likely to remain useful than a rushed automation layer built around guesswork.

Detailed Content

More detail behind the article.

Why Automation Often Goes Wrong

Automation work is easy to get wrong because the first instinct is often technical rather than operational. A developer sees a repeated task and immediately asks how to automate it, rather than whether that task is the real problem.

That leads to two common outcomes:

  • a fragile script that works only in ideal conditions
  • an overbuilt internal platform that solves far more than the workflow actually needs

Neither is especially useful over time.

Start With The Workflow

The more productive starting point is to inspect the process itself:

  • where is repetition happening?
  • where is a person re-checking something that could be surfaced automatically?
  • where is data difficult to access?
  • where is the workflow interrupted by browser steps or manual copying?

Those questions usually reveal that the most useful automation opportunity is smaller and more specific than the first idea.

Believable Automation Work

A believable automation project is not "an AI workflow engine". It is something practical:

  • scrape a schedule from a site with no API
  • submit a repeated browser form and collect the result
  • convert awkward outputs into structured data
  • generate a local summary for a dashboard, terminal, or status bar
  • sync two services that do not speak the same format

That kind of work reflects the way real friction appears.

Implementation Thinking

I tend to approach these projects with a few priorities:

  • clear input
  • clear output
  • predictable runtime
  • visible failure
  • easy rerun

That keeps the automation more trustworthy. It also keeps the tool proportionate to the problem.

Node.js and TypeScript are a strong fit because they allow small utilities to stay readable without sacrificing structure. Where the source system forces browser interaction, Playwright becomes the practical choice rather than a novelty.

Failure Matters

One of the most important parts of automation is what happens when the workflow changes. If a script works only while everything remains perfect, it is not especially useful.

That is why failure modes need to be part of the design:

  • what breaks if a page layout changes?
  • what happens if a field disappears?
  • what output is produced when a job partially succeeds?
  • how will the operator know what went wrong?

These questions make the difference between a one-off script and a tool that can actually be used.

Why This Matches My Goals

This kind of automation work fits my broader goals because I am interested in reducing friction through software. Sometimes the right answer is a larger application. Sometimes it is a small script or service that quietly removes repetition from a process.

In both cases, the core idea is the same: build something proportionate, useful, and maintainable.

Result

The result is a believable body of tooling work that demonstrates judgment, not just technical capability. It shows that I care about how work happens in practice and that I prefer solutions that genuinely improve the workflow over ones that simply sound more ambitious.

Related Articles

More writing on development, systems, and delivery.

Case Study

Building a Client Portal That Reduces Delivery Friction

How a client portal can improve freelance delivery by combining project context, invoices, files, and communication into one structured system.

Systems Thinking

Designing Software Around State and Responsibility

Why operations-focused applications become clearer when they are designed around status, ownership, and process transitions instead of generic page structures.

Shane Gifford

Manchester-based web developer focused on practical full-stack applications, functional minimalist systems, and workflow-aware tooling.

Modern web applications

Backend workflows and APIs

Functional minimalist systems

Built for practical, well-structured software

© 2026 Shane Gifford