Meta

What reading Tufte won’t teach you: Interface design guidelines

Iâ€™ve just spent two months carrying a terrible, ancient cellular phone and a mediocre non-Apple music player around the planet, and interacting almost exclusively with Windows XP terminals at internet cafes and hostels. As my frustration with these poor interfaces grew, I started a rough list of interface design guidelines. Here they are:

* The application interface should be fast and non-blocking. * The application interface should be consistent. * Donâ€™t interrupt users in the middle of common, nondestructive tasks. * Avoid notifying users of success. * Avoid giving users information that they cannot use. * Rare, destructive actions should be harder to complete than nondestructive ones, but always possible. * Give users the chance to ask for forgiveness rather than forcing them to confirm. * Deal with application failure gracefully. * Preserve state, mode, and user input for as long as it is relevant, until users save or discard it. * Provide multiple, complete navigation paradigms. * Design the interface before starting to code. * If the application violates one of these rules because its design makes implementation of a better interface too complex or too difficult, then the application needs to be refactored until it supports a better interface.