Recently, I read an inspiring document. It included these quotes:
- “Everything is best for something and worst for something else. The trick is knowing for what, when, for whom, and why.” —Bill Buxton
- “Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.” —Antoine de Saint-Exupery
- “The ability to simplify means to eliminate the unnecessary so that the necessary may speak.” —Hans Hofmann
- “Simple things should be simple. Complex things should be possible.”—Alan Kay
- “Everything should be made as simple as possible, but not simpler.”—Albert Einstein
- “I have only made this letter longer because I have not the time to make it shorter.”—Blaise Pascal
I especially like the Einstein one, which I've used in works of my own. But what's surprising about these quotes is the document where I found them. It's 828 pages long and most of those 828 pages is more like this:
- To achieve coolness, start not by thinking about what the technology can do, but by focusing on what your target users really need. Before adding that “cool” feature, make sure there are clear user scenarios that support it.
- When asking a question, use labels that match the question. For example, provide Yes and No responses to a yes or no question.
- Don’t give error messages when users aren’t likely to perform an action or change their behavior as the result of the message. If there is no action users can take, or if the problem isn’t significant, suppress the error message.
Can you guess? It's user interface guidelines. Specifically, the Windows User Experience Interaction Guidelines, brought to my attention
by Qixing Zheng, a User Experience Advisor with Microsoft Canada, and available on MSDN
as a tree of web pages or for download as a single PDF
. And man, are they good! The philosophy behind them really resonates with me. The document starts out very generally, then drills in a bit, then drills in a bit more, then explodes into hundreds of pages of incredible detail about just the right way to use a button or a link or radio boxes or whatever. Here are the headings in a 19-item list that I just love:
- Nail the basics
- Design experiences, not features
- Be great at something
- Don’t be all things to all people
- Make the hard decisions
- Make the experience like a friendly conversation
- Do the right thing by default
- Make it just work
- Ask questions carefully
- Make it a pleasure to use
- Make it a pleasure to see
- Make it responsive
- Keep it simple
- Avoid bad experiences
- Design for common problems
- Don’t be annoying
- Reduce effort, knowledge, and thought
- Follow the guidelines
- Test your UI
In the real document, there's a paragraph or so for each of these that flesh it out just a little. But as you read the whole hundreds and hundreds of pages you will see how these 19 concepts are really informing all of it. And I love the courage to stop at 19, a prime number, instead of trying to come up with another one to get a round 20.
I'm only quoting the philosophy stuff here but man, there are plenty of technical details like how far apart to space controls, how to design a good ribbon, choosing your button text, working with pen, touch, keyboard shortcuts, and the mouse, when to use menus and toolbars, when your application should take focus, how long tips should hang around before fading away again, and on and on and on.
Read it, live it, pass it around. See if you can't use some of the philosphy and design guidance in your web apps too.