org
Solving the one engineer can work on a codebase at once problem
One engineer per project was the ceiling. Using tooling and process to clear bottlenecks.
1 → 12 engineers per release
- Situation
- One project, one engineer. Having two people work together required a great deal of coordination and communication.
- Constraint
- Two or more engineers trying to work together could easily override each other's work. Config might be stored in the database and require extensive manual steps for deployment. This slowed down development cycles and forced every engineer to be a full stack expert; there was little room for a junior.
- Decision
- Switch to git and adopt GitLab. Start using a development workflow with merge requests and timed releases. We ignore vanilla scrum and gitflow in favor of semantic git.
- Tradeoff
- Dynamic content is no longer in version control. Branching with multiple developers is possible in SVN, but git is easier to manage and has better tooling and developer experience.
- Result
- Two engineers on a release used to be a struggle; five became routine, and over twelve during crunch periods. Any project could take any number of engineers at any time, and a release no longer waited for the one person with the expertise to be free.