Share via

Usability in Practice

The Human Face Of Software

Dr. Charles B. Kreitzberg and Ambrose Little


So, What Is User Experience?
It Ain't Just Paint
The Facets of UX
Synergy with Agile

Welcome to Usability In Practice. This is the first in a series of columns that will focus on the design of the user experience (UX). In the past, user experience was not a high priority for most development projects, but that's changed. Today, end users have a lot of experience with the Web and with software. They want design that's easy to learn and use and that fits their workflow. This column will show you how to deliver such designs.

Although UX design is a well-developed field, its integration with development processes has lagged. This is a bit surprising since UX is, by its nature, a highly iterative and agile process. However, with the increasing involvement of the development community, we expect that development frameworks will pay more attention to UX design and its critical touchpoints.

We, the authors, are both user experience designers, but each has come to the field through a different path. One of us (Charlie) was trained as a cognitive psychologist, and the other (Ambrose) has come up through the ranks as a developer. We both have a passion for UX, but we see it through different lenses. Our mutual goal is a design methodology that fits comfortably into development processes and which treats good UX as essential to the creation of successful interactive products.

So, What Is User Experience?

The term "user experience" describes an individual's subjective experience when she is interacting with a product. Every day we discuss usability informally when we report a great experience at a restaurant or a miserable one at the movies. But when designing or evaluating the user experience of an interactive product, we need a more structured way of looking at the product and discussing it.

To UX designers, success means creating products that are useful, usable, and desirable. To be useful, the product must deliver value to the user. In development terms, this means that the product must implement the right functionality. Usable products are easy to learn and use. Desirable products are products that users crave. The more desirable a product, the more time and energy a user will be willing to devote to it. Passionate users are a product's best advocates.

It Ain't Just Paint

People often mistake UX for visual design, equating it with colors, fonts, and aesthetics. Of course, graphic design is a component of the user experience, but the UX design process goes far deeper. At its core, UX is about how functionality is implemented in terms of user-system interactions.

Functionality specification has always been part of development. In an admittedly oversimplified view of traditional design, a business analyst produces a set of requirements, which are handed off to a developer. The developer then determines how to implement the requirements and produces a product. However, traditional development methods have often ignored an analysis of task flow.

While a business analyst tends to be concerned with what a product should do, the UX designer focuses on how the function should present itself though the UI. Because users have different skills and needs, the UX designer determines what user segments need to be supported. The designer will gather data about the user segments and may create personas—fictional biographies of users based on real user data—that help focus the discussions during the design process. Using interviews and observation, the UX designer will learn what tasks the users perform, how they approach the tasks, and what words they use to describe the tasks. This data may be summarized as scenarios, user stories, or storyboards.

With the user segments and task flow documented, the UX designer can then begin producing designs. These are typically produced in a highly iterative fashion, starting out at a high level of conceptualization and increasingly refined as the design progresses.

Usability testing is a form of design quality assurance (QA) used to identify problems with the design concept. Typically, participants are drawn from the identified user segments and asked to perform specific tasks. In early stages, the UI may be simply drawn on paper and the participant points to the controls to show how the task would be performed. In later stages, high-fidelity prototypes are frequently used.

The Facets of UX

User experience design is comprised of a number of subfields. Most UX designers have skills in all the core areas, but some are more specialized. The key areas are interaction design (IxD), information architecture (IA), user research, visual design, and usability testing.

Interaction Design Defines how the user interacts with the product. It specifies the behavior of the product in response to actions by the user and focuses on the product's navigation as well as the specific controls that are used.

Information Architecture Defines how information is organized and presented. Its goal is to support discoverability and usability.

User Research The process of studying users in order to develop a design that meets their needs, capabilities, and preferences. The methods are varied and typically employ a number of interview techniques along with observation. User logs and secondary sources are also used. Surveys and focus groups can also be used although many UX designers avoid them.

Visual Design The graphic treatment of the UI. Visual designers may be graphic artists rather than UX designers. While visual excitement is important, it is also essential that the visual design does not impair readability or usability.

Usability Testing The process of observing users performing specific tasks on a prototype or mock-up of the UI. Traditionally, usability testing was performed in a lab with observers behind a one-way mirror. However, increasingly, usability tests use webcast technology.

Synergy with Agile

Conceptually speaking, the reasons for designing good UX are to increase effectiveness and efficiency, to reduce development overhead and rework, and to add the maximum possible value, whether for internal operations or for external customers.

Sound familiar? I hope so. These are essentially the same goals behind the Agile approach to software development. In fact, these goals are pretty much central to the building of all business software. Designing for good UX is right in line with basic business strategy and other software development core values. At a high level, it is a matter of putting the focus where it should be for almost all business software—on those for whom the software is being built.

It's not effective to ask users to articulate what a system should do and how. That approach puts the burden on users to translate their own needs into what they think software should do, allowing for little discovery of better alternatives, which a designer or developer might be able to suggest. User-centered design (UCD) adds value by focusing on understanding the people—their goals, tasks, and activities—and using that knowledge as the basis from which to build.

The techniques used (such as personas, scenarios, storyboards, mock-ups, prototyping, and usability testing) combined with an applied knowledge of human factors help increase the probability that the end product serves its audience as best it can. This is not to say that you ignore other concerns (chiefly, business/market and technical) but that the other concerns revolve around the humans who will be using the software.

Moreover, usability testing ideally involves the actual user audience to validate early and often (iteratively) in order to ensure that the software being created has the fewest possible usability bugs. This is a better approach than user acceptance testing (UAT) because UAT typically comes at the end of the development cycle, at which point it's almost always too late or too expensive to fix problems. It's also different in that ideally usability testing is moderated by someone with some training in human factors and who observes how users are interacting with the system, which often reveals usability problems that users are not even consciously aware of.

Practically speaking, there is a lot of synergy with Agile. Both are essentially iterative. Both require regular collaboration with the people (ideally, the actual users) for whom the software is being built.

Although there is particular synergy with Agile, it is worth noting that you can enhance any development process with UCD techniques. In all cases, it offers a similar value of enhancing the opportunity for project success by heightening awareness and knowledge of real users, their needs, goals, tasks, and activities, providing tools for better discovery of the real application requirements, and increasing the likelihood that the underlying goal of all software—to enhance some aspect of human interest—will be met.

In future installments of this column, we'll be exploring more concrete examples for incorporating the knowledge, techniques, and tools of UCD into your software development practice.


Dr. Charles Kreitzberg is CEO of Cognetics Corporation, which offers usability consulting and user experience design services. His passion is creating intuitive interfaces that engage and delight users while supporting the product's business goals. Charles lives in Central New Jersey where he moonlights as a performing musician.


Ambrose Little lives with his wife and four children in central New Jersey. He's been designing and developing software for more than 10 years and is honored to be an INETA speaker and Microsoft MVP. Lately, he's shifted from technical design to designing for people and is now a user experience designer for Infragistics.