Ever looked at the End User Licence Agreement that comes with your software? No? Really? Wow! Perhaps you should, then you’d realise just how badly the software industry is treating you once it has your money. In brief the EULA says, thanks for your money, software may or may not work but if it doesn’t, don’t call us we’re out playing golf or having fun doing something else.
To make matters worse national regulators, who are supposed to champion the rights of consumers and businesses, seem to be complicit in all of this. This is probably more due to a lack of resource, knowledge and general apathy as opposed to any active involvement but they are letting us down big time and it has to stop.
When you go out to buy a computer, a cooker, new hi-fi system, TV, clothes even drugs, you have certain rights. When what you buy doesn’t work as advertised or stated on the box, you can return it and get a replacement or a refund. This is a fundamental principle of consumer protection law. So why should software be any different?
Software companies will tell you that their products are complex, constantly under development and that they, therefore, cannot possibly foresee all the potential failures of their product. They will also point to the fact that they operate in a competitive market where, in order to survive, they need to get products to market before the competition.
Both of these are reasonable cases but should not be any excuse for sloppy product. Look at the electronics in the average car today and they are getting extremely complex, especially in performance cars. The same is true of the systems that control aircraft, power stations, railways systems and other pieces of national infrastructure. Interestingly, when any of these fail, lawyers are quick to go to court in order to get recompense for their customers. To prevent this happening to software, the industry relies on two things.
The first is the EULA. This is a wonderful piece of fiction that in another age would no doubt be entered for best short story or best piece of non contract in a literary competition. The EULA effectively absolves the vendor from any responsibility.
The second thing is the phrase R&D. When you talk to senior people in the software industry they will tell you that it is impossible to define the basic working sets of things as common as word processors, spreadsheets, presentation programmes, communications software or any other form of software. This, they will say, is because everything is so complex that to try and define one thing as a standard set of behaviours, would make it almost impossible to continue developing.
Now I don’t know about you but the basics of word processing and the formulas within my spreadsheet haven’t changed in over 15 years. Yes, there are some new features and people keep messing about with the User Interface (UI) but the functionality is the same which says that there are things we can define as to what makes a Word Processor, etc.
Another reason for using the R&D tag is that it gives the industry wiggle room when it comes to the quality. After all, something that is constantly in development cannot possibly be treated the same as a finished product. The only other industry that continually highlights its R&D credentials is pharmaceuticals but before they bring a product to market they have to go through a lot of extremely complex tests. Even then, should the product fail, they can and regularly are, sued.
If software wants to be R&D then maybe it needs to be treated like pharmaceuticals. After all, there are plenty of addictive applications out there – ISVs even boast about how addictive their software is so they’ve actually laid the groundwork for us. Of course, Time to Market, that catch all for competitiveness would no longer apply but at least software would be written to a higher standard.
The software industry also likes to talk about itself as an engineering based discipline. Look around at the number of people who have Software Engineer on their business card. Now look at the end product they ship and the failure points. The word Engineer used to mean something. If it was designed and built by an engineer you used to be able to rely on a high level of quality. The term software engineer when compared to the bulk of the end product out there lowers the bar too far.
Not all software gets away with poor quality. Computer games, which are far more complex than a lot of software, are covered by consumer laws so there is clearly a way to apply such legislation to the software industry. One solution is to use a kite mark in the same way as the CE mark on electronic goods that indicates the product has passed independent quality testing.
Will we see this happen? Unlikely. The software industry has very deep pockets and very good lobbyists but at the start of a new year, there is nothing like a little hope!