Over dinner this evening, my family and I began discussing some issues they’ve been having with their computers. The details of these techincal issues aren’t particularly important, but it’s worth noting that they all stem from multiple devices or components that aren’t playing nice together.
And so, as I tried to explain to my parents what might be causing these problems, my dad began (rightfully) to rant about how complex computers continue to be, and how little they have evolved from the days when he was spending entire nights installing Windows 95 from 13 floppy disks. Most computers still require an incredible amount of technical know-how to operate, and even minor problems are often extremely frustrating to diagnose and resolve.
Novice computer users are often surprised that geeks like myself also get frustrated when computers don’t work the way they should. Why? Because I realized years ago that, although I love learning about and tinkering with the guts of a computer, at the end of the day I just need the tools to work with me instead of against me. I don’t buy computers becasue I want to endlessly tinker with them. I buy them because they’re supposed to solve problems and make my life simpler. And yet, in many cases, they don’t.
My father brought up two interesting analogies — the automobile and the television. In both cases you can go out and purchase a low-end product and it will function in essentially the same way as the high-end product. The car will get you from point A-to-B, and the television will turn on and display video from an input source. Sometimes these devices have issues that require maintenance, but they are generally just as reliable as their high-end counterparts. This makes sense.
In both cases, televisions and automobiles are also not particularly user-servicable. In order to diagnose issues, you need to take them to a trained professional. Yet most of the time, you can get in your car and expect that it will reliably get you to your destination. There’s even complimentary roadside assistance to ensure that any serious issues are resolved with the least amount of discomfort.
What about computers? My parents own a high-end Windows-based laptop that is substantially more powerful than anything they have ever owned before. And yet it doesn’t help them do the things they needs to do any more reliably or frustration-free. Error messages are just as cryptic, they’re still not able to reliably print to a wireless printer, and email server issues are causing real headaches. They are having to compromise and find painful workarounds to these solutions.
Traditionally, computers have been open systems in which a vendor licenses an operating system to a company that assembles a computer from various off-the-shelf and custom parts. Both those companies, and the individual component manufacturers, try their best to account for all potential hardware and software variations, but the systems have been fundamentally designed with flexibility in mind.
It should, in theory, be able to support thousands of potential printers, external displays, hard drives, networking components, and other peripherals. It should also support them through third-party software packages that are either installed by the computer vendor or the user. As such, there are likely millions of possible configurations that must be supported — some of which weren’t even on the market at the time th computer and operating system were conceived.
Therefore, we would consider most of the computers ever designed to be open systems. They are made to accept and work adequately with tens of thousands of devices and millions of configurations.
Automobiles are far less complicated. To begin, they are closed systems — meaning that there are only so many different inputs the owner has the capacity to modify. It may be possible to select from a few different packages when purchasing, but it will be almost impossible for the average person to upgrade major components in the car after purchase.
Would we expect a car to be just as reliable if every owner could change the engine, muffler, carburator, or one of the dozens of on-board computers? Would we expect them to be as reliable if Honda, for instance, licensed its designs and components to third-party companies who could then modify them in dozens of ways and sell them directly to consumers?
No. And yet this is the situation most people have been dealing with since the dawn of the personal computer. The sole manufacturer who has been relentlessly pursuing a closed-system approach to computing is Apple, with iOS-powered devices like the iPad and iPhone thus far being the purest expression of that mantra.
Most computer manufacturers have always tried to have it both ways — they want to make the user interface intuitive and powerful while offering consumers choice and flexibility. These are fundamentally opposed concepts. A system cannot be infinitely flexibile and remain reliable and simple.
Closed systems like iOS will prove to be the future of computing. Even Microsoft, historically the greatest champion of open systems, seems to have understood this with the concessions they have made in Windows Phone 7 and the upcoming Metro UI in Windows 8. And consumers have been voting with their wallets, given how quickly the market has embraced Apple’s new breed of mobile devices.
As with cars, there will always be a market of tinkerers who want freedom (as-in free speech), but these should be a small minority of users. Computers must serve their users and become useful but unobtrusive tools. They will only do that if their designers embrace human-centered design, and make hard compromises to ensure those solutions are vertically-integrated and simple from a user’s perspective. Simple means saying no to the realm of unconstrained possibilities, and only closed systems can achieve that goal.