Git Product home page Git Product logo

jira-analysis's Introduction

Jira Ticket Analysis tools

A simple suite of tools that let us report on engineering KPIs out of Jira.

Setup instructions

git clone [email protected]:hotjar/jira-analysis.git
python3 -m venv venv
. venv/bin/activate
pip install -r requirements.txt
python setup.py develop

You need to configure your Jira credentials and project config. This is two files:

  • credentials.yaml for Jira credentials
  • config.yaml for your project config

credentials.yaml

jira_credentials:
    email: [email protected]
    token: JIRA_TOKEN
    jira_url: example.atlassian.net

config.yaml

Use this to set your In Progress and Done statuses for each project you want to analyse. This lets you handle customised workflows to get the right charts.

projects:
  PROJECT_KEY:
    key: PROJECT_KEY
    in_progress:
      - In Progress
      - Review
    completed:
      - Done
    analyse_issue_types:
      - Story
      - Bug
      - Experiment
    exclude_issues:
      - PROJECT_KEY-123
    defect_types:
      - Bug

You can configure multiple projects with different settings for In Progress and Completed. Simple add items to the list.

The analyse_issue_types config is optional: use it to set issue types that have fixed or deliberately short times e.g. toil (that should take less than a day) or spikes (that are fixed lengths of time). This avoids messing up your cycle time charts.

The exclude_issues option sets the issues to ignore for analysis globally. This is handy for cases where your Jira stories haven't been maintained cleanly e.g. started then stopped work, then started again later.

Running

First you need to download tickets into a JSON file for analysis:

jira-analysis fetch <PROJECT_KEY> <PROJECT_KEY>.json -c credentials.yaml

Once this is done, you can analyse the tickets:

# Build a cycle time chart
jira-analysis cycle-time <PROJECT_KEY> <PROJECT_KEY>.json -c config.yaml
# Build a defect rate plot
jira-analysis defect-rate <PROJECT_KEY> <PROJECT_KEY>.json -c config.yaml

Note the -c argument that points to the credentials.yaml file you created for Jira and the config.yaml file for analysis.

Example output

Control chart

Example Control Chart for Q2 2020 showing individual cycle times, average cycle time, rolling average cycle time and standard deviation

Defect rate chart

Example Defect Rate Chart for Q2 2020 showing the percentage of issues closed that subsequently had defects vs the remainder

Why?

Jira is ridiculously customisable, to the point where it doesn't always easily support the reporting that you need in the format that you have. Most of the time, people resolve this by dumping data into Excel and building custom charts and reports.

The purpose of this is to work directly with Jira's API, which gives a lot more rich data, allowing us to get the reports we want with minimal manual exporting, copying and pasting.

License

MIT

jira-analysis's People

Contributors

arrwhidev avatar scott-w avatar scott-w-hotjar avatar

Watchers

 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.