Software Development Metrics
How do you know the engineering is getting better — not just busier?
The Engineering Quality Benchmarks define thresholds. This page tracks whether you're hitting them. Without both, standards are static checklists. With both, Deming's loop runs: Plan (set the threshold) → Do (build to spec) → Check (measure here) → Act (update the standard).
The Loop
STANDARDS (eng quality benchmarks) → defines "module count < 200 per route"
↓
BUILD (best practices) → developer follows checklists
↓
DETECT (anti-patterns) → catch violations before they compound
↓
MEASURE (this page) → did we hit the threshold?
↓
BETTER STANDARDS → benchmarks evolve
Leading Indicators
Predict engineering quality before users encounter problems.
| Metric | Threshold | Tool | Cadence |
|---|---|---|---|
| Modules per route | <= 200 | Module count script | Every build |
| JS bundle per page | <= 200KB gzipped | next build output | Every deploy |
| Full typecheck | 0 errors | tsc --build | Every PR |
New any or @ts-ignore | 0 added per PR | Grep diff | Every PR |
| Module boundary violations | 0 on nx lint | ESLint | Every PR |
eslint-disable count | Trending to 0 | Grep + track | Weekly |
export * outside entry-points | 0 instances | Grep | Weekly |
composite: true compliance | 100% of lib tsconfigs | Grep | After config changes |
| Build time (affected) | <= 60 seconds | CI timing | Every PR |
| Dev server cold start | <= 15 seconds | Local measurement | After dependency changes |
Lagging Indicators
Confirm engineering quality through delivery outcomes. These are DORA metrics — the industry standard for software delivery performance.
| Metric | What It Reveals | Threshold | Tool |
|---|---|---|---|
| Deployment frequency | How often you ship | Daily or more (Elite) | CI/CD pipeline |
| Lead time for changes | PR open to production | Under 1 day (Elite) | Git timestamps |
| Change failure rate | How often deploys break | Under 5% (Elite) | Incident tracking |
| Mean time to recover | How fast you fix breaks | Under 1 hour (Elite) | Incident tracking |
| Cycle time | Code to merged PR | Under 24 hours | Git + review tooling |
| Code churn rate | Rewrites within 2 weeks | Under 15% | Git analysis |
| Build cache hit rate | Nx cache effectiveness | >= 80% | Nx Cloud or CI stats |
Monitoring Cadence
| Frequency | What to Check |
|---|---|
| Every PR | Type errors, boundary violations, new any usage, bundle size diff |
| Every deploy | Module count per route, build time, cache hit rate |
| Weekly | eslint-disable count, barrel hygiene, export * audit |
| Monthly | DORA metrics, cycle time trends, code churn rate |
| Quarterly | Full engineering quality audit against benchmarks, review which thresholds need updating |
Feedback Path
When metrics reveal patterns, update the standard:
| Pattern | Action |
|---|---|
| Module count consistently under 100 | Tighten threshold |
| Build time creeping above 60s | Audit dependency graph for new barrel blowouts |
eslint-disable count increasing | Block PRs that add new disables without justification |
| A threshold is always met effortlessly | Automate it (CI check), remove from manual checklist |
| A threshold is never met | Either fix the system or adjust the threshold with justification |
| DORA metrics stalling | Trace bottleneck — usually review turnaround or flaky tests |
If the system always prevents the violation, stop checking manually and let CI enforce it.
Dig Deeper
Developer Activity
Who is winning the race to attract developers?
Developer Experience
How easy is it to fall into the flow for optimum productivity?
Repository Quality
How do you know repositories are fast AND predictable?
Context
- Repository Quality — Runtime + consistency scorecard for data access layers
- Engineering Quality Benchmarks — The thresholds being measured
- Engineering Anti-Patterns — What to detect and eradicate
- Product Design Metrics — Parallel metrics for visual quality
- Best Practices — Pre-deploy quality gates
- Standards — Why measurable thresholds matter
- Process Optimisation — PDCA loop mechanics
Questions
When deployment frequency is elite but change failure rate is rising, is the team shipping faster or breaking faster?
- Which leading indicator in this table is the earliest warning of an engineering anti-pattern compounding — and are you checking it at the right cadence?
- If a threshold is never met, when do you fix the system versus adjust the threshold — and who makes that call?