@beauraines/sprint-tracker
v0.6.40
Published
Database and R visualizations to track sprint performance
Downloads
308
Readme
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.
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
- Start R with the
R
command - Install tidyverse
install.packages("tidyverse")
- Pick a close mirror from the list provided
- A very long compile process will run, approximately 20 minutes depending upon your hardware.
- 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
- 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. - Create the database and run the migrations
sprint-tracker create-database
. This step only needs to be done the first time. - Run
sprint-tracker addProject
to add a project to the database. This step can be repeated as new projects are started. - Add the first sprint with
sprint-tracker addSprint
optionally, adding the sprint commitment. This step can be repeated for subsequent sprints. - 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. - 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
- Commitment: Initial sprint commitment
- Delivered: Work completed this sprint
- Unplanned - Story: All unplanned work brought into the sprint, whether completed or not
- Unplanned - Bug: Unplanned work without a pre-existing story that was deemed critical enough to add to the sprint
- Descoped: Committed work, removed from the sprint
- Carryover: Incomplete, started or un-started, work from this sprint, assumed that it will carry over to the next sprint
- 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
- Clone the repository
- Ensure you have sqlite3 and docker installed. See Dependencies.
- Install npm dependencies
npm i
- Globally install the sprint tracker
npm -g i
- 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
- ~~Build local database using sqlite3~~
- ~~Script visualizations, possibly with R, graph-cli, chartsjs, PowerBI, or AWS QuickSight~~
- Backlog health tracking
- Write API for adding data
- Write API for getting visualizations
- ~~Create database migrations~~
- Deploy to cloud
- Add sprint metrics
- Average velocity over the life of the project
- Recent average velocity
- 90% confidence range. See https://resources.scrumalliance.org/Article/its-target-forecast
- Daily points per developer
Contributing
Please feel free to contribute by opening a pull request!