Skip to content
This repository has been archived by the owner on May 30, 2023. It is now read-only.
Cristina edited this page Aug 2, 2022 · 9 revisions

Measuring development practice

Welcome

Thanks for stopping by!

We are trying to build a set of tooling to help us understand our development practice.

This repo aims to be the one place (see ADR 0002) for us to collaborate on this work and pull all the great work we have already done into one place.

We made the following decisions:

  • we will use GitHub actions
  • we will use Ruby as our scripting language

Whilst this repo is a good way to keep async communications in one place, there is still room for more synchronous communication when needed:

Slack

https://dxw.slack.com/archives/C02FF56AFFV

In person

🧑‍🤝‍🧑

If you do work on this, let's commit to keep this repo up-to-date in some way to keep hold of the great good work!

What to pick up?

Anything! Check the issues for things and have a look through the code.

Aims

  • Measure and monitor interval between production deploys
  • Measure and monitor some metrics about pull requests
    • How long code takes between the first local commit to being live on production
    • Total changes per PR
    • Number of commits per PR
    • Average changes per commit within a PR
    • Number of reviews for a PR
    • Number of comments for a PR

Measure and monitor interval between production deploys

This repository runs a GitHub action that polls each monitored project's health check end point (RODA example: https://www.report-official-development-assistance.service.gov.uk/health_check) every 20 minutes during work hours (plus a reasonable interval before and after, to cover different working patterns).

Monitored projects are currently hardcoded in the script.

The action invokes the Analysing the latest release script and:

  • Checks the deployed commit's SHA and compares it to the last recorded SHA in InfluxDB
  • If there has been a deployment, i.e the SHA has changed, record the time the deployment happened and the SHA of the HEAD commit

Recording is done into InfluxDB: https://eu-central-1-1.aws.cloud2.influxdata.com/orgs/77d62f8bea229a02

Measure and monitor some metrics about pull requests

See Analysing a release for details.

Dependencies

  • Projects we want to measure need to expose an endpoint with the current SHA on production, and the time the last deployment happened.