I've got a birthday coming up in a few days, and as an early gift for myself I bought an Apple Powerbook with 15" screen. Strictly speaking, it's a business expense that just happens to be something I really wanted anyway.
Until recently I didn't have a use for a laptop because whenever I got out of the apartment, working on a computer was the last thing on my mind. But it's been getting easier to justify it lately, thanks to a lot of road trips I've been making for customers and the problem of showing them my work.
The final straw was when a customer asked me to start doing work on-site (as in, traveling to their offices) on a weekly basis. Spending a whole day a week on-site means I'll need my own computer handy in case an urgent request from another customer comes up (it's a stipulation in the contract that I get to address other customer requests when they come up).
So why a Powerbook?
That ought to be easy, they're
gorgeous. They took off all the blinky lights, all the crazy switches and other crap that get stuffed onto PC laptops, and replaced them with smooth aluminum. And I wouldn't have been able to appreciate that properly if I hadn't been reading a few books about design lately.
The first is
Designing Visual Interfaces by Kevin Mullet and Darrel Sano. The relevant gem I learned from the book is that a designer does a lot of his work by
removing things until he can't take away anything more without defeating the function of whatever it is. Take road signs for example: there's always a ton of verbiage you could add to a road sign, like "This bend is really sharp, so slow down to 30mph", but if all signs were written like this, you'd never glean the most crucial information before your car zipped past it. So the designer strips away one word at a time until he can't take away any more. Now the sign simply says "30 MPH", and that's it.
This is what it looks like the designers of the Powerbook did with all those status lights you find on other laptops. Like:
Do you really need a power light? Come on, if you took it out, you'd still know if the laptop was on because the screen would be. (There's a "sleep mode" light that throbs steadily when you close the lid, but it's off when the lid is open).
And how about a hard-drive light? What would happen if you got rid of it? The user wouldn't know when the computer is swapping pages of virtual memory out to the disk? He wouldn't know it's reading a program off the disk after he just clicked its icon? He wouldn't know his document is being saved after he clicks on the "Save" button? Dumb questions! *Poof* goes the hard drive light.
Of the lights that are present, they've been put in the most intuitive places. Such as the lighted bezel around the power adaptor jack. It glows orange when the battery is recharging, and green when the battery is full. The battery life indicator is on the battery itself, too: push a button mounted on the battery on the bottom of the unit and a series of lights come on to tell you how much charge it has left.
Someone went over the initial blueprints of this machine and started striking out buttons, lights, status displays and other bits and pieces until the only things left were the lights, switches and buttons that
had to be there.
The other book I've been reading is
The Inmates Are Running The Asylum: Why High-Tech products Drive Us Crazy And How To Restore The Sanity by Alan Cooper. The key concept of this book is something called Interaction Design, which is analogous to architecture, and somewhat to industrial design.
The contention of Cooper's book is that software developers almost always start developing a new application by firing up an editor and a compiler and start writing code, inventing the user interface as they go along. Later in the project someone says "Oh, we should do some usability testing", and run a few tests with sample users that reveal how truly awful the design of the product is so far. However, by this time it's far too late to fix it properly. Some "usability enhancements" are made by shifting buttons and other screen elements around, but the product is still confusing and hard to learn.
The cure is to design the way a computer program will interact with its user long before coding begins.
Some tools to aid this are a small set of very specific "personas"--which are descriptions of hypothetical users, given in such detail that the persona is like a real person to the developers. "Sally" may be the primary user, and her persona might indicate things like how many children she has, what she does for a living, what time she gets home from work and so-on. The point is to help with the feature elimination stage I described above. Does Sally need the option to print reports in Landscape mode? If not, then that feature gets killed on paper before it ever gets committed to code.
Some programmers object to this specificity, citing edge-cases where some other hypothetical user might want to print in landscape mode, and the value of having "Sally" is so you can beat that programmer over the head with her. Programmers should always handle edge cases in their code--like what should happen if it's fed corrupted data--but it's not their place to handle edge cases in the
design.
And since using the Mac software on the Powerbook, I think that the basic principles Cooper describes were used in their design, too. The bundled applications are not a cornucopia of features and widgets, most are as unadorned as the Powerbook itself. However, each one does its job very well. That's not the impression I get from most Windows and Linux software, and I'm very interested in the difference.
I could ruin the meaning of this post by talking about Mac Vs. Windows, winnarz and l00serz, PowerPC vs. Intel, Market Share, Operating System purity and other bullshit, but I had all that burned out of me during the "OS/2 years".
I've got a Linux desktop, and a Windows XP desktop, and now I have a Mac laptop. I bought it because I like it.
Powerb00ks r00l, yo.