Traditional models of software development are largely dead. Even Microsoft no longer makes actual releases of software products. Instead, there is just release churn. Software is released, the release breaks a bunch of stuff, changes the behavior of the software in ways that are unwelcome, and then another bit of software is released supposedly to address the problems introduced by the prior release and that fix breaks other stuff in new and interesting ways. Repeat.
The rate of this change means that software released just a few years ago cannot successfully be run on a recent operating system release without alteration. This raises the cost of software development significantly and ensures that small software companies struggle and die while megacorps thrive, and some large open source projects survive, but largely due to financial support from mega corp benefactors.
Free software, in its rebellion against the mega corps, made certain that only the mega corps would survive. It did not do so purposefully. It did this in its nature. Every project is shared and freely available. These projects are then built upon by other projects, and they share code. As one changes, the other must be changed to support those changes. If you multiply this setup thousands of times with each group of interdependencies then being dependent on the others, this intensifies exponentially. To make matters worse, some of the languages in which all of this software is written purposefully break compatibility with older versions of themselves forcing all of the software to be rewritten for the sake of language support.
Occasionally, a project will get orphaned by its creator. Sometimes, another developer will pick that project up and take over its stewardship. Sometimes, the project will simply die.
Occasionally, a project will get forked, and two teams of developers are then duplicating each other's efforts. Usually, one of the two will die off, but sometimes they simply start to diverge, and we are left with multiple projects attempting to serve identical market segments, and those are sometimes crowded market segments.
All of this becomes a nightmare to support if you're a system administrator or system engineer. If you're a developer, the onslaught of maintenance work never stops. If you're a user, you deal with constantly broken software that has a tendency to completely change just as you're becoming accustomed to what you recently received. In all cases, the development cycles are becoming so short that software quality is constantly decreasing.
These issues are built into the open source world. They weren't as visible in the early days because there weren't as many software developers. As the number of developers increased, so did the quantity of software projects concomitantly with a diminution in software quality.
Apple picked up this habit as well with yearly releases. Just as a release is becoming somewhat reliable they have another new release that breaks things.
Microsoft has been the worst offender in terms of quality. After 6 or 7 years, XP had become quite stable relatively speaking. Then came Vista, 7, 8 and 8.1. The culmination in 10 which has been horridly unstable and the frequent "feature updates" have consistently been of such poor quality that some devices will not boot after update. This is the company that used to pride itself on backward compatibility, and now... not so much. It cannot even pride itself on software that will successfully boot.
For Apple and Microsoft, the rush to compete with open source software has made them every bit is poor in quality as their competitors; every bit as unpredictable.
What's the solution here? First, send software through QA and do limited alpha and beta releases. These should last quite a while. Once something is stable, release it to the public. It may need occasional updates, but if it is selling well or at least seeing a large number of deployments, you can chill. Let it continue to capture market share. If you must monetize, then you can do so through paid patches, support contracts, and similar arrangements. New versions aren't always wanted. People want things that work well.
© MMIX - MMXX, absurd.wtf