Every engineering lead eventually gets asked the same question by someone one level up: "How productive is the team?" And every honest answer starts with a flinch, because most of the numbers within reach are the wrong ones. Lines of code, commits per day, story points burned, hours logged — they're easy to chart and easy to fake, and the moment a team knows they're being measured on one, that number stops meaning anything.
The problem isn't measurement. It's that we measure motion instead of delivery. A team can be furiously busy — commits flying, standups full, everyone at 100% utilization — and still ship nothing that matters. The metrics that survive contact with a real team all have one property in common: they describe the system, not the individual, and they're hard to improve without actually improving the work.
Here's the short list worth putting on a dashboard, the longer list worth deleting, and how to read either without turning your team into number-gamers.
The four that actually mean something
These four map closely to the well-worn DORA and flow research, but you don't need a framework to justify them. Each one answers a question a stakeholder actually cares about, and each is genuinely hard to game.
- Cycle time — how long a unit of work takes from "started" to "done." Not from creation (that includes backlog rot you don't control), but from the moment someone picks it up. This is the single most useful number an engineering team can watch. It goes up when work is too big, when handoffs stall, or when reviews sit. It's the metric that tells you where your process leaks.
- Deployment frequency — how often you ship to production. A team that ships daily has fundamentally different feedback loops than one that ships monthly, regardless of headcount. Rising frequency almost always means batch sizes shrank and confidence grew.
- Change failure rate — what fraction of deploys cause an incident, rollback, or hotfix. This is the counterweight to frequency. Shipping fast is worthless if half of it breaks. Watched together, these two stop either from being gamed.
- Throughput — the number of work items completed per week. Deliberately count, not points. Points invite estimation theater; a raw count of finished work is harder to inflate and, averaged over a few weeks, is a stable planning input.
Notice what's missing: anything measured per person. All four are team-level, and that's the point. The instant you rank individuals by any of them, you've taught your smartest engineers to optimize the metric instead of the product.
The five to stop tracking today
| Metric | Why it looks useful | Why it backfires |
|---|---|---|
| Lines of code | "Output," visible in every diff | More code is a cost, not a win; rewards bloat, punishes deletion |
| Commits per day | Easy to pull from git | Rewards commit-splitting; says nothing about value shipped |
| Story points completed | Feels like velocity | Points are relative and inflatable; teams quietly re-baseline |
| Hours logged / utilization | Maps to "effort" | 100% utilization guarantees zero slack — queues explode |
| Individual ticket counts | "Who's pulling weight" | Punishes the senior who unblocks four people instead of closing tickets |
The utilization one deserves a special mention because it's the most seductive. It feels obvious that a fully-booked team is an efficient team. In practice, a system run at 100% capacity has no room to absorb variance, so every surprise turns into a queue — and cycle time balloons. The same reasoning is why work-in-progress limits work: capping concurrent work is often faster than maxing it out. We wrote about that trade-off in WIP limits that actually work, and it's the same lesson wearing a different hat.
Read the trend, never the number
A single week's cycle time tells you almost nothing. The signal is always in the shape over time.
- A rising cycle time with flat throughput means work is getting stuck, not smaller. Look for a bottleneck column on the board — usually review or QA.
- A spike in change failure rate after a frequency jump means you shipped faster than your safety net could stretch. Slow down or invest in tests before pushing frequency higher.
- Throughput that swings wildly week to week usually means inconsistent work sizing, not an inconsistent team. Break big items down.
This is exactly what burndown, velocity, and cumulative-flow charts are for, and it's why Reports in your.team draws them as trends by default rather than headline scores. A cumulative-flow diagram makes a growing queue visually obvious — the "in progress" band fattens before cycle time ever shows it in a table. You catch the stall a week early.
Make the metric a byproduct, not a task
The fastest way to poison a metric is to make people enter data specifically to produce it. If tracking cycle time means engineers have to remember to move a card and log a timestamp, the data will be late, wrong, and resented. Good metrics fall out of work people were already doing.
That's the whole design goal behind keeping tracking keyboard-first and in-context. When moving an issue across a board is a single keystroke inside the tool you already live in, the timestamps are accurate because nobody had to think about them. The same applies to sprint data: if sprint planning and execution happen in the same place, velocity and burndown are computed from real state, not from a status meeting someone transcribed afterward.
A quick sanity test for any metric you're considering: could a team improve this number without improving the product? If yes — as with lines of code, commits, or logged hours — drop it. If the only way to move the number is to genuinely ship better and faster, keep it.
A dashboard worth showing upward
When that question comes from above, resist the urge to build a twelve-widget dashboard. Four charts answer it honestly:
- Cycle time, trended over the last 8–12 weeks
- Deployment frequency, same window
- Change failure rate, same window
- Throughput per week, as a raw count
That's enough to tell a true story: are we getting faster, are we staying stable, and is the volume holding. It resists gaming, it doesn't single anyone out, and it points at the process when something's wrong — which is almost always where the fix lives. Everything else is decoration, and decoration is where trust goes to die.
Productivity was never really the question. Predictable, sustainable delivery was. Measure that, and the "how productive are we" conversation gets a lot shorter — and a lot more honest.
Want burndown, velocity, and cumulative-flow charts that read as trends instead of scoreboards? See what Reports does, check the pricing, and start free — your first four metrics are one keyboard away.