When a Measure Becomes a Target
Dashboards go green while codebases rot - the opener of a fourteen-part series on measuring code quality and software delivery without staging the theatre that ruins both.
In reading order.
Dashboards go green while codebases rot - the opener of a fourteen-part series on measuring code quality and software delivery without staging the theatre that ruins both.
Two complexity metrics that look interchangeable and answer different questions - McCabe's 1976 path count is a testing instrument, SonarSource's cognitive score is a readability instrument, and only one of them earns a place in the merge gate.
The composite score that hides more than it shows and the percentage that translates code quality into money - where the maintainability index formula came from, why its logarithms flatten real problems, and how the technical debt ratio earns its place as a trend.
Measuring the lines between the boxes - afferent and efferent coupling, the instability ratio, Robert C. Martin's main sequence, and the cohesion metric that catches a class doing two jobs, plus where every one of them needs a human to overrule it.
Line, branch and condition coverage each assert less than you think - mutation testing is the honesty check that reveals whether your suite would actually notice a bug, and the thresholds worth enforcing are conventions, not laws.
Code churn, defect density and hotspot scoring - reading a repository's git history to find the files most likely to break next, and the thresholds I use to decide when movement has become rework.
Vulnerability density, severity-tiered remediation clocks and hotspot review coverage - running the findings backlog as an operational queue with owners and deadlines, not an annual scare.
DORA as it actually stands - five metrics since the 2024 report, benchmarks dated to their vintage, the 2025 archetypes, and the comparison warning printed on the tin.
The queue mathematics underneath delivery - one equation from 1961, Scaled Agile's six flow metrics rewritten in plain terms, and why the biggest delivery gains hide in the waiting rather than the working.
Why no single metric captures developer productivity - the SPACE framework's five dimensions in plain terms, the measure-at-least-three rule, and what I do about the two dimensions no dashboard can hold.
What Azure DevOps will measure for you and where it stops - the two clock definitions, the reactivated-item rule, how to read a cumulative flow diagram, and why Microsoft's own guidance points past its widgets to OData.
The team, the team lead and the executives need different slices of the same truth - what each audience should actually see, the numbers I put in front of a boardroom, and dashboard principles that skip the red-amber-green pantomime.
Eleven numbers that still haunt engineering dashboards - what killed each one, from Goodhart to queueing theory to changing fashion, and the one-line replacement carved on every headstone.
The series retrospective - what the AI-era evidence actually says with every figure dated and attributed, the nine characteristics of ISO 25010 as revised in 2023, and what I now gate differently when much of the diff was machine-written.