Our Process

A primary factor in our success is our ability to apply an iterative process of conducting user research, carefully designing consistent interfaces, performing usability evaluations on those interfaces and feeding lessons learned into the next design iteration.

User Research

The purpose of user research is to address the requirements level question, "What to build?" If requirements are inaccurate the project schedule is at risk and time to complete will increase as developers code to changing requirements. Creating accurate requirements requires user research because of human limitations. People cannot describe their actual work process in enough detail for requirements. People are not able to accurately predict how they will use a new technology. Another danger is that when a person does not know the answer to a question about their work practices, they will often make something up without realizing how this is the case. Even features users ask for directly are often not the ones they want as they don't see the big picture or fully understand the underlying technology and this effects their requests.
We use observational, ethnographic methods to understand the user's goals and context. Where possible we observe and participate as apprentices in the user's work in real-world situations. Where not possible we conduct retrospective interviews with an understanding of the types of data that are and are not reliable.

Interaction Design

In order to create a coherent design we combine many factors: findings from user research, understanding of human capabilities, capabilities and constraints of the technology, deadlines or resource constraints on development and our experience of which strategies are likely or unlikely to be effective. Traditional software engineering focuses on feasibility, system efficiency and stability but tends to gloss over consistency and human capabilities like the limitations on human memory or the likelihood of errors due to cognitive load.

Usability Evaluation

The purpose of usability evaluation is formative and feeds into interaction design. Ideally most of evaluation is done on prototypes such that relatively few changes are required during development. Evaluation methods fall into two categories. "Expert evaluation" is done by trained HCI professionals and do not require access to users. "User evaluation" requires collecting feedback from actual users. These two categories provide different types of data and should be used to complement one another. Expert evaluation tends to provide more complete coverage while user evaluation will provide limited coverage but stronger validity. Evaluation is critical because even the best interaction designer will make assumptions and trade-offs. Although we try to minimize this, some decisions be wrong and must be uncovered early and fed back into the design.