Vincent A Saulys' Blog
Software and backwards compatability -- what are you selling?
Tags: business
April 27, 2021

Computer Chronicles Snapshot on

Software has entered a strange relationship to business is recent times.

In the past, people thought of software as an asset. You built this thing using computer code and it provided value over time.

But this isn't really the case in practice. Libraries get deprecated, operating systems stop being supported -- things need to be updated. The end result is that software becomes an ongoing cost that amplifies the output of your other workers. It should be treated that way.

This entails treating software as something that is blown up and replaced on a cyclic basis. Google's search engine is rebuilt every two years or so. I imagine Facebook & Amazon take similar approaches. In contrast, financial institutions keep the same basic software in place and very very slowly (think in terms of decades) move from one stack to another.

I've often wondered why this is the case. Surely somebody is in favor of replacing everything. It could come down to poor understanding of cost though I would think somebody would break the trend.

The issue may be because software built for a business line -- which would include Sass -- can't break changes. Your not a profit center, to borrow an MBA term, but rather a cost center. Thus any hassle it causes to the profit center should be minimized.

Does this affect companies that build and sell software? I think it can. Joel Spolsky has noted that Microsoft's big advantage prior to Windows XP was that it never ever broke compatibility. You built a piece of software to run on MS-DOS 2.0 and it ran on Windows 98. Businesses loved this value; it meant you never had to update your software (at least in theory).

Of course Microsoft broke this anyway. Windows Vista was notorious for backwards compatibility problems in particular.

Are there other software makers that have kept backwards compatibility forever?

Oracle comes to mind. Though not favored by startups, it doesn't seem to have changed its syntax much. It's rather infamous for its hours long test suite according to former employeers. I don't think these things happen by accident but by design: we will never break userspace.

Linus Torvalds has maintained the linux kernel should never break userspace. Perhaps this is why Linux has stuck around so long.

Intel's x86 instruction set, which isn't completed documented, has also not changed much since the standardization in the mid '90s. Perhaps there is a competitive advantage in making something massively complex like this and then never modifying it, thus making any new entrant vastly more difficult.

Interestingly, services like Stripe have been aggressive in throwing out old APIs. They do version them and will force requests to match an old one in order to give you time to upgrade. But, all the same, they do not maintain backwards compatability as aggressively.

The question comes down to "what are you selling?"

If its for developers, its going to need a lot of backwards compatability. This is true for Intel & Microsoft.

But if you're selling capability -- software that helps you do more or saves you resources (e.g. time) -- then its not nearly as important.

Above picture comes from the Computer Chronicles Episode on Windows NT (1993)

Share on...