All software and systems have a design life. As the world and platforms change, what was once a good design degrades. The classic example of "bit-rot" was "Y2K". The code and applications didn't change, but time showed up fundamental design limitations or flaws. Some organisations resolved the issue by setting the date back 28 years and "screen-scraping". It's a temporary solution that amplifies the point.
On top of that, complexity is your enemy:
a lot of "undergrowth" develops over time and has to be cleared or it chokes the forest.
Which means that at some point we all have to start again...
[Hint: Apple did that with OS/X]
A neat demonstration/proof comes from the world of Windows protocols:
SAMBA, a portable reimplementation of the Windows SMB protocol for "File and Print".
The SAMBA team is up to its fourth complete redesign in 20 years.
Their work is not only faster and more robust than Microsoft's code, they follow the specifications exactly and their testing regimes have yielded multiple serious faults in Microsoft's implementations.
In the title, Commercial is the key word.
Like IBM's OS/360 (and MS-DOS) I expect Windows code of many flavours to be still running after 40-50 years.
I'm not saying Windows software will go away any time soon, but that Microsoft will become Commercially unviable.
Profits are the lifeblood of all companies and the difference between income and expenses.
Elsewhere I've said I expect sales of Windows to erode and for some (not all) market segments, collapse.
I'm asserting two things in this piece:
- Windows will become less competitive, and hence lose income, in an increasing number of market segments as the importance and use of "standard services" increases. The cause: an old codebase and design.
- Expenses for maintenance and developing new "features" will rise exponentially as programmers fight with a lot of old "cruft" in the code and try to adapt an inappropriate design to provide new services.
We know from IBM's experience in the late 1980's that while many customers demonstrate near "inelastic demand" and prices can be increased year-on-year for much longer than you might think.
At some point they "snap" and look to replacements (product substitutes).
Unless Microsoft follows Apple and "Resets" its entire codebase, it is doomed commercially.
Up until now the Corporation and its leaders have shown extreme unwillingness to even consider this, apparently because:
- their self-image of "World's Best Software Company" doesn't allow them to admit their code could be less than perfect.
- they are "packrats". They can't bear to remove old code and designs.
The next 10 years are crunch time for Microsoft. It's market domination in "PC's" is eroding and more important market segments are developing where it doesn't have a presence and it's usual approach of "bloatware" will be rejected in the marketplace. Think iPod and iPad.