Deploying your code every day is one of the best software delivery practices I know.
What are the benefits?
- It shortens the feedback loop, allows you to learn faster.
- It lowers the risk of huge failures and difficult rollbacks.
- It limits WIP (Work In Progress), which is proven to increase the performance.
- It encourages you to invest in a fast, safe, and repeatable deployment process.
- It forces you to split your work into smaller pieces and work in small iterations.
- It allows you to do small, safe, and cheap experiments often.
- It unblocks your team members faster.
- It encourages you to use feature flags.
- It reduces the time spent on code review (making code review easier)
- It reduces the chances of merge conflicts.
- You almost never have to deploy someone else’s code (and you never have to deploy any code written by a person currently on vacation) and be surprised that you missed some piece of configuration or data migration.