GitHub issues (classic) offers a great way to have an agile development process following a kanban process. Unfortunately it requires a bit of effort (or a 3rd party tool) to set it up for good Scrum.
Note: Based on GitHub Scrum workflow.
To create a new backlog item, it is best practice to configure GitHub issue templates for your repository. See Configuring issue templates for your repository
Make sure you assign suitable labels to the issue. Later on during the Sprint Forecast meeting, the issue should be prioritized and added to a Sprint (milestone) if appropriate.
Issues allow you to have a conversation about the item and even allow you to create task lists inside the issue using GitHub's markdown.
Add the following labels to your repository:
estimate labels allow you to set estimates in your backlog. E.g.:
| Label | Time Estimate |
estimate: 1 | 2 hour |
estimate: 2 | 4 hours |
estimate: 4 | 1 day |
estimate: 8 | 2 days |
estimate: 16 | 4 days |
estimate: 32 | 2 weeks |
estimate: 64 | 1 month |
Your actual estimates should align with the rule Estimating - Do you know how to size Product Backlog Items (PBIs) effectively?
type labels allow you to easily filter PBIs in the dashboard. E.g.:
| Label | Type |
type:bug | bug |
type:chore | chore, maintenance work |
type:feature | new feature |
type:infrastructure | infrastructure related |
type:performance | performance related |
type:refactor | refactor |
type:test | test related |
You can define and assign custom labels that you need within your workflow or organization.
You can create a milestone for every Sprint and add Product PBIs from the backlog to a milestone.
This process allows you to group PBIs in Sprints and track them by milestone in your issue dashboard (github.com/issues when logged in).
The backlog then consists of all PBIs that have no milestone attached to them.
Tip: Use no:milestone in the search field on your issue dashboard to find PBIs.
See Rules to Awesome Documentation to follow best practices on setting up a projects README.