Daily Thought - 2024-05-29
< back to listThere is this seemingly widespread belief, that if you're going to need breaking changes, you better put them all into a single release. One big 2.0 version, with long periods stability before and after.
I never understood that. Seriously, I'm completely baffled by this concept. Upgrading to such a release is a big task. And there's probably no practical way to do it incrementally. It's one huge, all-or-nothing change; probably all over your code base. That's the opposite of how I write software, for so many reasons.
Instead, why wouldn't we do your best to trickle those changes out slowly, in small pieces. Maybe start with a deprecation. Give users time to upgrade to the new thing. Make every release "breaking", in a way, but never break anything that hasn't been deprecated for a while.