- you could just work on flat files and sync with Dropbox. But losing history and context hurts. Introduce version control.
- hurts more to host your own git than just paying GitHub/GitLab. Do that.
- Small prototype for startup. Don’t need tests. That’s cool. Ship to production directly. Now you have customers and shit is regressing and pissing customers off. Introduce CI so every merge with master has some level of quality.
- Now you have multiple team members all committing code at various levels of quality. Make sure they reviewed by people who have code context and know what good code is. Pull requests and reviews for merges.
- people don’t know what to do. What is highest priority? what is the scope? what are the unknowns? how long will things take? Introduce something like trello or any other task management system. Work against goals broken down into tickets and plan in small increments.
- shit goes on fire occasionally. Have an oncall rotation. Monitor metrics and alert if something needs investigating.