Previous <— Main —> Next

November 16, 2007

Designing for the right people

Experience levelsKhoi Vinh nailed it.  His excellent post on Subtraction elegantly summarized something I’ve always thought about in user interface design: "most features are built for experts, but most users are intermediates", thus design for intermediates.

Now, take this and combine it with Jenova Chen’s ideas on game design, namely that games should be appropriately easy for novices to play, but organically offer much more for hard-core gamers, so that both feel satisfied.  For example, when a hard-core gamer strolls in to a virtual room, he’ll walk around the perimeter, checking every nook & cranny for a secret level or something cool.  Meanwhile, an intermediate players will walk through the same room, very much the same way they would in real life - glance around a bit, then get on with what they were doing.  Thus: design your game to be cool for those just strolling through (hard enough & visually interesting enough to intrigue them), and hide all the little goodies & badies in only places hard-core gamers would look.

Similarly: design any product for the intermediate.  Don’t dumb it down assuming everyone is a beginner, because most will find it useless.  Similarly, don’t throw in every feature that every advanced user might ever wish for because you’ll overwhelm the majority of the population (this is why I believe most open source apps never make it to the mainstream; if you don’t believe me, believe Walt).  The right thing to do is to design for intermediates - keeping the design clean enough that beginners can accomplish the few things they want, and put expert features in places where only experts look - e.g. plug-ins. 

This is why I think having a great plug-in architecture is key to any software product - it allows you to design for the intermediate, leaving the app usable and useful.  Experts can and will add all the crazy functionality they want in plug-ins.  The beauty of this is that they write the plug-ins.  You don’t have to invest in developing and testing those advanced features. 

Of course, this only works if you design your app with a sufficiently advanced plug-in architecture that plug-ins can add cool functionality.  Firefox nailed this.  Unfortunately, most of Microsoft’s recent apps that support plug-ins only do so in a very limited fashion - e.g. Windows Live Writer (only content insertion, no way to modify app behaviors). 

Comments

Great extrapolation of khoi's post! -- especially the point about plug-ins and programmability.

Some groups (I'm thinking Microsoft here, too) seem to argue forever about simple vs. full-featured. They end up doing a mishmash that isn't coherent for anyone.

The smart groups (and I would credit many open source projects here) tend to gravitate towards simple + extensible -- which is always effective for the reasons you give.

Good post!

Thanks!

Just thought of another: Microsoft Word is the classic example of a zillion features used by 2% of the world. That's probably why web office apps that don't have all those features are gaining momentum.

I may have too broadly condemned open source. The open source projects derived from linux & that world (even Ubuntu & Thunderbird) take the kitchen sink approach. Other open source projects that started from scratch, Firefox & Miro come to mind, keep it clean.

What do you think?

About me

is a storyteller, freelance writer, and occasional filmmaker living in Seattle.
Creative Commons License
This weblog is licensed under a Creative Commons non- commercial, share-alike license.
Powered by
Movable Type 3.2