When Good Software Goes Bad

While new versions of your software should be getting incrementally better, sometimes the next version just seems to get worse. Why is this? Jeff Atwood argues that good software can spoil as a result of feature creep adding enough new features to generate revenue. Does this mean that all commercial software will inevitably spoil?

“Interestingly enough, open source software tends to suffer from this affliction as often as the commercial products.”There are plenty of examples of this, but fortunately it’s not a detriment to the software industry. Once commercial software has sufficiently bloated itself to be unusable, it provides an opening for a competitor to release a new product that outperforms the industry heavyweight simply by virtue of focusing on the core tasks the application needs to perform.

Interestingly enough, open source software tends to suffer from this affliction as often as the commercial products. This might be more a function of the open source development teams cloning features from the commercial software they are replacing, although emacs was able to do this long before commercial software became fashionable.

“Any developer will tell you that when there are more lines of code in your application there are more possible defects in your program.”While the addition of all these new features can be frustrating for the user, it has the most unpleasant result of creating a bloated code-base. Any developer will tell you that when there are more lines of code in your application there are more possible defects in your program. This means that as programs bloat  they spoil as a result of both interface challenges and programming errors that cause the application to malfunction.

Obviously, all of these problems could be avoided by not adding features to your programs. Certainly this is not a realistic tactic for a software development organization,“Obviously, all of these problems could be avoided by not adding features to your programs.” so the commercial software establishment continues to release new features and bloat the popular applications until they need a re-write or a replacement altogether. Every once in a while a new feature creates an essential capability in an existing product, and this will eventually get rolled into the replacement program.

Some software development methodologies will help mitigate your exposure when bloating your software, and we are now seeing how this can help stabilize software technologies. This will ultimately prolong the life of software and may one day prevent applications from spoiling altogether. Until then, be sure to visit aldapps.com and download Azureus 2.0.