When backward compatibility is bad

Sometimes, making a poor design choice in the past prohibits the programmers from providing neat solutions in the future. You want to abandon the wrong route and start from scratch. Which word or phrase should you choose to stigmatize that bad choice and your situation?

I did not expect it to be a technical term. Might be just a proverb. You might explain to people that something is bad by recalling a proverb.


I don't know if there is a specific term but maybe one of these sentences could help:

  • the new solution would introduce breaking changes
  • you are constrained/limited/bound by the existing solution/framework/...
  • you have to provide legacy support
  • your current design violates the open/closed principle

Perhaps a metaphor would work:

The anchor steadies the ship in the storm, but the ship is moored until it weighs anchor.

Backward compatibility can become a tether that keeps the software from moving forward.


Software engineers use the term bug-for-bug compatibility to describe the undesirable situation where you need to maintain compatibility even for a product's bugs and misfeatures. (While this is sometimes a boon for end users, it's a hassle for the developers.)