Tutorials Point

SITE SEARCH
 

  White Papers
  Knowledge Sharing
  Selected Reading

© 2008 TutorialsPoint.COM


  Home     References     About TP     Advertising  

Agile Development with a Compass

Integrating User Experience Design

Written By: Charles, Elyse, Sholom & Alice

Pathfinder Associates, LLC

previous next

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.

Agile Development

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

previous next Printer Friendly



  

Advertisement