Skip to content

11 years of lessons, 5 years of ladder

SDODS did not begin in 2027. It begins in 2015, with a suite that only ran on one machine. Every year since left something behind, and the five ahead are what those lessons add up to: one ladder, where each year buys a level of confidence the year before could not.

One road from 2015 to 2030: 11 small stops grouped into the grid years, the pipeline years, the agent years, then the five years of the ladder drawn as the SDODS mark unrolled, with today marked on 2027The grid yearsThe pipeline yearsThe agent years2015–2025today2026level 12027level 22028level 32029level 42030level 5

The road here · 20152025

Nothing was released in these years, so this is lineage rather than a changelog. Each one records two things you can check for yourself: what the tooling actually did that year, dated against its public releases, and the design decision it left behind that you can point at in the product today.

The grid years

20152018

Automation ran where it was written, and nowhere else.

MaxiThe whole problem shows up in the first year and then sits there for a decade: the test knows exactly what happened, and the report does not.
An engineer beside a rack of browser windows, one of them failed, asking a question mark because the report says nothing more?
  1. 2015

    The start

    A suite that only ran on one machine

    Selenium WebDriver and a Jenkins box were the whole stack. Scenarios were pinned to CSS selectors, run on a grid somebody maintained by hand, and a failure arrived as a red line and a stack trace.

    SDODS carries. One project per application, with its own environments and its own config — because a suite that borrows another team’s settings is a suite that breaks on Mondays.

    • Selenium WebDriver
    • Cucumber-JVM
    • Jenkins
    • Page objects
  2. 2016

    A standard

    The browser gets a standard, the report does not

    Selenium 3.0 shipped in October and pushed everyone towards the W3C WebDriver protocol. Browsers finally agreed on how to be driven. Nothing agreed on how to explain a failure.

    SDODS carries. A layered step library: one phrasing style across UI, API and hybrid flows, so a change of driver never rewrites the scenarios on top of it.

    • Selenium 3.0
    • W3C WebDriver draft
    • Hosted browser grids
    • Gherkin
  3. 2017

    Headless

    The browser stops needing a screen

    Headless Chrome landed in June, Puppeteer in August, and Cypress arrived arguing the runner belongs inside the browser. PhantomJS was retired by its own maintainer.

    SDODS carries. Screenshots as a first-class artefact rather than a debugging afterthought: if nobody is watching the browser, the run has to keep the pictures.

    • Headless Chrome 59
    • Puppeteer
    • Cypress
    • Containers in CI
  4. 2018

    Below the UI

    The cheapest question stops being asked through a browser

    W3C WebDriver became a Recommendation in June. Contract testing and API-first suites grew, because driving a browser to check a total was the slowest possible way to ask a cheap question.

    SDODS carries. API seeding and hybrid scenarios — arrange the state over HTTP, assert it in the UI, and never click through a five-step wizard to build a fixture.

    • W3C WebDriver Rec
    • Contract testing
    • OpenAPI 3
    • API-first suites

The pipeline years

20192022

CI became the only machine that counted.

MaxiOnce the pipeline is the only machine anyone trusts, two things have to be able to explain themselves — the configuration, and the failure.
A build pipeline of four stages on a belt, the third one amber and retrying, with an engineer watching a clock
  1. 2019

    Pipelines

    CI becomes the only machine that counts

    GitHub Actions went generally available in November and the pipeline moved into the repository. From here on “works on my laptop” stopped being a defence and started being the bug report.

    SDODS carries. Six-layer configuration precedence that can name the exact file every value came from — the answer to staging and CI quietly disagreeing.

    • GitHub Actions
    • Pipelines as code
    • Ephemeral runners
    • Matrix builds
  2. 2020

    One API

    Three browsers, one API, no sleeps

    Playwright’s first release in January brought auto-waiting and a single API across Chromium, Firefox and WebKit. Teams went remote the same season, and shared run history became the only place anyone met.

    SDODS carries. Playwright underneath, not one sleep in the step library, and a cross-browser matrix that is a flag rather than a fork of the suite.

    • Playwright
    • Auto-waiting
    • WebKit and Firefox parity
    • Remote-first teams
  3. 2021

    Evidence

    A failure starts explaining itself

    The Playwright trace viewer arrived in June and a failed run began shipping with its evidence attached, instead of a log to reconstruct the failure from. Visual baselines went mainstream beside it.

    SDODS carries. Before-and-after screenshots on every UI step with a pixel diff, and a heal record that says which strategy found the element. Level 1 of the ladder is this idea, finished.

    • Trace viewer
    • Visual baselines
    • Pixel diffing
    • Step-level capture
  4. 2022

    Flake

    Flakiness gets a name and a number

    Suites got large enough that retries stopped hiding the problem, and quarantine, flake rate and per-test ownership entered the vocabulary. In November ChatGPT arrived and every roadmap in the industry was rewritten.

    SDODS carries. Run history in a real database — SQLite or Postgres on one schema — so a flaky test is measured across runs rather than remembered by whoever was on call.

    • Quarantine and budgets
    • Flake rate metrics
    • Test impact analysis
    • ChatGPT

The agent years

20232025

Writing tests got cheap. Trusting them did not.

MaxiGeneration was never the hard part. Reviewing the output in an amount of time a human actually has is the hard part, and that is why SDODS writes proposals.
A robot producing a tall stack of generated tests while a reviewer holds up a hand, with one page marked accepted
  1. 2023

    Generation

    Models can write tests. Nobody trusts them

    GPT-4 in March made test generation almost free, and the bottleneck moved the same week: reviewing a hundred generated scenarios you did not ask for is slower than writing the ten you did.

    SDODS carries. Proposals. An agent writes, a person accepts, and nothing edits your working tree unasked — the rule every SDODS agent is held to.

    • GPT-4
    • Generated scenarios
    • Self-healing locators
    • Assistants in the editor
  2. 2024

    Tools

    Assistants learn to read your project

    The Model Context Protocol was published in November, and an assistant could be handed real tools against a real project instead of guessing from a file somebody pasted into a chat window.

    SDODS carries. The SDODS MCP server: projects, features, steps, runs and results exposed as tools, so an assistant reads your suite rather than a generic one.

    • Model Context Protocol
    • Tool-using agents
    • Local models
    • Structured output
  3. 2025

    Maintenance

    The expensive half turns out to be upkeep

    Agentic coding became ordinary. Writing tests got cheap enough that the costly part was finally unmistakable: keeping a large suite alive while the application underneath it moves.

    SDODS carries. Five agent roles — planner, generator, healer, upgrader, reviewer — and a healer that records why a locator healed, so the repair is reviewable instead of magic.

    • Agentic coding
    • Locator drift repair
    • Review-first workflows
    • Agents over MCP

The ladder

Five levels, in order, because each one rests on the one below. Find where your team stands today and the next rung is the one worth arguing for.

  1. 1

    Evidence

    Failures explain themselves

    Available today

  2. 2

    Shared truth

    One history the team trusts

  3. 3

    Self-maintaining

    The suite repairs itself

  4. 4

    Orchestrated

    Checks and releases meet

  5. 5

    Governed

    Sign-off is auditable

2026

Level 1 · EvidenceShipped

You can defend a release without being the person who remembers.

Every scenario is tied to a business capability, every run reproduces from one command, and every failure carries the screenshots and requests that caused it.

What ships

  • BDD across UI, API and hybrid flows with one merged fixture set
  • Before and after screenshots for every UI step, with a pixel diff
  • Self-healing locators that record why they healed
  • Run history in SQLite or Postgres, switchable with one flag
  • Recorder, HAR replay, MCP server, agents, web UI, GitHub and Jira

Milestone. Fourteen phases delivered, installable in one line.

A tester holding up a report that pairs a before and after screenshot with a passing verdictbeforeafter
MaxiEverything on this rung runs today — the two screenshots either side of a failed step, the heal record, the run history. If a claim on this page has no test behind it, it should not be on this page.

2027

Level 2 · Shared truthBeing built

Everyone reads the same history, so no one relitigates a failure.

Run history moves off laptops and into one place your whole team signs into, with the flaky tests named and budgeted rather than argued about.

What ships

  • Hosted run history with single sign-on and existing roles
  • Cross-platform visual baselines, so CI and laptops agree
  • Flake budgets, automatic quarantine and a weekly digest
  • Per-scenario network fixtures for offline suites
  • Scheduled runs with change-aware selection

Milestone. A stable 1.0 with a compatibility promise for the CLI and the run format.

Three teammates looking at one shared dashboard, signed in behind a single key
MaxiThis is the rung being built right now, and it is named after one sentence: two people looking at the same failure should see the same evidence, without either of them being the person who remembers.
The SDODS dashboard listing recent runs with their pass rate and duration
The run dashboard, today. Not a mockup.
A run opened to its scenarios, grouped by module, with status, browser, tags and a linked issue
One run, every scenario, grouped by the capability it covers.

2028

Level 3 · Self-maintainingDirection

The suite repairs itself and tells you what it changed.

Maintenance is the reason automation dies. Agents take the repetitive half and leave a reviewable pull request instead of a surprise.

What ships

  • Agents open pull requests for locator drift, with the heal history as evidence
  • Coverage gaps found by comparing real traffic against covered journeys
  • Test data synthesised per environment, with sensitive fields never leaving it
  • Failures clustered by cause, so one incident is one item and not forty
  • Suggested scenarios from a change set, ranked by the risk they cover

Milestone. Most locator drift is fixed and merged without anyone writing a selector.

A friendly robot mending a broken link with a wrench while an engineer watches with a coffee
MaxiDirection, not a date. Maintenance is what actually kills automation, so this is the rung where the agents have to earn their keep — as a pull request you can reject, never a silent fix.

2029

Level 4 · OrchestratedDirection

The checks, the approvals and the release live in one place.

Confidence is not only tests. It is who approved, what evidence they saw, and what the system did next, held together rather than spread across four tools.

What ships

  • Release gates that read the evidence and hold or pass a deployment
  • Approvals and sign-off recorded against the run that justified them
  • Event-driven workflows across environments, data and deployments
  • Environment provisioning hooks, so a suite can create what it needs
  • Connectors for the trackers, chat tools and pipelines already in use

Milestone. The release gate becomes the record teams point at when asked why they shipped.

A release manager conducting three gates on a rail, with an approval stamp landing on the last
MaxiBy here the question has changed from “do the tests pass” to “who approved this, and what did they see when they did”.

2030

Level 5 · GovernedDirection

The people who sign off get an audit trail they trust.

Regulated teams need to show a chain from requirement to release. That chain is worthless unless it is complete, tamper-evident and exportable.

What ships

  • Policy as code: rules for tagging, coverage and approval, enforced at run time
  • Federation across organisations, with retention and residency controls
  • Evidence export shaped for auditors rather than for engineers
  • Private and on-premises agent runtimes for regulated environments
  • A signed trail from requirement through run to release

Milestone. An auditor can follow one requirement to one release without asking a human.

An auditor beside a shield holding a signed record that links a requirement to a release
MaxiThe last rung is for teams who have to prove it to somebody outside the room. Complete, tamper-evident and exportable — or it counts for nothing at all.

Value at a glance

The same five years, if you would rather read them as a table than scroll them.

YearLevelWhat you getProof it landed
20261 · EvidenceYou can defend a release without being the person who remembers.Fourteen phases delivered, installable in one line.
20272 · Shared truthEveryone reads the same history, so no one relitigates a failure.A stable 1.0 with a compatibility promise for the CLI and the run format.
20283 · Self-maintainingThe suite repairs itself and tells you what it changed.Most locator drift is fixed and merged without anyone writing a selector.
20294 · OrchestratedThe checks, the approvals and the release live in one place.The release gate becomes the record teams point at when asked why they shipped.
20305 · GovernedThe people who sign off get an audit trail they trust.An auditor can follow one requirement to one release without asking a human.

Everything up to 2025 is history, and belongs to the industry rather than to us. 2026 is shipped and verifiable today. 2027 is being built. The years after that are the direction we are steering, not a dated commitment, and feature requests move them.

How level 1 was built

Fourteen phases, each ending runnable and verified. The same table appears in the repository and the documentation.

PhaseScopeStatus
0Monorepo, config precedence, registry, CLI skeletondone
1API layer end to end (no browser)done
2UI layer, page objects, self-healing, dashboarddone
3Data providers, user pool, auth capture, hybriddone
4Screenshot narratives, NDJSONdone
5Database, ingest, switchdone
6Recorder and HARdone
7MCP serverdone
8Agents and insightsdone
9Server, schedulerdone
10Web UIdone
11GitHub, Jira, CI workflowsdone
12Onboarding analysis, processes, cross-browser matrixdone
13Documentation site, packaging, sdods initdone

Verified on the demo project

  • Unit and CLI end-to-end tests1391 passed, 1 skipped
  • Web UI component tests15 passed
  • Demo API layer, no browser10 passed, 0 failed
  • Types, lint and formattingclean
  • Linux visual, accessibility and performance suites@regression green on chromium, firefox and webkit
  • Documentation build4434 internal links across 100 pages, 0 broken

Next up

The nearest items, in the order they are likely to land. This list is shaped by what people ask for.

  • Every claim on this site is true
  • A first real release
  • CI and your laptop agree about a screenshot
  • A suite that runs with the network unplugged
  • Your idea — open a feature request