Agile Development with a Compass
Integrating User Experience Design
Written By: Charles, Elyse, Sholom & Alice
Pathfinder Associates, LLC
Teams following an Agile methodology can find it difficult to
imagine integrating UXD into their process. We'll show you how to
do so successfully at any stage in your development cycle.
A salesman from a client we were beginning to work with commented that one of his prospects, after
seeing the sales demo, stated: "You've made this great software.it can do everything we need it to
do. But we just don't have anybody smart enough to use it."
|
Which would be funny, except perhaps to the product manager and
definitely not to an end user. Luckily, this project was not a
complete loss. The client had a good grasp of the programmatic
requirements and actually had a functioning implementation.
However, they did not understand nor did they research how their
users should interact with the software. The result? A vast gap
between how the software models were intended to work.and how
they actually worked.
User Experience Design (UXD) focuses on the user or, more
specifically, the users of your software in order to build a bridge
between them and the business solution you are developing. You do
not want a great idea to fall flat because it does not connect with
your users. Integrating UXD into the development process effectively
bridges this gap. The common thread through the many varities of
Agile Development is a focus on rapid iterations to produce working
components in a very short time. Instead of spending months
planning them and then executing, the components are iterated
multiple times in a collaborative team setting.
Software Lifecycle:
Let's take a look at a very general overview of the entire
development process so we can isolate the benefits and risks. From
initial concept to release, User Experience Design should be
integrated at all stages. The reality is that consideration of the user
generally halts at research and picks up again post-release with
frustrated customers calling your Help Desk. While integrating the
UXD team at the beginning of a project is ideal, it's not always
feasible. However, introducing the user at various stages of the
development cycle will still bring tangible benefits to your final
product.
|
|
To illustrate our point, we.ve created four scenarios illustrating various times where UXD can be inserted into a very abstracted 4- phase Agile development cycle. Our most common engagement is with teams who already have at least one release completed.
Scenario 1: UXD at Phase 1/4
Your development team is in the inception phase, brainstorming on architecture and gathering user
stories and/or use cases. You have some grasp of the business requirements and are starting to get
some inkling of who the actors are. How can UXD help?
Let Development Know For Whom They're Developing:
Incorporate Personas: In order to incorporate the user into the software process, the team must
know who will be using the product they're creating. The most effective method we've found to
disseminate this information is through the creation of personas.
|
Personas function as a decision-making tool that brings
focus to the application because they represent the users
and their goals. They're invaluable in helping team
members reach consensus on the best way to serve the
users. needs, because they create a shared vision for
whom you're designing.
Ideally, personas are based on user research conducted
prior to an iteration. However, in this scenario, we'll
initially create personas based on the information we have
and expand the details as more requirements become
known. Using the identified primary actors and roles, tasks
will be grouped into personas. Personas help teams make
key decisions early on in the process by allowing them to
view the software through the users' experience.
Well written personas are more than lists of tasks and
goals: they are also memorable characters that become an
effective shorthand in discussions of functions and
features.
|
|
Personas Help to:
Eliminate the "we must develop for everyone" discussions.
Keep the team focused on features and scope for the users goals, not the edge cases.
Present User Stories from the user's point of view.
Create task flows that diagram how the user will walk through the feature.
Visualize key decisions before code is written.
|
|
Describe the Feature:
User Stories: Using the personas, the UXD team and developers collaborate to write user stories for
the features to be developed in the current iteration. These very general definitions of a requirement
contain just enough information so that the developers can identify their high-level tasks and
produce a reasonable estimate of the effort to implement it. By introducing the user at this stage,
the developers are alerted to any users' needs that must be accounted for in their estimations.
Diagramming the Details:
Once a feature is explained through stories, the team needs to decide how the user will step through
that feature and determine the content and behavior of each screen. Depending on the size of the
team, the project size and iteration length, some of the tools below will be employed to visually
represent how the user goes through an application and to define the layout and content of the
presentation layer.
Taskflows: For each feature, high-level taskflows are diagrammed to map the necessary steps a user
must take in order to complete the task. As the flows are discussed with the team, details are
identified and added to the diagram to show decision points, subtasks, etc. The developers now have
a good idea of that feature.s workflow and the necessary data for each step.
Screenflows: Screenflows let the development team know how many unique screens need to be
created, e.g., list screens, detail screens, and so on. They'll also begin to identify some User
Interface (UI) behaviors that will help to build consistency in the workflow, such as: certain types of
errors send the user back to the originating page, or, search results of one can skip the list results
page and send users to the details page.
Wireframes: Wireframes are a schematic created for each unique screen type and visually
demonstrate the functional layout and hierarchy of each of these pages. They usually reflect the
business rules in a visualized form, which leads to focused discussions. In addition, they document
any user interaction specifications. The visual designer works from the finalized wireframes to create
the application.s interaction context.
Identifying Patterns:
Wireframes are invaluable in identifying common User Experience design patterns at both the page
and widget level. From this information, the development team can create a library of reusable
interface designs for the application, noting the appropriate interaction information for the behavior
layer. Any future enhancements can then be plugged into
the flow and evaluated for usability and consistency.
Rapid Prototyping:
Throughout this entire process, the UXD team can assist
both business and development by creating prototypes for
the various features and getting development's input.
Quickly producing low-fidelity, paper-based prototypes or
even whiteboarding task flows can demonstrate a desired
feature or interaction much more clearly than a written
document or a verbal description. This is enables a
timescale of hours rather than days, and avoids expensive
rework. As details become known, and if it's important for
a feature, higher-fidelity prototypes can enable users to
walk through an interaction sequence and allow the team
to elicit feedback on its merits.
Iterative User Testing:
Although user testing is beneficial at several points in the
design and development cycles, both to obtain user
feedback and correct any potentially off-course decisions,
|
|
User Testing:
In addition to unit tests and QA test
cases, UXD brings user testing into the
iterative development cycle. User
testing at this stages benefits the
project by:
Validating assumptions based on business rules and development constraints before the product is released.
Garnering useful feedback which allows team to expand vision without necessarily expanding scope.
Getting early buy-in from the market.
|
|
it can be challenging to incorporate assessment sessions into rapidly iterative Agile development
processes. One suggestion would be to make the testing asynchronous with the development process,
and conduct testing at the end of a release. Of course, it will be crucial to frame participants.
expectations, as they will be evaluating a product that is only partially finished. However, testing
need not be formalized and conducted in a usability lab environment: so-called 'hallway testing,' in
which team members, SMEs, etc., participate in a quick evaluation, can often yield valid feedback.
But even as few as two actual users can provide significant information, even at a late stage.
Scenario 2: Six weeks out; phase 3/4
The project cycle is six weeks away from completing development for the release. The development
team is currently in the middle of iteration 3 of a 4-iteration cycle. At this stage, a UXD team can still
introduce the users' point-of-view into the design of the software.
Rapid Prototyping:
The UXD team will start by talking to the project stakeholders in order to understand the high-level
project requirements but focusing on the feature requirements for the current release. If
appropriate, a quick review of the software will be undertaken in order to understand the end-to-end
flow. At this time, any inconsistencies in the presentation layer will be identified and
recommendations noted.
Who Is Using the Application?
For the remaining features in this release, the UXD team will identify the major actors and begin
establishing a user model. A primary persona will be created, identifying the appropriate user types
for this iteration along with their major tasks.
Stories will then be written or reviewed using the personas as a means of placing the user within the
context of the software. Written this way, they're helpful in describing how software should behave
and in developing the appropriate actions.
For example, if a story indicated the user has frequent interruptions (e.g., working in a call center),
the team will discuss whether or not the software should provide the options of letting the user
temporarily abandon a workflow and then provide visual feedback to remind the user of the status of
the abandoned task. From here, the team will investigate if the data model and workflow can
support the designed solution or if modifications need to be made on either side.
Presentation Layer, Meet the User:
Depending on the complexity of the story, diagrams will be created to illustrate the end-to-end task
flow or how a specific feature fits into the overall task flow. For mature software, screenflows will be
used to diagram integration of the new features. Initial concepts are created with the development
team in order to get their immediate feedback and insights. When details are better understood,
wireframes are created, laying out a hierarchical relationship of information and detailing the user
interactions so the front end can be built.
Any design flows will also be reviewed with the QA team to assist in their writing of test plans for
that iteration. Final documents will be incorporated into the stories using the preferred method of
the development team (a wiki page, an attachment to X-Planner or XPTracker tasks, etc.) and
presented at the iteration kickoff meeting.
Scenario 3: Two weeks left & counting; phase 4/4:
Ten working days until code freeze. Roughly 6000
hours of developer time with intravenous
Mountain Dew'. Suddenly, the Marketing VP
appears and claims that your users will not
understand your software. Sounds like an
impossible scenario? Most recently clients
approached us with this scenario in July 2006,
September 2006 and February 2007. These situations occurred
|
|
"We made this great software it can do everything we need it
to do.
But we just don.t have anybody smart enough to use it."
Pathfinder Sales Prospect
|
|
because of different circumstances, but they shared a common thread: despite
the best intentions, an idea of the user was formed that either did not match reality or was not
individuated beyond the initial requirements phase. Meanwhile, the idea of sleep is appearing smaller
and more distant in your mind's eye.
What you need is an objective assessment of how your expectations differ from those of your users,
and an insight into how your system's mental models are functioning.
Heuristic Review:
With a heuristic review of your current software, we can usually find about 80% of the mismatched
models. What's a heuristic review, you ask? Also known as an 'expert review,' 3 to 5 Information
Architects, Usability Specialists and Business Analysts sit down with your software for a day and
individually assess it according to our adaptation of Jakob Nielsen's well-known evaluation criteria,
which identify system deficits and allow the evaluators to rank them according to severity. The
development team then ranks these flaws for ease-of-fix. With the combined results, we produce a
quick report that is a survey of the internal coherency of the application and a roadmap for future
revisions.
Prepare for the Media:
Armed with the findings of a heuristic review, you can anticipate potential challenges in the
marketplace with users or the media and prepare a response. (For further examples of these
strategies, please refer to any evening news show.) Remaining in business will facilitate the revision
that fixes these issues.
It's the Little Things:
Best of all, there may be simple fixes development can quickly implement that mitigate major issues.
We have seen many instances where a small fix yields a disproportionate gain. For instance:
Moving buttons that have been placed next to each other where a missed target will have
destructive results. A simple physical separation can improve test results.
Reviewing the way page elements are grouped and sequenced may lead to dramatically better
comprehension as to what needs to be done next.
Changing a word or two from internal team lingo to one the user understands can enable
comprehension where none existed before.
User Interviews:
UXD can then employ additional techniques as time allows. For instance, now that we have a rough
knowledge of what the software is trying to accomplish, we can interview users of several varieties to
gain additional insight.
If this is a new software concept, users will have to be exposed to the software in a realistic fashion.
What likes and dislikes do they carry from previous tools they have used? Are those preferences based
in workarounds or goals? We have seen situations where entire categories of jobs are based on the
workarounds for a poorly conceived and implemented tool.
If this is existing software, then users of the previous version need to be exposed to the software to
gauge their acceptance. During this assessment, issues are recorded to be resolved and the changes
incorporated in upcoming iterations.
If actual or potential users are unavailable, we use proxies. Proxy users are often pulled from
development or marketing staff and have sophisticated biases regarding the project. They may be
different from the expected user, but a careful reading of their responses can yield valuable insight,
as well as prepare Customer Support for the issues they will face. And better a proxy than no user
feedback at all.
Scenario 4: Before iterating...
Ideally, high level business, technical requirements and goals should have been uncovered using
imagination and user research as part of the cost/benefit analysis that justifies moving ahead with
development. This mix of business and user goals, technical opportunities and constraints provides
the inputs into the overall application vision that establish the outline for the project and leads into
the Agile epic story. This vision becomes a compass and provides the direction against which
iterations are compared to make sure the components are consistently aligned, both in terms of user
experience and business goals.
Discovery:
The two primary activities that comprise Discovery are planning and user research. Both rely heavily
on a user-centric approach, and both can align with and benefit Agile methodologies. The key
questions are simple: What is the context? What is the need this software fulfills? What is the scale of
the solution?
Planning:
In the planning stage, UXD collects and analyzes information to be shared with the development
team. Early activities focus on gathering materials to generate project and iteration outlines that
can be used by UXD to complement and strengthen the development process. We will look at any
input we can within the boundaries of time and scope: existing research, competitive reviews,
available scientific research, previous versions of the software redefined as requirements maps or
anything relevant that is available.
From the inception of this stage, UXD liaises with team members from the business and technical
sides to document the history of the project, record the existing methodologies and environment,
gather requirements, and identify and document goals and metrics.
Initial User Research:
In the initial User Research phase, UXD focuses on building an accurate and detailed picture of the customer and their environment. We will typically conduct primary user research through interviews and field observations, then document the users. goals, needs, and requirements. This will be used to generate initial personas and high-level task flows in the early stages.documentation that will serve as a reference point to validate whether business and development goals support user requirements throughout the entirety of the project. Development use cases are generally based on Customer Support events, which are complaints. UXD can provide independent research instead of reactive development. These early steps facilitate a smoother process and informed Agile development, facilitating a soft landing in iteration zero.
|
|
Benefits:
Presentation layer reflects users needs.
Data modeling incorporates flexibility for user requirements.
Workflow matches the users model.
Patterns of interaction are identified and translated into code economies.
Reduces Help Desk complaints.
|
|
Conclusion:
Overall, one of the most important roles of the UXD team in the development process is to safeguard
and sustain the project's "big picture," while integrating the users. needs with each successive
development feedback loop. During each iteration, UXD collaborates directly with development,
ensuring continuity as the technical team focuses on tightly timeboxed tactical activities, from daily
scrum meetings to the multiple iterations of successive releases.
This ensures that the project maintains a consistent relationship to its users - this avoids the risk of
developing disparate modules, then having them recombined without context; a common pitfall in
Agile development. With User Experience Design as part of the team, the users become the compass
that guides the effort.
After all, in any given software product development, there are outcomes you design for:
A positive business outcome.
A product that your users can understand and that helps them be productive
A process that enables and supports the next iteration
Working closely with development in an iterative fashion keeps the demands of the presentation layer
aligned with the needs of the application layer. The end result is usable software that successfully
meets your users' needs.
We invite your feedback, critiques and ideas on this paper. Agile methods are continually being
innovated; call us at the number below or email us at cfield@pathf.com
About the Authors:
Charles Field
Charles is the Creative Director at Pathfinder and has extensive experience in Visual Design and
Information Architecture. Prior to joining Pathfinder, Charles served as Creative Director of
Adobe.com, the Knowledge Management division at US/WebCKS & the head of the Brand &
Interactive departments at frogdesignSF. He led the design of community sites for Encyclopedia
Brittanica and the world.s leading Customer Support application for GenesysLabs. As a design
historian and typographer, he has taught industrial and graphic design studios and theory courses at
graduate and undergraduate levels, and currently teaches design theory at The School of the Art
Institute.
Elyse Sanchez
Elyse is a Senior Usability Specialist at Pathfinder. Previously, Elyse was a senior member of the User
Experience Group for DiamondCluster International, a global consulting firm. Her projects, here and
abroad, introduced her to colleagues and clients from Sweden to San Francisco to Sao Paulo. During
her six years with the firm, she designed websites, applications, mobile devices, and kiosks for
potential users in multiple languages and countries.
Sholom Sandalow
Sholom is an Interface Designer at Pathfinder who has experience in a wide range of industries. His
early work came as a motion graphic designer for a New York based Post-Production company. He
created interactive DVDs, electronic billboards and corporate presentations. His work was featured
among other places, at the 2002 NBA All Star game in Atlanta, Madison Square Garden, and on
National Television, and his clients have included American Express, the National Oceanographic and
Atmospheric Association, Garnier and the Telecom Pioneers.
Alice Toth
Alice Toth is a Senior User Experience Architect at Pathfinder Associates. She brings with her 12+
years of application design experience garnered through various Internet start-ups (and shut-downs)
and consultancy projects. Her most recent involvement has been with designing and developing the
user experience for enterprise-level web applications, including i18n and L10n requirements, used by
such clients as Motorola, Nokia, FedEx and Symantec. The underlying theme of her practice is a focus
on optimizing the presentation layer and work flows to achieve the ideal balance between user needs
and client requirements.
About Pathfinder Associates:
Pathfinder Associates builds software products for enterprises and software vendors. Pathfinder.s
approach integrates user experience design with agile development to improve software quality and
accelerate development. This approach helps Pathfinder's clients speed intuitive and reliable
software to market. Pathfinder has offices in Chicago and New York and offshore delivery centers in
India and the Philippines.
Pathfinder Associates, LLC
215 W. Superior
Chicago, IL 60610
312.372.1058 x6006
For more information, please visit us at www.pathf.com
|
|