Deploy Early, Deploy Often
Vote early – and often
Richard J. Daley, Mayor of Chicago (1955-1976)
Deploying often is one of the best strategies for a productive development team. Not only does it directly solve many issues as a North star for teams, but it indirectly encourages other good behavior.
Smaller changes are easier to review, debug, and ultimately fix. Deploying often means deploying small change sets.
The longer the time between when code has been merged and when it is released increases the chance of an oversight.
Production will break. Then, it’s a matter of how quickly you can push a fix. Deploying often means deploying fast.
Deploying often means faster feedback. Product metrics, user feedback, and other data can save countless hours in future features that have obvious good (or bad) indications.
When all else fails, frequent deploys are usually easier to roll back because they are usually smaller.
Engineers might tolerate a broken release process if it only happens occasionally. Deploying often means tackling release problems head-on and automating the work. Deploying often will also help spot problems in the release pipeline itself.