top of page

Build a Team Dashboard — Engineering Metrics & DORA, Part 8

  • Shawn West
  • Jul 28
  • 4 min read

Updated: Aug 20

Engineering Metrics & DORA · Part 8

A metrics dashboard nobody looks at is just a more expensive way to not know how your team is doing. The useful kind is small, trend-based, and discussed on a schedule — not a wall of forty gauges. This walks through building a team dashboard people actually use: which five numbers to start with, why trends beat snapshots, and how to keep vanity metrics off it.

Metrics in spreadsheets are dead. Metrics on a dashboard live. Visible to the team; informs daily decisions.

Before you start

  • Working instrumentation for at least two of the four metrics from Parts 2-5. A dashboard built on numbers you have not verified will be trusted for about a fortnight and then quietly ignored.

  • At least a quarter of history. A dashboard that can only show today teaches nothing, because every one of these numbers is only meaningful as a trend.

  • A decision about who this is for, made before you pick a tool. A team's working dashboard and an executive summary are different artifacts, and merging them produces something that serves neither — Part 10 is the other one.

  • A named owner. Dashboards decay silently: a broken data source shows as a flat line, which looks like stability.

Step 1: Start With Five Numbers (10 min)

Don't dashboard 50 things. Pick 5:

  • Lead time (median)

  • Deploy frequency

  • Change failure rate

  • MTTR

  • Open PRs awaiting review

Big numbers + trend. Glanceable.

Add more later if needed.

Step 2: Show Trends, Not Snapshots (10 min)

✓ Lead time over last 12 weeks (line chart)
✗ Lead time = 3 days (single number)

Trends tell a story:

  • Getting better?

  • Recent regression?

  • Volatile?

Snapshots invite arguing about the moment.

Step 3: Per-Team Views (10 min)

If the org has multiple teams:

  • Each team has their own dashboard

  • Common metrics across all

  • Per-team owners

Comparing teams: tricky. Different services have different risk profiles.

Use within-team trends > cross-team comparison.

Step 4: Pick Tools (10 min)

  • Grafana — flexible; needs setup

  • Datadog — integrated with metrics

  • Custom — your own React app pulling from APIs

  • LinearB / Swarmia / Cortex — paid engineering analytics

For a small team: Grafana free; works.

For larger: paid tools provide more out-of-the-box.

Step 5: Source the Data (15 min)

Most data sources:

  • GitHub API (PRs, reviews, deploys)

  • CI logs (deploy times)

  • PagerDuty / Opsgenie (incidents)

  • Survey tools (satisfaction)

# Pull GitHub PR data
prs = github.list_pulls(state="closed", since=last_month)
metrics = compute_metrics(prs)
store_in_db(metrics)

Schedule daily. Dashboard pulls from your store.

Step 6: Targets vs. Trends (10 min)

Some metrics have natural targets (DORA bands).

Others: just trends.

For targets:

  • Color-code (green / yellow / red)

  • Tied to band performance

For trends:

  • Show the line

  • Compare to prior period

Don't force targets on everything.

Step 7: Make It Visible (10 min)

- Channel pin in Slack
- Standup intro
- Office TV (or virtual)
- Linked from team wiki

Visible = remembered = improved.

Hidden behind 5 clicks = ignored.

Step 8: Discuss Regularly (10 min)

Weekly:

  • Glance at dashboard

  • Anyone notice anything?

  • Anything to investigate?

Monthly:

  • Deeper review

  • Set monthly improvement focus

Without ritual: dashboard is decoration.

Step 9: Avoid Vanity Metrics (10 min)

"Code lines per week": 50,000 ⬆️

So what?

Each metric must tie to a decision:

  • This tells us X

  • If it changes, we do Y

  • We track it for that reason

If no decision: drop it.

Step 10: Iterate the Dashboard (5 min)

Every quarter:

  • Which metrics did we actually use?

  • Which got ignored?

  • What did we wish we tracked?

Update. Don't fossilize.

The "perfect" dashboard is the one your team actually looks at.

What earns space, and what quietly ruins it

The constraint that makes a dashboard useful is that it is small. Every number you add costs attention from the ones that matter, so each has to earn its place.

Element

Why it earns space

How it goes wrong

The four delivery metrics, as trends

They are the smallest set that describes both speed and stability, and they resist gaming at team level

Shown as a current value with no history. A number without a trend cannot be acted on

A distribution, not just a median

The tail is where the user pain and the on-call pain live

Only the mean is shown, so one four-hour incident disappears into an average

Open PRs awaiting review

It is the flow blockage most within the team's control, visible today

It becomes a per-person leaderboard, and you have built the anti-pattern from Part 7

Annotations for known events

An incident, a migration or a team change explains most step-changes

Absent, so every anomaly gets re-litigated from memory in the next review

A data-freshness indicator

A stale pipeline looks exactly like a stable team

Omitted — the most common way a dashboard lies without anyone noticing

Targets

Sometimes useful for a specific improvement effort with an end date

Left up permanently, at which point the target becomes the goal and the metric stops measuring

You're done when

  • Every number on the dashboard traces to a query you can run yourself, and you have checked at least one against the raw data by hand.

  • Every metric shows history, and the dashboard makes it obvious when the data last updated — so a broken feed cannot masquerade as a flat trend.

  • Nothing on it is attributable to an individual, and you can point to a decision someone made because of something they saw on it. If no decision has come from it, it is a wall poster.

What You Just Did

Team dashboard: 5 numbers, trends, per-team, tools, data sources, targets, visible, discuss, no vanity, iterate. Dashboards that drive action.

Common Failure Modes

50 metrics; nobody reads. Visibility lost.

Snapshot numbers; no trend. Arguments about the moment.

Cross-team comparison. Resentment.

No discussion ritual. Dashboard decorative.

Same dashboard for years. Stale; ignored.

Sources

Continue the Engineering Metrics & DORA path

Part of the Engineering Metrics & DORA learning path.

bottom of page