Guidelines? Well, call it what you want. Best Practices. Things to remember. Principles. Ideas of others. In the end the only thing that matters is that you really think about them, try to practise them, and hopefully struggle so hard that you learn to value them so much you never want to do it otherwise again.
Disclaimer: Keep in mind, sometimes a different approach can be more helpful. There are teams hacking happily and successfully embracing Git Flow or Branches Per Developer.
Practices
It is all about Continuous Integration. And I didn’t make them up, I extracted them from the jaxenter.de DevOps column written in German in late December 2018. However, they made my day, just like the seminal post from Joel Spolsky proposing 12 Steps to Better Code way back in 2000.
- Maintain a Single Source Repository
- Automate the Build
- Make Your Build Self-Testing
- Everyone Commits To the Mainline Every Day
- Every Commit Should Build the Mainline on an Integration Machine
- Fix Broken Builds Immediately
- Keep the Build Fast
- Test in a Clone of the Production Environment
- Make it Easy for Anyone to Get the Latest Executable
- Everyone can see what’s happening
- Automate Deployment
Further Links
- Suzie Prince on CI Theatre, https://www.gocd.org/2017/05/16/its-not-CI-its-CI-theatre.html
- Martin Fowler on Continuous Integration, https://martinfowler.com/articles/continuousIntegration.html
- Martin Fowler on Feature Toggles, https://martinfowler.com/articles/feature-toggles.html
- Paul Hammant on Trunk-Based Development, https://paulhammant.com/2013/04/05/what-is-trunk-based-development/