15 June 2007

The Simplicity Cycle

For those who haven't had a chance to flip through The Simplicity Cycle yet, here's a short excerpt:

Software developer Joel Spolsky wrote a fantastic essay on unnecessary complexity, titled Choices=Headaches. He counted a total of 15 different ways to shut down a laptop running Microsoft’s Vista operating system, including sleep, hibernate, Switch User, four different function key combinations, closing the lid, and, of course, the on-off button.

As he explained, there was probably a good reason for adding each method, but no good reason for adding them all. Giving users one more option might sound harmless, or even beneficial, but if it’s the 15th good idea for performing the same function, that’s a sign you are on the complication slope.

This is a key principle. We can often justify adding new parts independently, but each exists within the context of a larger system. As Peter Senge advises in The Fifth Discipline, we need to take a system-level perspective when determining whether a component increases or decreases goodness.

So… designers should examine the design and ruthlessly scrub out redundancy and mediocrity, no matter how well-intentioned. That may sound obvious, but Microsoft’s Vista Power Down Committee apparently skipped that step.

Some might mildly object that extra features don’t really get in the way, but that is the wrong question. We should ask rather if the features provide positive goodness. It’s not enough to be harmless. Components should actually be useful, and as Spolsky pointed out, too many “harmless” additions cause headaches.


You can download the entire PDF version of the book for free at Rogue Press. I'd LOVE it if you would pass the link along to a friend, post it on your blog, or generally help spread the word.

No comments: