Caterpillar

Daily Thought - 2024-05-29

< back to list

There 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.

<< previous thoughtnext thought >>