There is a pattern so consistent it almost feels like a law: ship a piece of software, let it age for a few years, and it will be worse in most of the ways that matter.
Not worse in every direction. It will have more features. The feature count goes up. But the thing you actually used it for in the first place? Slower. More cluttered. Harder to find. Interrupted more often by things trying to get your attention.
Spotify used to open and play music. Now it opens to a discovery feed. Slack used to be a chat app. Now it has Huddles and Channels and a canvas and a workflow builder and a section I have never clicked on called "Later." Every browser has gotten heavier and more complicated every year since 2012. The good text editors all got IDEs bolted onto them. The simple IDEs all became platforms.
The incentives are not mysterious. Growth requires new features. New features require product teams. Product teams need to ship things. The org grows, the surface area grows, and somewhere in that process the original clarity gets buried under everything added since.
Rewrites rarely fix it. The second system effect is real — you rebuild with all the lessons from the first, plus all the ambitions that got cut, plus the new stakeholders who want their thing included this time. The rewrite ships heavier than the original.
I think about this a lot building EPS. The constraint I keep returning to is: software should do fewer things, and do them in a way that is easy to cut back when you add something wrong. If a new feature makes it worse, you should be able to remove it cleanly. Ports are part of this — designed-in seams for extension mean you don't have to bloat the core to make the software useful to more people.
Whether that works at scale, I don't know yet. But it's the right direction to aim.