Quality used to mean “does the code work?” That definition dies somewhere between the 50th and the 100th developer on a single product. Long before any team-lead notices, the code is correct in production and the system is broken in the org chart — the change you shipped on Tuesday works perfectly, but it broke the contract three teams over read on Monday. The defect is not in the code. The defect is in the seam. Software quality, at the 100+ developer regime, stops being a property of code and becomes a property of seams.
This post is a reframe for engineering directors, VPs of engineering, and engineering managers who own a single application worked on by 100 or more developers. It is built on three frames — Conway’s law (1968), the Team Topologies cognitive-load lens (Skelton & Pais, 2025), and DORA’s four delivery metrics — and it closes with a manager’s playbook: what to measure, what to change, what to stop measuring, and the one question that separates an organisation that is improving quality from one that is merely paying for the appearance of it.
If you are at 30 developers, this post is a forecast, not a diagnosis. The four failure modes below start becoming visible at 30–50 and become acute at 100+. Read the reframe, take notes, and apply the playbook when the seams start to creak.
Two definitions of software quality
Small-team definition (works at 1–30 developers): Does the code work in production?
Large-team definition (the post’s working definition, 50+ developers on a single product): Does the system let 100 people change it on Monday without breaking the customers’ Tuesday?
These are not the same property. The first is a property of code. The second is a property of seams — between teams, between services, between the team graph and the deployable surface. The rest of this post works the second definition.
Quality is a System Property
Most engineering leaders who handle the 100+ transition handle it well only when they can name which ring is the bottleneck at each inflection point. The rings are not the same; the bottleneck is not the same; the owner is not the same.
The diagram is read from the inside out. Each inner ring is a precondition for the outer ring to function. The headline claim of this post is that system quality is the property that breaks between 50 and 200 developers on a single product. The reader who manages an application above that threshold is reading this post because the system is failing them, not because the code is failing them.
The cost of getting this wrong is real. The Consortium for IT Software Quality puts the annual cost of poor software quality in the United States at over two trillion dollars as of their most-recent estimate. The cost is concentrated in the system-quality ring. You cannot fix it by hiring more testers.
The Four Failure Modes
Above 100 developers on a single product, software quality failure stops being a long tail and starts being a taxonomy.
1. Conway’s-Law Drift
Conway’s 1968 paper is one sentence long and the rest of the field spends fifty-eight years trying to outrun it: organisations design systems that mirror their communication structures. The implication for a 100+ developer org is that the system’s shape is always a snapshot of last quarter’s team graph. If the team graph changes faster than the ownership boundaries, the system drifts into a polyglot-mess by accident. The failure mode is drift, not error: the team graph is moving but the CODEOWNERS file is not.
The cheapest Conway intervention
The team boundary is the ownership boundary. If your monorepo’s CODEOWNERS file does not match your team graph, the system will be polyglot-mess by accident. The first thing to fix is not the system — it is the map. See the Architecture Decision Log guide for the cheapest intervention.
2. Cognitive-Load Overflow
Skelton and Pais’s Team Topologies (2nd edition, 2025) gives the second failure mode a precise name. A stream-aligned team has a cognitive load: the total mental effort required to manage the team’s concern. Load comes in three forms — intrinsic, extraneous, and germane. When the sum exceeds the team’s capacity, the team does not slow down — it subtracts from organisational velocity.
The rule-of-thumb from the field is that a stream-aligned team overloaded beyond roughly six concurrent concerns starts to subtract velocity. Most 100+ developer orgs are running every team at eight, ten, twelve concurrent concerns. The original Technical Debt post describes the code-level compound-interest mechanic; cognitive-load overflow is the team-level analog.
3. Federated Quality
Quality is a property of the seam between teams. If no team owns the seam, no team’s owner has the system as their concern — and defects emerge from the gaps in ownership. Federated quality is what happens when each team is responsible for “their” code, but no team is responsible for the contracts between their code and the rest of the system.
The frame is borrowed from the DORA research program (Forsgren, Humble, Kim — Accelerate). The four metrics are system-level by construction: they cannot be measured by looking at one team’s PRs in isolation. This is the failure mode that the original post on anti-patterns warns about from the individual-engineer vantage.
4. Incentive Inversion
The fourth failure mode is the one that survives everything else. If the team-level metric is the DORA change fail rate, but the manager-level review is the individual velocity of each engineer, the global optimum is unreachable. Ron Westrum’s typology of organisational cultures — published in Complexity in 2004 — names this dynamic as a pathological organisational culture.
The most common version of this in 2026 is the team that has adopted DORA but still rewards individual velocity in the calibration cycle. The metrics say we are an elite performer; the org-chart reality says we are rewarding the wrong thing. This is the failure mode that the Shift-Right, Shift-Left post implicitly warns about.
DORA: The Canonical Measurement Frame
For software delivery performance, the canonical measurement frame is the one that has survived a decade of peer-reviewed replication. The DORA program — the longest-running study of high-performing technology organisations in the world — has produced four metrics, and together they are the only set with the empirical track record to back the claim of being the canonical set.
The four metrics are:
- Lead time for change — from a mergeable commit to running in production.
- Deployment frequency — how often the organisation ships to production.
- Mean time to restore (MTTR) — how long a production incident takes to resolve.
- Change fail rate — the percentage of production changes that cause a service degradation.
The four metrics are system-level by construction. None of them can be measured by looking at one team’s PRs in isolation. The DORA program publishes the elite-vs-low gap every year in its State of DevOps report. As of the most-recent report available at the time of writing, elite performers deploy roughly 208 times more frequently than low performers, recover from outages 2,604 times faster, and have a change fail rate that is one seventh of the low-performer rate. The qualitative claim — elites ship more frequently, recover faster, and fail less often — is the load-bearing one.
Team Topologies: Why Headcount Stops Helping
Why is it that adding people past 100 does not add velocity? The intuitive answer — communication overhead — is correct but imprecise. The precise answer is that the team is overloaded, and an overloaded team has nothing left to give to the marginal contributor.
The cognitive-load frame matters because it tells the manager what to fix. The conventional fix for “we are not shipping fast enough” is to hire more engineers. The cognitive-load frame says: the problem is not the number of engineers, it is the intrinsic load per team. The fix is to lower the load — by splitting the team, by removing extraneous load, by moving concerns to a platform team — not by adding more engineers.
This is the point at which the Team Topologies vocabulary earns its place. The four team types and the three interaction modes give the manager a vocabulary for redesigning the team’s load.
Conway Applied at 100
Conway’s law is most useful as a diagnostic and least useful as a prescription. Pick any service in your architecture. Find the team chart. Ask: which team owns this service? If the answer is “two teams, jointly” or “the platform team, but stream-aligned team X owns the data model” — Conway-drift is in play. The fix is not to redesign the service. The fix is to redesign the team graph so that the ownership boundary is unambiguous.
The cheapest concrete intervention is the Architecture Decision Log — when the team graph changes, an ADR records the change, and the architecture follows. The post on Architecture Decision Logs is the operational version of this argument.
The diagram is read as two parallel paths. The left path is the discipline — the team graph maps cleanly to CODEOWNERS. The right path is the drift — the team graph is moving but the CODEOWNERS is not.
See It in Your Own Numbers
The four failure modes are easier to recognise than to measure. The calculator below is a quick diagnostic. It uses the proxy that every engineering manager already has: team size, sprint cadence, defect-escape rate. The output is per-developer weekly review load, and the traffic-light is a published heuristic against the DORA elite-performer picture.
Try the trade-off — your numbers, today
Reading: Red — review-overload mode (per the published heuristic in the script below).
The default values (team_size=100, cadence=2 weeks, defect_pct=8) are the typical 100+ developer org. The output (57.1 → Red) is not a bug — it is the diagnosis.
Take the 90-Second Self-Assessment
The second diagnostic is for the incentive-inversion failure mode — the one that survives every other intervention. Twelve yes-or-no questions across the four failure modes. The output is your organisation’s posture on Ron Westrum’s typology of organisational cultures (Reactive / Local / Federated / Generative). If you want a quick read on which failure mode is most active for your team, this is the second-fastest diagnostic in the post.
Engineering Director's 12-question self-assessment (click to expand)
—
—
The self-assessment is a single click — twelve questions, one answer. The quadrant reading is a one-line summary of where you are on Westrum’s typology.
The Manager’s Playbook
The four-element table. Each element is sized to fit inside one quarter, and provable inside the manager’s existing authority — no re-org required.
1. What to Measure
The four DORA metrics, in priority order. Each metric catches one (or more) of the four failure modes described above.
| DORA metric | The failure mode it catches | Why this metric |
|---|---|---|
| Lead time for change | Conway-drift | Slow merge-to-production means the seams are too thick. |
| Deployment frequency | Conway-drift / federated quality | Low frequency means the seams are not being exercised. |
| Mean time to restore (MTTR) | Cognitive-load overflow | High MTTR means the on-call team is overloaded. |
| Change fail rate | Federated quality / incentive inversion | High fail rate means the seams are not being tested. |
If you cannot report any one of these four numbers today, that is the first thing to fix. Lead time and change fail rate are the two most diagnostic.
2. What to Change
The four failure modes, in priority order, with a ≤ 90-day intervention each that does not require a re-org.
| Failure mode | ≤ 90-day intervention | Why this works without a re-org |
|---|---|---|
| Incentive inversion | Switch manager-level review to team-level DORA metrics; sunset individual velocity as a primary signal. | Operating-model change inside the existing org chart. |
| Federated quality | Name a single team that owns cross-team contracts; publish a system-level DORA dashboard at the leadership level. | Authority delegation, not re-org. |
| Cognitive-load overflow | Run a cognitive-load audit on every stream-aligned team; reduce the highest team’s concern count to ≤ 6. | Team-shape change, not org-shape change. |
| Conway-drift | Make CODEOWNERS-mirrors-team-graph a CI check; make every team-graph change an ADR. | Repo-level discipline, not org-level change. |
The order is not arbitrary. Incentive inversion is first because all four failure modes are made worse by an incentive that rewards the wrong thing. The last is Conway-drift because the fix is the most mechanical — it requires the discipline of writing ADRs and updating CODEOWNERS.
3. What to Stop Measuring
Four counter-metrics that are inversely correlated with quality at scale.
| Counter-metric | Why it is inversely correlated with quality at scale |
|---|---|
| Lines of code (LOC) | Rewarding LOC rewards verbose code, not correct code; the highest-density modules ship the fewest lines. |
| PR count per developer | Rewarding PR count rewards small / split PRs over well-designed end-to-end changes. |
| Individual velocity (story points / cycle time as individual metric) | Rewarding individual velocity rewards work that should be a team responsibility. |
| Code coverage percentage (as a target) | Rewarding coverage as a target rewards tests that exercise assert true — defect-free code, brittle tests. |
The four counter-metrics are seductive because they are easy to measure. The four DORA metrics are harder to instrument but are the right shape of feedback.
4. The One Question
A single diagnostic sentence the manager can ask a peer or an engineering manager in a 1
. The answer reveals which of the four failure modes is most active for that team.“When did your team last ship a change that another team did not know about until it was in production?”
If the answer is “this quarter”, the failure mode is Conway-drift. If the answer is “this month”, it is Conway-drift and federated quality. If the answer is “we don’t know — we don’t measure that”, the failure mode is incentive inversion. If the answer is “never”, the team is in the Generative quadrant of the self-assessment and the playbook is precautionary.
The question is calibrated to be asked in a 1
without sounding like an audit. It is intentionally phrased to be falsifiable — “the last time we did not know” is searchable in the team’s incident history.References
The post’s three frames are not the author’s invention. They are three of the most-replicated findings in software engineering. The references below are the minimum citation footprint to make the claims defensible.
- DORA — DevOps Research and Assessments — the program that produced the four-metric measurement frame this post treats as the canonical set. The annual State of DevOps report is the data source for the elite-vs-low gap figures cited above.
- Forsgren, Humble, Kim — Accelerate — the academic publication of the DORA research; the four metrics’ empirical foundation.
- Skelton, Pais — Team Topologies, 2nd Edition (IT Revolution, 2025) — the cognitive-load frame; the four team types and the three interaction modes.
- Conway, M. E. — “How Do Committees Invent?” (Datamation, April 1968) — the original paper; one sentence long and loaded.
- Westrum, R. — “A Typology of Organisational Cultures” (Complexity journal, 2004) — the Reactive / Local / Federated / Generative typology used by the self-assessment.
- Consortium for IT Software Quality (CISQ) — “The Cost of Poor Software Quality in the US” — the empirical anchor for the “two trillion dollars” cost-of-poor-quality figure cited in §2.
If you are at 30 developers, this is a forecast, not a diagnosis
The four failure modes are predictive at 30–50 developers and acute at 100+. Read the reframe, take notes, and apply the playbook when the seams start to creak.
Closing
Software quality at the 100+ developer regime is a property of seams, not a property of code. The four failure modes are not new. The playbook is not new. The four DORA metrics are not new. What is new is the combination: the four failure modes together, the DORA frame as the diagnostic, and the playbook as the intervention — applied to a regime the original sources did not specifically address.
The umbrella term is system quality. The term is this post’s invention for the purpose of the argument — quality as a property of the seams between teams.
The post, in one sentence
“Hiring more testers does not fix a system-quality problem — and, at 100+ developers, the system-quality problem is the only problem that matters.”
Comments
Please accept the "Functionality" cookie category to view and post comments.
Comments failed to load. You can try again or view the discussion directly on GitHub.
View on GitHub