Developer productivity metrics
Measuring individuals produces gaming and damages trust; measuring the system produces improvement. The useful metrics describe how quickly and safely changes reach users.
Method
- Measure the delivery system, never individuals. Lines of code, commits, and story points are proxies that reward the wrong behaviour (see support-analytics for the same trap).
- Track lead time from commit to production. It captures every queue and manual step, which is where most delay lives.
- Track deployment frequency and change failure rate together. Speed without stability is not improvement, and the pair prevents optimising one at the other's expense.
- Measure time to restore. How quickly a bad change is recovered matters more than preventing every bad change (see incident-severity-levels).
- Add developer-reported friction. Surveys catch what telemetry cannot, such as unclear ownership and painful local setup.
- Segment by team and service. Aggregates hide the one team blocked by a specific bottleneck, which is the actionable finding.
- Use metrics to find friction, not to compare teams. Comparison invites gaming and ignores genuinely different contexts.
Boundaries
These metrics describe delivery and say nothing about whether the right things are being built. They are easy to game if tied to evaluation, which destroys their value. Small teams have noisy numbers that mislead when read weekly.