metrics for team contributions

SMART goals

The best goals have metrics associated to them, one method of setting goals is to make them SMART.

1
2
3
4
5
S - Specific
M - Measurable
A - Achievable
R - Realistic
T - Timebound

The M, and T of smart can be hard to quantify without overly intrusive metrics recording. Often time-recording is very poorly implemented and in SRE terms this “overhead”…

Administrative work not tied directly to running a service. Examples include hiring, HR paperwork, team/company meetings, bug queue hygiene, snippets, peer reviews and self-assessments, and training courses.

… can lead engineers to resent the metrics and the goals.

In an ideal world, the metrics that we use for measurable and timebound would be outputs of the existing tooling that our teams use. For example; team velocity reporting as view over the ticket tracking system.

Many engineering teams use github, so can we exploit it’s search syntax to get the stats for SMART goals?

We will focus purely on the “pull-request and issues” search syntax.

Docs here.

In the following sections I will use placeholders such as <username> to indicate where your info should be inserted.

All the PRs

1
is:open is:pr involves:<username> archived:false

involves shows all the PRs that have the target username as an asignee, author or commenter (all of which are supported search keys).

This will give us stats about the impact of a user.

./img/github-search-pr-involves-stats.png

This checks off the measurable target, but what about timebound?

1
is:open is:pr involves:<username> archived:false created:>=YYYY-MM-DD

./img/github-search-pr-involves-stats-timebound.png

We can also combine other search terms to get a feel for how work is progressing:

termindication
language:gospecific languages
comments:>=Nlarge discussions
is:mergedunderstand proportion of PRs that get merged
author:<username>PRs opened by specific username

There are loads more than can be combined to surface the stats that might contribute towards the SMART goal.

Caveats

Whenever we introduce a metric, it can be easy to optimise for that. There’s no guarantee here that any of the involvement of a given user is of quality, but we get some of the way to understanding the impact someone has in an organisation. This is a pure quantitive metric, with no qualative reporting.