“Code that has been merged and not deployed is a loaded gun. If I merge in my changes and don’t deploy them, and you then merge and deploy yours, you’ve just deployed mine too. This was more than you bargained for. It’s now more likely that your deployment will break something, and harder for you to fix if it does.”
Baron Schwartz, Why Deployment Freezes Don’t Prevent Outages
I prefer to think of these more as “environment freezes” than code freezes, but that’s just the name on top of the same thing. There’s a lot of smart things being said in here, and I can’t think of any points with which I disagree. A freeze lasting longer than the duration of a demo (e.g., a few hours, max) is damaging.
That being said, this extends pretty easily to any code that isn’t merged to master and deployed to at least some environment. Even without a code freeze, the longer you wait before you build and deploy, the more likely you are to experience some pain and suffering. (Hence my choice of pull quote here.)