"Write amplification" of breaking API changes

September 2025 · 2 minute read

One of my past managers once said:

Why all open-source developers just won’t stop publishing new versions of their libraries?

He certainly didn’t hate progress as such. This phrase was said when after some dependency update, together with a fix for a security vulnerability, the update introduced a few breaking changes and halted actual product work for a good part of the week. Yet another time.

If you run a popular project, whether it’s a library or an API and you publish a breaking change - consider how much extra work you are forcing on every user of your code in the world. Any breaking change can cause many hours spent on just updating your dependency everywhere it’s used. If the change is not important enough for hundreds of developers to spend their time on adopting it, see if there’s a way in which you can eliminate it or make it smoother.

These breaking changes happen all over the place:

There’re the opposite mindsets, like the Linux kernel’s motto to “never break userspace [APIs]” or the Go’s promise of backward compatibility. Heck, even C++ programs from 80s are still compilable on any modern compiler. Can you say this about your favorite Javascript framework?

This backwards compatibility is the mindset worth adopting, in case you care about your users.

Share: