Geeks With Blogs
John Conwell: aka Turbo Research in the visual exploration of data

Generally I'm not one to write a post that does nothing but highlight someone else's blog post...BUT...this one was important enough (IMHO) that I decided to break my own rule. 

Are you building a Leatherman or a Samurai sword?  (stupid linker isnt working)

http://petewarden.typepad.com/searchbrowser/2008/07/are-you-buildin.html 

As programmers we always want to write new functionality...neat, new, COOL functionality.  That's just what we do, and we love it. 

But its hard to keep in mind what our added functionality does to user efficiency.  No matter what we think our job is all about, its really about making the lives of our users easier and more efficient.  That’s it…done…its that simple.

This is easy to understand when writing a UI application.  If a new feature causes the use to perform 5 extra steps with the UI, but those 5 extra steps only give a small return on efficiency (so small it wasn’t worth the time to perform the 5 new steps), than drop the feature, its not worth it.  If the feature is complex or confusing, and will cause the user to misuse it or skip it all together, than drop the feature, its not worth it.

Where this becomes harder to evaluate is in writing an SDK API.  Like the above post states, we all want to write the ultimate architecture.  The one that can do anything and everything.  But "anything and everything" can quickly become a directionless mess, where you have a several hundred of classes with obvious direction on how to weave them together into the next "Wonder Bread".  What you end up with is a big mess that your users (other developers) will mostly likely just pass off as too complex and look for a simpler API.

The last part of the above post states it perfectly. 

"You end up with a million features, which makes it very time-consuming to build, and even when it's done, the number of different gizmos on your Leatherman scare off potential users. You need to have a strong connection to your actual customers, and be hearing about exactly what they need to do. Then you need to design around that, ruthlessly jettisoning anything that distracts from them achieving their goals."

Posted on Tuesday, July 22, 2008 9:10 AM Ramblings | Back to top


Comments on this post: Complexity and Usability

No comments posted yet.
Your comment:
 (will show your gravatar)


Copyright © John Conwell | Powered by: GeeksWithBlogs.net