We are experimenting with using the GitHub Project feature to track progress toward large goals.
For more on GitHub Projects in general, see:
The current SPIRV-Tools project list can be found at https://github.com/KhronosGroup/SPIRV-Tools/projects
A GitHub Project is a set of work with an overall purpose, and consists of a collection of Cards. Each card is either a Note or a regular GitHub Issue. A Note can be converted to an Issue.
In our projects, a card represents work, i.e. a change that can be applied to the repository. The work could be a feature, a bug to be fixed, documentation to be updated, etc.
A project and its cards are used as a Kanban board, where cards progress through a workflow starting with ideas through to implementation and completion.
In our usage, a project manager is someone who organizes the work. They manage the creation and movement of cards through the project workflow:
Our projects organize cards into the following columns:
Ideas: Work which could be done, captured either as Cards or Notes.
Ready to start: Issues which represent work we'd like to do, and which are not blocked by other work.
Ready to startto
In progress: Issues which were in
Ready to startbut which have been claimed by someone.
Done: Issues which have been resolved, by completing their work.
Rejected ideas: Work which has been considered, but which we don't want implemented.
We are considering prioritizing cards in the
Ready to start columns so that things that should be considered first float up to the top.
Experience will tell us if we stick to that rule, and if it proves helpful.
A placeholder is a Note or Issue that represents a possibly large amount of work that can be broadly defined but which may not have been broken down into small implementable pieces of work.
Use a placeholder to capture a big idea, but without doing the upfront work to consider all the details of how it should be implemented. Over time, break off pieces of the placeholder into implementable Issues. Move those Issues into the
Ready to start column when they become unblocked.
We delete the placeholder when all its work has been decomposed into implementable cards.