We follow these conventions for development:
- We document each significant task through a GitHub issue.
- We assign each task to a single owner.
- We carry out the work on each task in a branch named "issue-NNN", where NNN is the issue number.
- We group tasks into a sequence of GitHub milestones named "M1", "M2", etc.
- We manage work within a milestone by a GitHub project with the same name as its associated Milestone.
- Each GitHub project has three columns: Backlog, In Progress, Done.
- When we finish a task, if we do not believe the work warrants review by other team members, then we close its corresponding issue and merge its branch into master. If we want our work reviewed by team members first, then we do not close the issue or merge the branch. Instead, we issue a pull request on master and use Slack to notify members of the need for review.