Something that really annoys me is when otherwise intelligent people start buying into conspiracy theories around software development and software companies. If I had a dollar for every time someone had suggested that software companies and developers either deliberately plan for their products to be obsolete just so they can charge for upgrade, or deliberately implant bugs in their code to force users to pay for upgrades then I’d be a very rich man.
If you believe this, trust me, you are dead wrong. A few quick Google’s for phrases '”How to write better code”, “Improving Code Quality”, and “Unit Testing” should show you how hard the industry works to prevent bugs in the first place and remove bugs that do occur. Millions, if not billions of dollars, and hours and hours are spent on this. We build tools, create methodologies, work slower, think more, change designs, change architectures, change technologies all in an effort to get eliminate bugs one way or another. The fact is that writing great code is hard, if not impossible. Eric Lippert has on his blog (Fabulous Adventures In Coding) suggested that it is not rocket science… that it is harder than that. And he’s not the first to have done so.
As for planned obsolescence, I guess there is an element of truth. When a software company or developer begins a new project or product, they likely realise on some level that there will be a version 2, or 3, or 4 so long as the company doesn’t go broke before then. Where this theory is wrong is that is suggests we do this to make money. Typically, we do this to cut costs. We often know we can’t survive as a business if we try to create the first version with every feature in it we want. If we think we can or try anyway, the development process often turns out to be harder than we expect and features are dropped so we can start selling the product to pay for the rest of the development.
Even if we managed to produce a product that was a hundred percent feature complete (in terms of our original requirements), and had zero bugs, that wouldn’t guarantee there wouldn’t be another versions. Users request new features, or changes. Businesses, and their processes and requirements evolve and require the software to evolve with them. That’s without considering that most software is built on top of other software, and certainly hardware, and these things change in response to the requests made by other users of those systems… some of these changes will necessitate changes in the software built on top of them. No where in this process is there any thought that we should deliberately hold back on features or fixes just to sell the next version.
The really annoying thing is other industries have the same issue with planned obsolescence, but very few people if anybody, complain about them. When GM or Ford release a new model of car, does anybody, including the staff at the company producing it, think this is the last model they will ever produce ? Does anyone sit around saying, damn, last year I bought the Falcon XR8 and now they’ve released the Hawk QT80.. they must have done that just to make more money !
Of course, new models of car (and versions of software) are designed to generate revenue, they must for the company to survive. You want the company to survive because you want after sales support, improved products when you are ready to replace your existing items and so on… but really Ford and GM, and anyone else in business, releases new products because technology changes, knowledge increases and we find a way to build something better than we did last time.
This process isn’t designed to be hurt our customers, to charge them more. It designed to help them, and even if we wanted to avoid it we can’t. More to the point, the software industry isn’t the only one in which this happens but plenty of people call it out as if it was.
Why people are so ready to believe these conspiracy theories is beyond me. I can only presume they’ve had a bad experience, perhaps had to pay for an expensive upgrade or had one that didn’t go well. This has left them angry and looking for someone to blame so they start attacking the industry.
Unfortunately, they’re not only wrong but they come off looking stupid to anyone who actually understands the reality of the situation and how hard we work to avoid these issues.