Skip to content
This repository has been archived by the owner on Jun 6, 2022. It is now read-only.

heinrichreimer/github-task-management

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Task Management

This document defines the guidelines we follow for task management using GitHub Issues. It is intentionally lean and covers primarily how individual releases are managed.

Introduction

Issues typically flow through the below states during their lifecycle.

Most states are controlled via GitHub labels. By default, state transitions are managed simply by removing the current state label and applying the appropriate next state label. The exception are the Backlog and Done states. State labels do not control these states. Rather they are controlled by being Open or Closed, and whether they are assigned to a milestone. That rule applies regardless of any labels assigned to it.

States

Any issue with a flag-trash label is automatically excluded from the below states.

State Label              In a Milestone? Issue State Progress Description
Backlog n/a Open 0% Issues have been identified but are not yet ready for development.
Analysis state-analysis Open 10% Issues are actively being analyzed, typically by a Business Analyst or Lead Developer, to ensure the work is Ready for development.
Ready state-ready Open 20% Issues have been fleshed out to the point where they are believed to be ready to be acted upon by developers working on the associated milestone.
Test Failing state-test-failing Open 30% The tester failed the implementation. It is assumed that failed items went through code review, so they inherit the percent complete from Code Review.
In Development state-in-development Open 30% Issues are actively being worked on by a developer. With the exception of items that are blocked or returned to development due to failed tests, each developer should strive to have as few items in this state as possible.
Code Review state-code-review Open 70% The developer believes he/she is complete and has submitted the issue for peer review.
Feature Testing state-feature-testing Open 80% Issues are code complete and can be acted on by testers. All code is assumed to be checked in and deployed to the appropriate environments for testing.
Integration Testing state-integration-testing Open 90% Issues have been unit tested and are ready for closure pending end of sprint integration testing.
Done n/a n/a Closed 100% Issues have passed testing and are closed.

Testing

Integration Testing

Items in the integration testing state have passed all unit tests in the development environment and are considered complete pending final end of phase integration testing. Once all development work for the sprint has been completed, items will be integration tested before being moved to Done.

Failed Tests

When a test fails, in addition to moving the item back to In Development, the tester should apply the Test Failing label and re-assign the issue to the original developer. This will aid in tracking priorities and help developers identify what needs their immediate attention.

Schematic

Issue Management Process

Labels

The only thing that you need to configure to use this process is to add the below labels to your repo.

Import labels

This bash script can be used to:

  • Remove the default GitHub labels automatically adds when a repo is created.
  • Add the above process labels.

The script requests a GitHub Personal Access Token which in order to access private repos. You will need to first create a token by following these instructions.

To run the script:

  1. Download (or git clone the repo)
  2. Set execute permissions: chmod +x ./set-github-labels.sh
  3. Drag the file into Terminal or execute by typing ./set-github-labels.sh

Manually add the labels

The following can be used for configuring the label names and colors:

State labels

                                     Label Color Description
state-analysis state-analysis #dd7404 See state description above
state-ready state-ready #ec9f04 "
state-test-failing state-test-failing #f5ba04 "
state-in-development state-in-development #fbca04 "
state-code-review state-code-review #b3bb02 "
state-feature-testing state-feature-testing #59a901 "
state-integration-testing state-integration-testing #009800 "

Priority labels

                        Label Color Description
priority-high priority-high #0aff2f High priority
priority-med priority-med #85ff97 Normal priority
priority-low priority-low #adffba Low priority

Type labels (optional)

                                Label Color Description
type-bug type-bug #b60205 Bug / Error
type-enhancement type-enhancement #5b2a68 Enhancement / Feature request
type-documentation type-documentation #2740a1 Project documentation (README.md/Wiki/Javadoc/...)
type-question type-question #1d76db Questions about the project

Flag labels

                                 Label Color Description
flag-trash flag-trash #006b75 An issue that is deleted but not Done (since you cannot delete an issue in GitHub Issues)
flag-invalid flag-invalid #006b75 Issue that has doesn't conform to the contribution guidelines (ISSUE_TEMPLATE.md) or spam
flag-duplicate flag-duplicate #006b75 Issue that already exists
flag-wontfix flag-wontfix #006b75 Issue that won't be implemented
flag-requirement flag-requirement #006b75 Formal requirement
flag-help-wanted flag-help-wanted #006b75 "Can someone help me?"
flag-breaking-change flag-breaking-change #006b75 Breaks the current API
flag-device-specific flag-device-specific #006b75 Issue that only occurs on some devices

Scheduling the project

Follow this scheme to schedule releases in GitHub:

  1. Create a Milestone for every two weeks
    • Name the project in the format "Release [#.##]", e.g. "Release 0.01"
    • Select the Due Date
    • Add a brief description of the milestone
  2. Assign issues to each milestone
  3. Create an overall project schedule using milepost.
  4. When satisfied with the schedule, email to the team and evenutally the client.

About

Use GitHub Issues as project task tracker.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%