Process

Our approach to developing interactive applications is both user-centered and agile. We will start by focusing on user goals as the basis for design. The goal-driven approach helps us understand why users want to accomplish certain tasks and leave open the possibility for finding new and innovative solutions to common problems.

One of the most exciting innovations in the field of software engineering over the past several years has been widespread interest in the Agile Software Development approach. We are experienced working with teams applying the Agile scrum methodology and how to adapt common user-centered design techniques to work with this approach. We believe that every team and organization is different and that there is no such thing as a "one size fits all" process. Our experience includes years spent working with software developers and bridging the gap between user experience and software engineering methodologies. We will work to understand the needs of your organization and recommend a set of tools and techniques that make sense for you.

Here is a sampling of some of the process tools and techniques that we are able to apply.

Persona development

Personas describe fictional users and are helpful for characterizing groups of users for a given application or system.  The data that drives persona development may be gathered through a variety of research methods, including ethnographic interviews, focus groups, surveys, and usability testing.  The persona usually includes demographic information about the target user group, a description of their typical tasks, likes, dislikes, and their goals as they relate to use of the product or application in question. 

Robust personas keep the development team focused on user goals, not features. Personas will help the team consider the goals and characteristics of target users as they need to make design tradeoffs. Typically, they are used as a basis for design evaluation and walkthroughs, repeatedly prompting questions about how the prototypical user might approach the given functionality rather than allowing opinions or personal preferences to drive decision-making.

Scenario driven design

Creating key usage scenarios is also a critical part of the user research phase of the design process. Identifying and understanding how users will use products or applications to accomplish their goals is part of the persona development process; insights also come from  task analysis or a business analysis that generates ideas for  the key features and functions.  

One of the first steps in specifying a user-centered design solution is to envision the set of usage scenarios.  These scenarios begin to tell the story of how users will accomplish their goals using your new product or application.  At first, these may start as high level sketches.  As you progress, these scenarios will become increasingly detailed and may start to include representations of actual screens.

Scenarios can be easily mapped to use case documents and other downstream deliverables that will help developers construct the final product.  User scenarios and storyboards can also be the basis for developing user experience prototypes for testing and demonstrating key workflows.

Wireframing

Wireframes provide high level specification of the user experience. Classic wireframe documents include line drawings of screen content that define basic layout. They may be annotated to refect behavioral details.

Use of simple black and white line drawings or grayscale images removes focus from visual design elements when reviewing these documents. Wireframes may be accompanied by a Visual Style Guide to gain a complete picture of the intended experience.

User interface specifications

After concensus has been reached at the wireframe level, a detailed user interface specification, sometimes known as an interaction specification, is prepared. The UI spec is the "blueprint" for building the finished product or application. It describes the expected behavior in detail, and is intended for developers and testers who will need to know exactly how the software is intended to work, including control states, exception conditions, and behaviors.  Depending on the nature of the application and development team needs, a specification document may include some combination of wireframes, workflows definitions, behavior tables, and definitions of exception case handling.