Actions (cards) — Tasks that get us closer to a specific goal. Defines actionable work items contributors can complete.
Feedback (issues) — User feedback such as bugs, ideas, questions. Influences the project from outside.
We work with an Agile mindset. We have designed our system to transparently communicate our goals and intentions without the need to understand every single piece of work that is being done. It also allows us to display actionable tasks that are clearly defined and prioritized so anyone can help us move forward.
Because Agile is not making things up as we go, but rather iteratively working towards specific goals, the first thing that needs to exist are goal definitions.
Goal definitions are ideally SMART — specific, measurable, actionable, relevant, and time-bound. At the absolute minimum, they always must have a clearly defined purpose — so we know why do we want to achieve them, and a definition of done — so we know when exactly are they achieved. This way we can communicate the direction of the project.
Goals (epics) are owned by a single person who acts as a feature driver. The owner doesn’t necessarily do all the work, but makes sure that actionable tasks that lead towards a completion exist at all times, and is responsible for the goal being completed. This way the project can be scaled across a large community of contributors.
Epics are defined in the Epics view of our board. This view is used for strategic planning and for monitoring the overall progress of the project. It also allows to drill down into idividual epics for more specific details about each goal.
The specific epic detail shows the purpose of the goal, the definition of done, and other information such as a delivery deadline. It also lists all the actions (cards) that lead to a completion of this epic. Epic owners use this view to define and manage individual cards.
To work on the project, contributors visit the Kanban view of our board showing all existing cards sorted into different columns, each representing a specific state. Contributors can choose any card in the "Next" column they want to work on.
To work on a specific card, contributors can simply assign themselves to any card in the "Next" column and move it to the "In Progress" column. This way they indicate to other contributors that this card is already being worked on.
While working on a card, updates can be posted to the comment section of the card. Contributors can also mention other people in the comments to ask questions or to notify them about specific information. It is also encouraged to coordinate with other using the usual communication channels such as IRC.
When a card is complete, contributors are expected to post an update to the comments, and move the card to the "Done" column in the Kanban view of our board. This step updates the progress of the epic the card belongs to which is useful for tracking progress.
If new actions appear as a result of a card completion, contributors should coordinate with the Epic owner about creating new cards for the new actions to ensure there is always next step in the queue.
Issues such as bugs or feature requests can be created by anyone in the Modularity issue tracker. This issue tracker is then processed by the team and new cards or even epics may be created as a result. Separating user feedback from the work lowers the pressure on the person who reports the feedback — they don’t have to understand our tracking system.