Saturday, June 14, 2008

Better, or just different?

While I've been setting up my new Macbook Pro, I've been thinking about why computers are so freaking hard for most people to understand.

The Mac, of course, is supposed to be the paragon of human interface goodness. As I lifted the lid and booted the machine for the first time, choirs of angels were supposed to be singing and dazzling rays of light were supposed to be washing over my pudgy face. Here I was, finally liberated from the dreaded Windows PC that held me in shackles for all of these years. Hallelujah!

However, being completely objective — which is hard to do with a shiny new (and expensive) piece of hardware sitting in front of you — I can't say that using OS X is much easier than using Windows. As I've been attaching the machine to my network, adding printers, configuring preferences, and performing other mundane tasks associated with getting a new computer set up, I've encountered lots of stuff that puzzled me and certainly would be undecipherable to the average person.

Don't get me wrong, I'm not a hater. The overall Mac experience is much, much better than any PC I've worked on. The reliability and security of UNIX-based OS X is a huge improvement over Windows, the amount of software that you get with the machine is incredible, and the total package is tight and pretty.

However, I've come across many cryptic dialog boxes, I've needed to try things multiple times, I've had to repair keychains, and I've spent a fair amount of time Googling to validate problems and find solutions. Once you learn some tricks the answers seem obvious, but until then you could spend a lot of time scratching your head.

I think a major source of this problem is that a computer, as Alan Turing taught us, is an 'anything machine'. Unlike a calculator, a car, or an iPod which has a few basic capabilities, computers can be extended with programs to do thousands of different things. Because of this, no two computers are alike; someone bought the same model Macbook I did on the same day last week, but I guarantee that by now our machines have lots of different software in them. Additionally, because computers can interface to so many things, the differences multiply by the number of printers, network routers, external storage systems, cameras, portable media players, and other types of peripherals that they have to deal with. The probability of any two computers being completely alike within a week of purchase is basically zero.

All of this different software and all of these different peripherals lead to complexity and inconsistency. There are just too many options, too many choices, too many potential conflicts. There's no rule book that says, for example, if you're building a network router, here are the five items that should be user-configurable. In fact, it's just the opposite; in an attempt to gain market share companies try to make their products different, try to add new features, and as a result end up putting a hundred knobs on something that would work almost as well with two. Look at the millions of ways you can configure Microsoft Office! Does anyone really need every one of those options? Of course not, but when you want that one specific option you're going to complain if it's not there. (I'm sure that somewhere there is someone who wants to have page numbers only on every 7th page!)

So we have millions of dialog boxes, each designed with its own sense of a task flow and vocabulary that is relevant to the program or peripheral for which it was designed but not obvious to the unacquainted. As a result, we have billions of users getting confused and potentially screwing up, costing time and money. Yet overall the balance pays off, so people put up with the crap and try to deal with it as best they can. Sometimes they have to call Geek Squad, or a relative who can fix it for them. Sometimes they just live with the problem — I know people who are OK with restarting their computer multiple times a day because it locks up or drops the Internet connection!

I'm going on, I know, so I'll wrap this up by saying that Apple can't really solve this fundamental problem. No single company can. If things ever do get easier, it's going to take some more advanced logic that will hide all of these complexities from the user, not just present them in a prettier dialog box. Something that can analyze all of the dependencies and potential issues and automatically make the best decision based on the intent of the user rather than their direct input. This is a problem that's worth solving!

1 comment:

GRW said...

Hi Joe

I also ended up with a new MacBookPro about a week before you did, but went on vacation soon after before I really had a chance to do other then the basics for set up...networking, printers, etc.

Already an iMac user with an AppleNet in the house, most of this was really straight forward. Where I ended up disappointed was in converting my stuff from the iMac my wife and I share (each with our separate instances) onto my new laptop. Tried to use migration manager with a firewire connection which was really very unsophisticated. Saving iTunes preferences, content and the syncing of both an iPhone and iPod became a major chore. You would think there would be a way to "transfer" your designated primary computer as part of the migration "script" and have the migration software "handle" not just the content but the change from one machine as the primary hub for your apple ecosystem to the other. I ended up doing this all manually. A little bit more effort in making the migration manager more robust would go a long way to improve the overall customer experience. This has got to be a very common scenario that many of us will face.

I am extremely happy with the end result, but as you suggest, there was still is room for improvement even though it will be near impossible to get it perfect.

GW