Clubhouse essentially lets us manage tasks, epics, and milestones across various "projects" in an aggregated, filterable workspace.
Our "projects" are: Protocol, Frontend, and Infrastructure (name TBD, but web services, shared public sandbox, etc).
The project owners to manage the Clubhouse workspace are Ivan for the "frontend" project and Travis for the "protocol".
Clubhouse has three levels of tasks that we'll use: Stories, Epics, and Milestones.
"Stories" are what you're used to from Trello, GitHub issues, etc; basically "cards" that describe a task or set of interrelated tasks to be handled together.
"Epics" are larger bundles of tasks that achieve some kind of goal, like "fund upgradability".
"Milestones" are bundles of "Epics", which for us will be release cycles. For now, we have Q2, Q3, and Q4 milestones.
The project owners manage the high level aspects of Clubhouse (epics and milestones), but everybody is responsible for maintaining Stories.
ANYBODY can add a Story to their project. Consider adding a story the same as adding an issue in Github.
When adding a Story, you can add as much detail as you like, but leave "State" as "Unscheduled".
The project owner keeps track of "Unscheduled" Stories.
The project owner can add detail to the Story, e.g., adding a checklist of "Tasks" to be accomplished.
The project owner can either assign the Story to a particular person, or leave it unassigned if anybody is free to own the Story themselves.
When a Story is ready to be worked on, the project owner moves the Story to "Ready for Development".
When you own a Story, you are responsible for maintaining the details of your work in "Comments", a checklist of sub-items to work on in "Tasks", and moving the Story to the appropriate column.
When you become the owner of a Story, create a list of "Tasks" that need to be accomplished for the Story to be completed, e.g., general implementation details and whatever test coverage will need to be added.
Move the Story to "In Development" when you have actually started working on the Story.
Create an "external link" to your Github PR branch.
If your Story relies on another Story for completion, mark it as blocked: "relationships" -> "is blocked by" -> add blocking Story. Remove the relationship when it is no longer blocked.
Once your Story is "Ready for Review" (whether an initial review or an official PR), move the Story to that column.
The project owner will either review the Story PR, or will @mention somebody to do the review.
If the Story requires further work, the project owner moves it back to "In Development".
If the Story is finished (the PR is merged), the project owner moves it to "Completed".
-
GitHub Issues are now only for external parties to report issues, feature requests, etc. We don't add tasks there.
-
As much as possible, keep important (summaries of) discussions and questions related to the task in the "Comments" of each Story. Since we're not using GitHub issues anymore, these Stories are now the archives to remember how and why we did things.
-
As much as possible, maintain a current list of "Tasks" for your Stories. This will help other devs easily understand the progress of the Story, which is especially important for blockers.