12th
2009
Apr
permalink

Good Design = Balance

Good design is all about balance.

  • Aesthetics makes your product attractive and approachable. It makes people want to try it.
  • Usability makes your product pleasant to use to get a job done. It makes people want to continue to use it.
  • Economy makes your product practical. It makes people willing to pay for, and thus, support you making it.

Without any one of these things, your product will struggle. But a lot of the time, increasing one can only be done by trading another.

For example, say you were designing a door. Yes, a door in a building that people walk through. You could make it aesthetically pleasing by making it symmetrical and blending into the wall around it. But the symmetry hides which side the hinges are on, so people end up trying to push or pull the wrong side. Blending into the wall may make people not even be able to find the door at all. These both decrease usability. So you decide to install weight sensors under the floor to detect when someone approaches, and open the door automatically. Now you need motors to open and close the door and wiring to link it to the sensor, increasing cost, in materials, the design of the mechanism itself, and the installation. So you could use a motion sensor above the door instead, reducing installation costs. But now the sensor is visible, decreasing the aesthetic appeal. You could use a smaller invisible sensor, but that costs more. So say you figure out the right combination of sensors and motors. You just decreased usability of the door. What happens when the power goes out? Suddenly your door doesn’t do the one thing it was designed to do! Open. You could fall back to a manual push or pull, but this makes it inconsistent for users. In a building with many windows, it may not even be clear to people trying to walk through your door whether there is power. You can fix this usability problem with some kind of battery backup. This not only increases the initial cost, but maintenance cost too. And where do you put that battery? Unless the exact building you’re putting this door in is conveniently set up with big access panels, you’ve done a number on the usability for the maintenence staff. The motors also introduce noise pollution and the possibility of opening a door and hitting someone. Unless, of course, we spend more on sensors and the intricacy of the mechanism. And on and on and on and on…

Design is not purely opinion. Good design is about finding the right balance. Like anything, this is something you can get better at with practice.

Learnability is a combination of other aspects that work together to help turn new users into experts. Experts spend less time to do the same tasks, have the ability to help others, and can fix things when they go wrong. Some things that increase learnability are a simple approachable appearance, context-sensitive tips, and giving users the ability to explore when they choose. Big, oversized things feel simpler and more approachable, even though they’re really the same. Game aspects built into your most boring app can make people want to use it. And the more people use it, the more of an expert they become.

Providing help on how to fix a problem when something goes wrong, without the user having to know how the thing works, is essential; because without this, you’re basically forcing users to be dependent on experts when something goes wrong. And something will go wrong. Many times it’s not the user’s fault. How many times has your boss told you to do one thing, only to tell you to do the exact opposite the next day? Every action should be undoable.

Emacs is a good example of a program that is usable and cheap, but not pretty or learnable. Some developers swear by it and use nothing else. But to do anything besides basic typing and saving, you literally have to stop and learn it. Even accessing the help requires a significant amount of knowledge. Ditto for Linux and git.

Eclipse, on the other hand, is more aesthetically pleasing and approachable. Instead of inventing all of its own keyboard shortcuts that have to be learned, it uses the convention of other editors. It’s usable, but usable for a different audience than Emacs.

Everything is a trade-off. Balance is everything.

Extensibility is another important aspect that allows users to add on to or extend your product in ways that you either don’t have the resources to do yourself or are very specialized for a small group of users. Extensibility is important because no product exists in a vacuum. Users will use your product alongside all the other things they already use now. Having your product play nicely with all those other apps is something that users often can’t live without. Empower your users, even if it’s just the experts. Allow the forces of nature to take your product where you alone couldn’t have imagined.

The only reason Emacs still exists is because of its extensibility. In Eclipse, the barrier to extension is higher. True, both editors require you to learn a programming language, but in addition, Eclipse requires you to learn and use another language — the XML configuration language that allows the editor to actually use the extension. In Emacs, it’s just two keystrokes away. And since Emacs’s interface is only text, it’s easier for programmers (the ones making the extensions) to fit their extensions in with the rest of the editor’s conventions. One-off scripts can be born, which have the ability to evolve over time. But with Eclipse, you have to stop, decide you’re going to make an Eclipse plug-in, and learn how to do that.

When it comes to extension, Emacs and Eclipse are exactly the opposite of what they are for learnability of their regular interface. The choices each made for one aspect, traded something, and thus determined the other aspect.

Balance is everything.1


1. On a side note, the “good design = balance” equation goes the other way too. When something is perfectly balanced, there’s almost no question that it was designed. This applies to products, but also the Universe. It’s funny how people argue over intelligent design vs. evolution as if they were mutually exclusive. If you think like a designer, there is as much evidence for one as there is for the other. One is the cause, and the other is the mechanism.

2 notes

  1. lystra reblogged this from jonnytran
  2. jonnytran reblogged this from plpatterns
  3. plpatterns posted this
blog comments powered by Disqus