Processes that run often will have a tendency to take on efficient shapes. Let them! If they don’t: look for the systemic problems counteracting / preventing it. Good Continuous Integration Practices are:
- Integrate at high frequency
- Rarely used processes are even rarer efficient or safe; more often they are manual, associated with fear and poorly understood
- High frequency integration - as a necessary precondition for High Frequency Deployment - enforces quality of all related Automation Pipelines (testing, build, then deploy, …)
- Avoid code conflicts, a form of Technical Debt
- Having per-developer / per-task branches does not work in highly collaborative environments; code conflicts arise as a function of:
<concurrent branches> * <branch lifetime>
- Using Trunk Based Workflow minimizes code conflicts; there are no branches, there is little to no merge effort
- Having per-developer / per-task branches does not work in highly collaborative environments; code conflicts arise as a function of:
- Give fast feedback
- Fast Feedback Loops performance - that is time to feedback, e.g. time from commit, to build, to test - is a significant factor on developer performance