Skip to main content

Managing Feature Requests and Developer Work with GitHub Issues

Overview​

This document describes the process of using GitHub Issues to track feature requests from the business, link them to developer work items, and manage the development and QA lifecycle. The workflow ensures that business needs are captured, development tasks are tracked, and QA has a clear process for testing and reporting bugs. Developers can also create new issues if additional work is identified.

Process Overview​

  1. Issue Types
  2. Issue Priority
  3. Issue Lifecycle

1. Issue Types​

LabelDescription
issue:featureRepresents a high-level system feature requested by the business. Add a tasklist (a GitHub feature for creating a list of work items) inside feature to create one or more tasks and/or bugs. For more information on tasklists, see GitHub's documentation.

| issue:task | Represents a granular developer work item that contributes to a feature. | | issue:bug | Represents a bug identified during QA testing. |

2. Issue Priority​

LabelDescription
priority:highIndicates high business priority.
priority:mediumIndicates medium business priority.
priority:lowIndicates low business priority.

3. Issue Lifecycle​

Issue Lifecycle Differences​

Features, Tasks, and Bugs have distinct lifecycles due to their unique purposes:

  • Features: Involve larger development efforts and require QA verification.
  • Tasks: Focus on smaller, specific work items with SME review.
  • Bugs: Prioritize quick resolution and verification of fixes.

These differences are reflected in their respective state labels and workflows.

Feature​

LabelDescriptionSet By
state:createdThe feature is created and work has not started.SME
state:dev-in-progressDeveloper(s) is(are) actively working on the feature.SME
state:dev-blockedDevelopment is blocked because of a dependency or an open question to businessSME
state:ready-for-qaDevelopment is complete, and the feature is ready for QA Deployment.SME
state:qa-in-progressQA deployment is done and QA team is actively testing the task.QA
state:qa-verifiedQA testing is complete and the verification is successful.QA
state:qa-blockedQA testing is blocked because of a dependency.QA

Task​

LabelDescriptionSet By
state:createdThe task is created and waiting to be assigned.SME/Developer
state:assignedThe task is assigned to a developer and is ready to be worked on.SME/Developer
state:dev-in-progressA developer is actively working on the task.Developer
state:dev-blockedDevelopment is blocked because of a dependency or an open question to businessDeveloper
state:awaiting-sme-reviewDevelopment is complete and waiting for SME reviewDeveloper
state:sme-review-passSME review is complete and the task is ready for PR mergeSME
state:sme-review-failSME review is complete and the SME has provided some feedback that requires additional workSME
state:ready-for-qaDevelopment and SME review are complete, and the task is ready for QA Deployment.on Pull Request merge

Bug​

LabelDescriptionSet By
state:createdThe bug is created and work has not started.QA
state:assignedThe bug is assigned to a developer and is ready to be worked on.SME/Developer
state:dev-in-progressA developer is actively working on the bug fix.Developer
state:dev-blockedDevelopment is blocked because of a dependency or an open question to businessDeveloper
state:awaiting-sme-reviewDevelopment is complete and waiting for SME reviewDeveloper
state:sme-review-passSME review is complete and the bug fix is ready for PR mergeSME
state:sme-review-failSME review is complete and the SME has provided some feedback that requires additional workSME
state:ready-for-qaDevelopment and SME review are complete, and the bug fix is ready for QA Deployment.on Pull Request merge
state:resolvedThe bug is fixed and verified by QAQA