0.6.13 • Published 22 days ago

@beauraines/sprint-tracker v0.6.13

Weekly downloads
-
License
ISC
Repository
github
Last release
22 days ago

Sprint Tracker

Collects sprint outcome information and generates a visualization of sprint outcomes.

Visualizations

Using the visualization command, you can generate a sprint outcome and velocity visualization. An example is shown below, with sprint names across the bottom. For each sprint, it compares the commitment and delivered story points, as well as some information about stories added and removed from the sprint.

npm.io

Command Information

sprint-tracker <cmd> [args]

Commands:
  sprint-tracker addOutcome        Menu driven process to add outcomes to a
                                   sprint
  sprint-tracker addProject        Prompts to add a new project to the database
  sprint-tracker addSprint         Prompts to add a new sprint to an existing
                                   project
  sprint-tracker config            Creates a config file, prompting for required
                                   inputs
  sprint-tracker getSprint         Gets sprint details
  sprint-tracker visualizations    Creates Feature Team visualizations with R.
                                   Must have docker, rstudio-tidyverse container
                                   and more installed
  sprint-tracker create-database   Creates and initializes the empty database
                                   specified in the config
  sprint-tracker upgrade-database  Upgrades database with new structure
  sprint-tracker completion        Outputs bash/zsh-completion shortcuts for
                                   commands and options to add to .bashrc or
                                   .bash_profile

Options:
  --version  Show version number                                       [boolean]
  --help     Show help                                                 [boolean]

Dependencies

This CLI application relies on a local sqlite database, R including tidyverse to function. Installation of these dependencies is outside of the scope of this project as the steps vary by OS.

On Mac, these can be installed with homebrew.

brew install sqlite r

Install the tidyverse packages

  1. Start R with the R command
  2. Install tidyverse install.packages("tidyverse")
  3. Pick a close mirror from the list provided
  4. A very long compile process will run, approximately 20 minutes depending upon your hardware.
  5. Once it is installed quit R with q() and respond to the prompts to not save your workspace.

Installation Instructions

The sprint-tracker can be installed with npm -g i @beauraines/sprint-tracker to be used locally. Once you've installed it, follow the General Usage instructions. If you're going to contribute to the package, see Installation and Setup for Development.

General Usage

  1. Update the config file with the path to the database sprint-tracker config. The database doesn't need to exist yet. This step only needs to be done the first time.
  2. Create the database and run the migrations sprint-tracker create-database. This step only needs to be done the first time.
  3. Run sprint-tracker addProject to add a project to the database. This step can be repeated as new projects are started.
  4. Add the first sprint with sprint-tracker addSprint optionally, adding the sprint commitment. This step can be repeated for subsequent sprints.
  5. At the end of the sprint, record sprint outcomes sprint-tracker addOutcome. This will allow you to log information about stories and points completed, committed, pulled forward, carried over, and bugs.
  6. Generate the cumulative sprint outcomes visualization with sprint-tracker visualizations.

Configuration

A configuration file ~/sprintTracker.json is required with the full path to your tracker database

{
    "database":"/Users/beauraines/projects/sprint-tracker/tracker.db"
}

Tracking Outcomes

Project

This table will store project master data.

Sprint

Sprint details including the dates and original commitment. The original commitment will not change and can be sourced from the Jira "Velocity Report" for the sprint.

Non-working days and PTO will be recorded to be able to normalize Sprints with different durations.

Sprint Outcomes

  1. Commitment: Initial sprint commitment
  2. Delivered: Work completed this sprint
  3. Unplanned - Story: All unplanned work brought into the sprint, whether completed or not
  4. Unplanned - Bug: Unplanned work without a pre-existing story that was deemed critical enough to add to the sprint
  5. Descoped: Committed work, removed from the sprint
  6. Carryover: Incomplete, started or un-started, work from this sprint, assumed that it will carry over to the next sprint
  7. Carryover - External: Work that was carried over due to blockers external to the scrum team. Use of this is optional, as an agile team should be fully self-sufficient.

Installation and Setup for Development

  1. Clone the repository
  2. Ensure you have sqlite3 and docker installed. See Dependencies.
  3. Install npm dependencies npm i
  4. Globally install the sprint tracker npm -g i
  5. Follow the General Usage instructions.

ERD

See the standalone ERD document

Generating Visualizations with R and Docker

If you choose to not have a local R install, you can use R in a docker container, manually. There are several R scripts included in the project repository, more than just the sprint outcomes. They can be run from the command line using docker and the rocker/tidyverse image as shown below.

# PROJECT_DIR must have trailing slash
PROJECT_DIR=/Users/beauraines/projects/
IMAGE=rocker/tidyverse
docker run -it --rm -v ${PROJECT_DIR}:/home/rstudio/projects/ ${IMAGE} su -c 'Rscript /home/rstudio/projects/sprint-tracker/R/sprintOutcomes.R' rstudio

Roadmap

  1. Build local database using sqlite3
  2. Script visualizations, possibly with R, graph-cli, chartsjs, PowerBI, or AWS QuickSight
  3. Backlog health tracking
  4. Write API for adding data
  5. Write API for getting visualizations
  6. Create database migrations
  7. Deploy to cloud
  8. Add sprint metrics
    1. Average velocity over the life of the project
    2. Recent average velocity
    3. 90% confidence range. See https://resources.scrumalliance.org/Article/its-target-forecast
    4. Daily points per developer

Contributing

Please feel free to contribute by opening a pull request!

0.6.13

22 days ago

0.6.12

1 month ago

0.6.10

5 months ago

0.6.9

5 months ago

0.6.8

5 months ago

0.6.7

5 months ago

0.6.6

5 months ago

0.6.5

5 months ago

0.6.4

5 months ago

0.6.3

5 months ago

0.6.2

5 months ago

0.6.1

5 months ago