Skip to content
Time to Signal

All notes  /  Reference

What a Working Setup Looks Like

A description of the end state, assembled from everything in these notes, as a checklist to measure a plan against.

Reference

Rather than a summary, a description of the arrangement these notes point toward.

The loops

Editor feedback is subsecond, with an exclusion list that keeps generated code and build outputs out of the index.

Incremental local builds are seconds, and a second run with no changes does almost nothing.

A focused test run is seconds, and running one test in isolation does not boot the application.

Blocking CI gives a useful signal in minutes, with the slow checks running after merge.

Onboarding is a scripted command, tested on a clean image on a schedule.

The build

Inputs and outputs declared, correctly, with the build tool able to explain why a task re-ran.

A remote cache with a measured hit rate, populated from CI, read by developers.

Reproducible enough that two machines share cache entries, with the known exceptions documented.

A dependency graph with no cycles, a known longest path, and no god module.

Pinned toolchain versions, in files the tooling reads.

The tests

Per-test timings collected, with the slowest twenty as a standing report.

Flake rate computed automatically from retry data, reported weekly, trending down.

A quarantine with a cap and an expiry.

Selection with a safety net — the full suite still runs on the main branch — and an escape rate that is measured.

Setup shared where immutable, isolated where mutable.

The pipeline

Queue time reported separately from execution.

Cheap discriminating checks first, failing fast but reporting everything learned.

Blocking and non-blocking split deliberately, as a recorded risk decision.

Superseded runs cancelled.

A failure summary that names the failing test and the assertion before any log.

The measurement

Eight numbers, one page, weekly, with normal ranges and a sentence of interpretation each.

Aggregated at ingestion, with no per-developer attribution anywhere.

A published telemetry boundary that has been tested against a request and held.

A quarterly survey that produces a written response including what will not be done.

A scheduled benchmark that catches regression while it is still attributable.

The programme

A named owner with allocated time, permanently.

One finding at a time, owned, dated, re-measured, reported — including the null results.

A budget that ratchets down as improvements land.

Findings verified with developers before being reported upward.

Adoption measured, with the uncovered cases asked about rather than assumed away.

What it produces

Answers in minutes to questions that previously took an argument.

Changes that are measured rather than assumed.

A signal people trust, which is the point of the whole exercise.

None of this requires a large platform, and all of it requires an owner and a decision about what the programme is for.

Measuring the programme itself

Six questions, asked annually, that describe whether the arrangement works.

Can you answer where the time goes, in minutes rather than in a workshop?

Has a finding produced a change, been re-measured and been reported, this quarter?

Is the flake rate falling?

Has the telemetry boundary been tested by a request and held?

Do developers see the findings before management does?

Is the trend on your headline measure going the right way over four quarters?

A no to any of these names the work to do next, which is more useful than a maturity score.

What it costs to run

Ongoing, once the build is done, and it is less than most people expect.

One owner with allocated time, which is the real requirement.

A weekly one-page report.

A monthly look at the deferred list and the flake rate.

A quarterly survey and graph review.

A scheduled benchmark that runs itself.

None of this is a large commitment, and all of it is what separates a programme with a lasting effect from a project that had a good quarter.