I’m trying to use a few tools in development that I could only describe as moving targets. These make me realize how much I appreciate projects that use the “stable version” paradigm for releases.
I get the philosophies behind agile programming and I strongly prefer iterative development myself. The concept that bugs will happen, so just release often and patch away– I get that. Yet ultimately any software gets used for someone else’s production, so the importance of providing stable versions seems quite high.
I don’t know if scheduled moratoriums on features are absolutely necessary, but they’re probably not a bad idea. For being agile, they seem interruptive to the process. Speaking for myself: Pure bug-fixing is a modal change that’s rather soul-sucking. I relate it to crunch-time, because there’s a rush to get it done and over with.
More importantly I think is the ability to recognize stability when it occurs and shift development onto the less stable features until something is solid. Then declare “stable” (which is more likely “reasonably stable”).