Our development teams typically release their software at least once per day. Yes, release. Yes, at least once per day.
We have found that when developers sit on code for more than a day, it is usually because they are in trouble. When we understand what we are setting out to do, it is almost always quite possible to break down the work so that our changes can be released daily. (With all the tests working.)
On the contrary, there are some changes that are just so complex that they can’t be done in a day.
Yes, there are. We encountered one during the course of the project, when we were making a simple, but very fundamental change in how the values in the system were interpreted. It was incredibly difficult to get the system to work in the new mode. And it wasn’t just a matter of a couple of fixes.
We had several other tasks where the developers didn’t release for several days. In every one of these other cases, the result was difficult integration, and unreliable code. In almost every case, we wound up removing the software and doing it over.
As a general guideline, when developers are holding back changes, treat it as a serious trouble sign and deal with it promptly. There can be exceptions, but fewer than you think.