We now have experience with version control, issue tracking and code review.
The basic ideas are: collaboration and incremental development. We want to develop in a way that can tolerate failure, eg repositories can be re-cloned when a laptop or vm dies, issues can be reported by anyone, bugs can be associated with specific changes, buggy changes can be reverted, works-in-progress can be encapsulated in a branch and transferred from one person to another, etc.