Sunday, April 13, 2008

The User Interface is the Root of All Evil

Developers see UI as frosting on cake, should be most important element ...

"I'm into my third decade of developing software now. I've gone from Structured Design, to OOAD and SOA; from waterfall to RUP to Agile. There is one aspect of software development that has remained fairly constant in all of that time: nothing causes as much complexity and bad architecture and design as the user interface.

I'm not saying that MVC or PAC based UI's are complex to design and implement, though they can be. Rather, I'm saying that the user interface can infect the rest of your system -- the domain model and other business logic -- leading to a poorly designed and hard to maintain system.


I can think of two examples from the insurance industry. Now, without giving away confidential information, both of these systems originated from a paper-based process. The initial UI in both cases looked a lot like the original paper forms. The workflow was also largely similar to that of the paper-based ancestor, which made allowances for human frailties, such as poor memory or limited abstract reasoning ability. In both cases, the artifacts of this awkward interface -- steps, artificial decision points, etc. -- ended up as entities in the domain model. In later versions of these systems, a large part of the development effort revolved around working past or reengineering these white elephants in the domain model that were no longer relevant to the way the business worked.

It may be counterintuitive to most developers, who view the UI as the frosting that goes on top of the back-end cake, but getting the UI right may be the most important step in getting your back-end design right.

You might say that this is really about getting the business process right. Right you are. An application often models some portion of one or more business processes. Getting the goals and taskflows right is what UXD is all about, and why we incorporate it in our Agile development method. It may be counterintuitive to most developers, who view the UI as the frosting that goes on top of the back-end cake, but getting the UI right may be the most important step in getting your back-end design right.

When I first started out developing software, many experts advised against using things like wireframes and prototypes. The thought was that users and clients would become too focused on buttons and fonts and layouts, and not focus enough on what the application was supposed to do. Experience has taught us that while this notion is true, the typical user has a hard time thinking about what a system is supposed to do in purely abstract terms. The trick is guiding them through the requirements gathering process while not letting them get absorbed by all the ephemera of visual design. Use personas rather than actors ("Bob Manager" and "Sally Compliance Officer", rather than "Administrator"); use low fidelity wireframes and prototypes instead of high fidelity ones; always keep them focused on goals, processes and task flows, i.e. why is someone using this application and what happens when we assemble these user stories in a sequence?"    (Continued via Agile Ajax)    [Usability Resources]

Good UI = Good UX - Usability, User Interface Design

Good UI = Good UX

0 Comments:

Post a Comment

<< Home

<< Home
.