Software is everywhere. Unfortunately, buggy software is everywhere too.
I’m writing this en route to a family holiday in South America – four countries in 15 days. The holiday starts with a BA flight across the Atlantic. At first sight, the onboard “highlife” entertainment system is impressive. My son asks: do they really have all these music CDs and movies available? “Moore’s Law in action” was my complacent reply.
The first sign of trouble was when the flight attendant welcome announcement, along with the usual stuff about “if you sleep, please ensure your fastened seat belt is visible on top of your blanket“, contained a lengthy dire warning that no one should try to interact with the video screens in any way, while the system was going through its lengthy startup activity. Otherwise the system would be prone to freeze or some other malfunction.
It seems the warning was in vain. From my vantage point in the very back row of seats on the plane, as the flight progressed I could see lots of passengers calling over the flight attendants to point out problems with their individual systems. Films weren’t available, touchscreen interactions were random, etc. The attendants tried resetting individual screens, but then announced that, because so many screens were experiencing problems, the whole system would be restarted. And, by the way, it would take 30 minutes to reboot. All passengers would need to keep their hands off the screen throughout that period of time, even through many tempting buttons advertising features of the entertainment system would be displayed on the screen during that time.
One flight attendant forlornly tried to explain the situation to me: “it’s like when you’re starting up a computer, you have to wait until it’s completely ready before you can start using it”.Well, no. If software draws a button on the screen, it ought to cope with a user doing what comes naturally and pressing that button. That’s one of the very first rules of GUI architecture. In any case, what on earth is the entire system doing, taking 30 minutes to reboot?
To be fair, BA’s inflight entertainment system is hardly alone in having this kind of defect. I’ve often seen various bizarre technobollocks messages scrolling on screens on the back of aeroplane seats. I also remember a Lufthansa flight in which the software controlling the reclining chairs (I was flying business class on that occasion) was clearly faulty – it would freeze, and all subsequent attempts to adjust the chair position would be ignored. The flight attendants that day let me into the secret that holding down three of the buttons simultaneously for a couple of seconds would forcibly reboot the system. It was a useful piece of knowledge!
And to be fair, when the system does work, it’s great to have in-flight access to so much entertainment and information.
But I draw the following conclusion: Moore’s Law is not enough. Moore’s Law enables enormous amounts of data – and enormous amounts of software – to be stored on increasingly inexpensive storage mediums. But you need deep and wide-ranging skills in software creation if the resulting compex systems will actually meet the expectations of reasonable end users. Software development, when done right, is going to remain as high value add for the foreseeable future.
“Moore’s Law” is enough is the first fallacy on the value of software. Hot on its heels comes a second idea, equally fallacious:
The value of software is declining towards zero.
This second fallacy is wrapped up with a couple of ideas:
- The apparent belief of some people that all software ought to be sold free-of-charge
- The observation that the price of a fixed piece of software does tend to decline over time.
However, the second observation misses the important fact that the total amount of software is itself rapidly increasing – both in terms of bulk, and in terms of functionality and performance. Multiply one function which is slowly declining (the average price of a fixed piece of software) with another one that is booming (the total amount of all software) and you get an answer that refutes the claim that the value of software itself is declining towards zero.
Yes, it’s reasonable to expect that individual pieces of software (especially those that have stopped evolving, or which are evolving slowly) will tend to become sold for free. But as new software is made available, and as software keeps on being improved, there’s huge scope for value to be made, and for a portion of that value to be retained by first-rate developers.
Footnote: Even after the BA entertainment system restarted, there were still plenty of problems. Fast-forwarding through a film to try to get to the previous location was a very hit-and-miss affair: there was far too much latency in the system. The team responsible for this system should be hanging their heads in shame. But, alas, they’re in plenty of company.