Every branch is tested on every commit/merge Small batches of features in agile sprint style
Adds a release step, build package from branch and deploy Allows quick re-deployment of previous versions if things go wrong Keeps all deploys consistent, dependencies etc are all same versions