Spencer Christensen
Site Reliability Engineer
Code Freeze is dumb and here's why
2014-11-13 00:10:53 / by spencer
If you work for a company that does web development and periodically they put a hold on all changes from being released, known as a "code freeze", then you are not alone.
Several companies choose to do this especially around the holiday season (4th quarter, October - December).
However, this is actually a poor choice and shows a lack of solving much deeper problems.The main reasons for having a code freeze is to mitigate risk- to prevent a change from being released that takes the site down. And down time during the busy season is really bad! Right?!?!? So it is worth it to stop all changes (or severely limit them) during this time period. Right??!? It doesn't really matter that engineers will just have to find something to keep them busy until January (because their velocity of deploying changes will drop to zero).
There is more going on here that people are not discussing. The fact that they don't want to release during the busy season because they fear downtime means that they fear releasing. True? It means that releasing changes is too risky and they don't want to take the risk. Now we come to the heart of the matter- Why is releasing during the busy season too risky?
Fear (and risk) of releasing changes comes down to these main issues:
- Not enough planning (including deployment and rollback plans)
- Not enough testing, or not enough confidence in testing
- The release process itself is not stable or efficient enough
So here is the challenge- take this next code freeze time to focus on these problems. Make it a goal to make your releases as risk free as possible. Set a goal to release multiple times a day on your busiest day of the year. What do you need to do, what changes need to be made in order for you to do that? Now that is the direction you should be headed!
Code freeze is a symptom of being lazy and cowardly. Thinking it is not important enough to fix those three problems above is just ignoring the fact that your release process is holding your business hostage and will always hold you back until you wake up and fix it.