Software Eats the World?
Iâm told software is going to eat the world very soon now. Everything already is, or will be, software based. To some folks, this sounds completely wonderful, butâleaving aside the privacy issuesâI still see an elephant in the room with this vision of the future.
Quality.
Let me give you some recent examples.
First, ceiling fans. Modern ceiling fans, in case you didnât know, donât rely on the wall switch and pull chains. Instead, they rely on remote controls. This is brilliantâyou can dim the light, change the speed of the fan, etc., from a remote control. No unsightly chains hanging from the ceiling.
Well, itâs brilliant so long as it works. Iâve replaced three of the four ceiling fans in my house. Two of the remote controls have somehow attached themselves to two of the three fans. Itâs impossible to control one of the fans without also controlling the other. They sometimes get into this entertaining mode where turning one fan off turns the other one on.
For the third oneâthe one hanging from a 13-foot ceilingâthe remote control sometimes operates one of the other fans, and sometimes the fan its supposed to operate. Most of the time it doesnât seem to do much of anything.
The fan manufacturerâa large, well-known companyâmentions this situation in their instructions and points to a FAQ that doesnât exist. Searching around online I found instructions for solving this problem that involve unwiring the fans and repeating a set of steps 12 times for each fan to correct the situation. These instructions, needless to say, donât work.
There is no way to reset the remote, nor the connection between the remote and the fan. There is no way to manually select some dip switch so the remote has a specific fan it talks to. Just some mystical software thatâs supposed to work (but doesnât) and no real instructions on how to resolve the problem. The result will be a multi-hour wait on a customer support line, spending hours of my time to sort the problem out, and the joy of climbing (tall) ladders to unwire and wire ceiling fans in four different rooms.
Thinking through possible problems and building software interfaces that take those situations into account ⦠might be a bit more important than we think they are if software is really going to eat the world.
Second, the retailerâs web siteâa large retailer with thousands of physical stores across the United States. Twice Iâve ordered from this site, asking to have the item held in the local store so I can pick it up. The site wonât let you order the item for store pickup unless they have it in stock.
The first time they called me to say they couldnât find the item I ordered, but they found a ânewer modelâ that was a lot less expensive. It was a lot less expensive because it wasnât the same item. They never did find the item I originally ordered.
The second time they called me to say they couldnât find the item I ordered. I asked if they could just ship the item to my house when itâs back in stock. âIâm sorry, our system doesnât allow us to do that â¦â Several hours later, they called back to tell me they found it, but they cannot reinstate my orderâI must place a new order.
Again, software quality strikes ⦠what should be a simple process just isnât. There will always be mismatches between the state in software and the state in the real worldâbut design the system so itâs possible to adapt when this happens, rather than shutting down the process and starting over.
Third, I own a car that has all the âbells and whistles,â including an adaptive cruise control system. There are certain situations, however, where this adaptive control does the wrong thing, producing potentially dangerous results. There is no way to set the car to use the non-adaptive cruise control permanently (I called and waited on the phone for several hours to discover this). You can set the non-adaptive cruise control on a per-use basis by going through set of menus to change the settings ⦠while driving.
Software quality anyone?
Software eats the world might be someoneâs ultimate dreamâbut I suspect that software quality will always be the fly in the ointment. People are not perfect (even in crowds); software is created by people; hence software will always suffer from quality problems.
Maybe a little humility about our ability to make things as complex as we might like because âwe can always have software do that bitâ would be a good thingâeven in the networking world.