Giter Club home page Giter Club logo

git-kpis's Introduction

GIT KPIs

There are four KPIs that software teams should track and improve to be a high performing team. These are lead time, mean time to restore, deployment frequency, and deployment failure rate. Please read Accelerate by Nicole Forsgren PhD, Jez Humble, and Gene Kim for research.

There are much better tools than this for measuring these KPIs, like GoCD that properly model the continuous delivery pipeline in a much better way.

This application bridges the gap between having git tags and releases in GitHub, but not having a fully rolled out continuous delivery tool.

So far this only tracks lead time for a given scenario. The definition of lead time here is the average time it takes from code commit to production. It assumes you tag at the time of pushing code to production. There are a number of assumptions here as it references the time of commits, which may not be the same as the time as things land on trunk. However, without instrumentation and process around specific commits, we can't get a better heuristic for time anyways, so hopefully commits themselves do not land too far away from when things are merged into trunk.

Setup

For first-time setup, follow these steps:

  1. Clone the repository
  2. Install poetry
  3. Ensure you have python 3.6 on your system. brew install python is one way. pyenv is another. Pick your favourite.
  4. run poetry install
  5. run poetry shell
  6. run pre-commit install from within the shell
  7. run tests with pytest from within the shell
  8. run the cli tool with metrics -h to learn about its required arguments

Example

Print lead time between releases with the key DLK

metrics --base v1.43 --head v1.43.7 --repository PyGithub/PyGithub --key Publish

Fine print

There's some assumptions that need to hold true for this to work

  • You must tag your releases
  • Your commit messages must have some unique identifier or project tag to indicate work done

git-kpis's People

Contributors

adrianchung avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.