Thursday 14 January 2010

The Tyranny Of Software Maintenance

When we bought a new fridge/freezer, I bought a named brand with a good reputation in the expectation that it would be reliable and give years of reliable service. I evaluated the risk of breakdown and the costs of repair against the merits of an extended warranty. I opted at a reasonable price to extend the warranty to three years.

I recently bought a copy of Windows Vista Home Premium along with the upgrade voucher to Windows 7 Home Premium. Actually, according to the product, I bought a DVD with some basic instructions along with a license to install and run the software, but that's a whole can of worms we'll ignore.

From a consumer viewpoint, I expect the product to be supported with security and bug fixes for quite a while, and that it should be fairly reliable and any problems should be unusual. I would be disappointed if there were obvious bugs or I had major problems installing it in the first place. As a consumer, I want it as cheaply as possible, reliable as possible, and above all to live up to the expectations set in the glossy adverts! As a consumer I have a love/hate relationship with product support and maintenance: I feel I shouldn't need it, don't want to have to pay for it, but know I will need and use it (even if it's just automated patches), and resent the interruption and time taken to carry it out; but I would feel more aggrieved if there were no post-sales support/maintenance.

From a product developer viewpoint, it's impossible to make a perfect software product, especially when that has to run on a huge variety of computer hardware, so it's impossible to test ever variation and yet stick to the high-pressure timetable when the product has to be launched - whose dates may be set six months in advance.

From a corporate viewpoint, I'd want the product to be developed within budget with few surprises, to ship on time, and to need as little post-sales support as possible other than to ensure customers come to rely on the product and recommend it to their friends to ensure they will be future customers - any money spent after sales is, after all, mostly overhead and not investment (since giving away improvements to the existing product raises the bar for the next).

Unfortunately, these combinations of expectations mean big problems - complex products need real-world testing to perfect, customers are reluctantly willing to pay for fixes and improvements, corporate accountants see the overheads rising for testing and maintenance, and developers get fed up fixing bugs when they could be working on new technology.

In summary: software maintenance is a headache for everyone. And it will get worse as things get more complex and more devices become software driven - not just your computer, but your games console, TV, media player, in-car navigation and entertainment... I predict that one day we'll be spending a quarter of our lives simply ensuring everything we own has appropriate security patches installed and is reasonably up to date with the latest software.

BTW, don't get me wrong, just because I used the example of Microsoft Windows doesn't mean to say that Linux doesn't have many of these problems too.

No comments:

Post a Comment