Monday, April 16, 2012

"Every preference screen is an admission of defeat"

JWZ wrote a great thing about why he uses Safari, despite his role in the creation of Netscape. Two glorious nuggets of burning truth deserve some expansion.

 1. "I think history has proven that UI is different than software"

His argument is that UI shouldn't be treated as something that evolves towards perfection, as software can be. It has to be right first time out, because the cognitive burden you place on the user - "hey, where did my stuff go?" - outweighs any actual improvements in usability.

This goes against common practice now: Agile encourages us to start with a small set of functionality and not be afraid to revisit or abandon stuff as we develop towards a rich product. In our limited experience with Agile where I work the two things that always trip up the sprint cycles are UI/UX design and testing. What JWZ makes a lot of sense to me and supports something I've been thinking: the bulk of the UI/UX should be available before the process begins - it's part of the product vision, not an implementable thing.

That said, there's no substitute for having an IA and a graphics designer available in sprint. Pictures are a deliverable thing, the same as code - indeed they're first order things in Agile, things that the user actually gets to interact with, rather than 2nd order documentation. IAs are needed to smooth the inevitable edge cases that appear as a product gets built. Of course, both designer and IA can only perform these functions if they have a strong framework to rely on, which brings us back to the fact that the bulk of the work needs doing up-front.

2. "Every preference screen is an admission of defeat"

This should be stamped onto every visible item on a product owner's desk, and probably on their foreheads as well (but reversed, so they can see it in a mirror). Adding configurability does not equal adding functionality. Some configuration is unavoidable (think currency symbols, dates, languages); some is common politeness (larger fonts for easier reading). But if you find yourself adding a preference for something simply because you can't decide or agree on a feature, you've failed (and if you make selection of one or other of these preferences mandatory in order to use the product then you've...you've...well, I dunno, done something worse than failure).

It's easier to add a preference than to find out what the user wants, but if you don't know what the user wants why are you building the product?


No comments:

Post a Comment