I kinda wonder what if Microsoft (or any major software company) would give their engineers a few decades of time just to refactor their existing systems, opposite of piling on new features. Will it result a much cleaner code, better architect, and stable product?
The last Windows I daily use was Windows 7 Home (same era with Windows Server 2008). The newer ones don't really improved much featurely from my (user) point of view, and from what I've heard, it's getting more sloppyer every newer version.
Microsoft did do exactly this with NT. It’s all the crap on top that ruins it.
The Windows user-mode innards have been significantly refactored. Many of the core system DLLs that apps link to are just redirects to the actual implementation now. Much of the jank seems to be in the UI.
It's just as likely it would end up as an overengineered mess. And that's without considering backwards compatibility constraints, which are one of the biggest maintenance burdens.
This will NOT please the shareholders. And that's all that matters.
> what if Microsoft would give their engineers a few decades of time just to refactor their existing systems
They wouldn't, even if they didn't care about shipping new features. The technical complexity inside Windows/Office/old core MS offerings arises only in small part from ordinary tech debt--that is, things fixable without changing observable behavior. The lion's share of that complexity is because of Microsoft's priority to avoid breaking compatibility (backwards, or with hardware/software combos that work) at all costs.
That means that a refactor-only decade would achieve little unless that compatibility priority were changed.