Thursday, September 16, 2004

Usability

Joel has an interesting article on social usability here.
A point he makes (besides the one that the article is actually about) is that

this just goes to show you that usability ain't all that important
But that depends.
Usability is not so important when there is a popular precedent. e.g. Mozilla Firefox doesn't need to reinvent any basic browser UI. They'll add to it and try to make it more usable but no user of theirs has to learn the basics (if they need to, there are enough "browser-gurus" around). Usability is also not that important at a micro-level like in Joel's example. You can go wrong and use buttons instead of tabs and most users won't even notice.

On the other hand, consider ConceptDraw MINDMAP. What they are doing might have a precedent but isn't that well-known. Usability for these guys is their holy grail. And Ramesh will tell you they are great. He just loves the product. He's their power user now. For them, the entire experience is important. Conceptual usability is paramount and then they must have the right micro-level usability worked out too. You see, they are a brainstorming tool. The last thing you want to do in the middle of a brainstorming session is to wonder how you insert another level in the damned diagram. For them, getting it right makes all the difference.

Usability changes over time too. When part of Pramati's Studio initiative, we were amongst the first IDEs that had J2EE development in it. People we showed it to were new to J2EE itself. Especially in terms of using archives like EJB JARs and WARs and EAR files. Over the next release, we had Express Development (tm) (which is present in one way or the other in all J2EE IDEs today) which does away with archiving (deploying source modules automatically - known popularly as exploded deployment) but by the time we had this out, many people had gotten used to the new paradigm. Thankfully we had provided the option of exporting modules to archives (which is what these people used extensively - instantly recognizing the "Export As Archive" option on a module). The point here is that over time, the definition of "good" usabililty had changed.