August 9, 2009

The Hidden Goose in Simple Software

I saw a web comic recently that was labeled "Simplicity." It was Comic #26 from Eric Burke's Twittch.

Check it out before I ruin it for you, then come back. Are you back? OK.

It compares a typical Google interface, an Apple interface and "your company's application interface. Both Google and Apple offer simple interfaces. Yours is crazy complicated! Presumably, this is a worse interface.

Value judgments aside, a simple interface is easier to use if "use" is defined as "push the one available button." It may or may not do what you want it to do. If there is a chance it may not do what you want it to do, how is that a good interface, or a good tool?

The answer is that there is virtue in something being simple to operate, understandable, predictable, consistent, and good at what it does. If it also does something that a lot of people want, then it is likely to become a successful tool. Achieving this combination usually requires a strong vision of what the tool is. And a design flows from that. Questions about how it should work often go back to the vision.

Such a tool, successful or not, is usually subject to criticism ("It doesn't do what I expected/want it to do") and suggestion ("It would be great/so much more useful if it only allowed you to do this, perhaps with an option.") When these suggestions come from people who do not share the vision, or have a different vision, there is conflict.

It's that moment of conflict that can be a challenge for any software's vision, sending it down the path leading to possible software bloat.

I've worked in environments with and without that strong vision and I can say that the situation is much better for the developer and for the product with a strong vision and support from management to stick to the vision.

Another way to say this is "people who want to make everyone happy often make complex software that ultimately makes fewer people happy." It's ironic when giving in to suggestions in an effort to expand the usability of software and make more people happy has the opposite effect. But a simple tool that fulfills clear and simple expectations is a source of joy for users, and they will either get over the fact that it is missing features, or will move on to something else.

Feature creep is a little like ripping open the goose that laid the golden egg. The goose is the vision. There is a reward for sticking to what you've got rather than ripping apart your vision in search of more gold.

Posted by James at August 9, 2009 12:44 PM
Create Social Bookmark Links

Copyright © 1999-2007 James P. Burke. All Rights Reserved