Steve Jones - SSC Editor - Wednesday, March 22, 2017 8:25 AM
I've found that if you slow down on the number of releases and spend some time on full integration and testing, you end up spending a whole lot less time with urgent bug fixes that are necessary because the bugs are affecting customers. There's actually a highly beneficial cascading effect because the more you release bug free code, the more time you have to write bug free code. The inverse is true, as well. Release to meet some artificial schedule because someone wants it real bad and that's how the code turns out... real bad. No one accounts for the time such bad code is going to take for rework and so they don't change the release schedule and you're suddenly in a crunch for time, which causes more bugs and you end up in a death spiral of releasing more bugs that cause more rework that causes less time to write code which causes more bugs and... etc, ad infinitum until someone actually stands up a puts a halt to it all. Sometimes it's a manager that's tired of being bruised and sometimes it's a pissed off Developer that finally found the religion of quality.
We tried the ol' "continuous deployment" thing and the number of bugs went way up. We normally have zero bugs on a "normal" release. We don't do "continuous deployment" any more. Instead, we take our time and do it right the first time.
Can you have continuous deployment AND quality? I'm sure you can and someday, someone will actually do it once or twice once they realize that "continuous" isn't a synonym for "urgent". 😉
--Jeff Moden
Change is inevitable... Change for the better is not.