UPA Conference 2003
    Advance Program
      Schedule
      Curricula
      Tutorials
      Presentations
      Speakers
    Workshops
      Advanced Topics
      Posters
      SIGs
      Events
    Fees
    Registration
    Conference Information
    Travel & Hotel
    Review Information
    Contact Information
    Call for Participation
  Other Events
   
  FAQ
 
 
 

12th Annual Conference - Workshops

 
Workshop 2
UCD in the Age of “Web Years,” XP, and Agile Programming Methods: Towards “Agile User-Centered Design”
   
  Gary Macomber, HumanCentric Design
Thyra Rauch, IBM
  Audience: Topics for Experienced Practitioners
  Monday, 8:30 – 5:00
   

Abstract

Winds of change are blowing across software development. Discuss how agile methods, XP, or even web development cycles are impacting your user-centered design efforts and what we need to do to adapt. Some methods will work better than others -- what are the best practices we can use?

Duration

One day

Participant selection criteria

Participants will be selected based on the quality of submitted position papers. Position papers should describe one or more case studies or experiences using UCD in an agile/XP environment or in an “agile design process” such as fast turn-around web development projects. While we are interested in your thoughts to all of the following questions, for the position paper please select the 4-6 most important to you.
  • What agile/XP project(s) have you been involved in?
  • Describe your experience adapting UCD methods to fit the development team’s process.
  • What UCD tools or methods did you use?
  • What UCD processes were the easiest to adapt? The hardest? Why?
  • What modifications to the UCD tools or methods did you make?
  • How do you determine when it is too much adapting/compromise, that is, the situation would not allow you to do the minimum quality acceptable of UCD work? What were those tradeoffs?
  • What were the reactions from development?
  • What are the advantages to the UCD practitioner of agile/XP software development? What are the disadvantages?
  • What will you do differently the next time?
  • What are your desired outcomes of this workshop? What do you expect to learn?

Desired number of participants

This workshop will accomodate up to 15 participants.

Workshop description and Facilitators’ Position

Agile methods and Extreme Programming (XP) represent a radical shift in software development. But even before that, the shift from more traditional platforms to the Web has shrunk development cycles drastically, leaving us less time for user-centered design (UCD). The challenge to UCD is to adapt and create tools to complement these styles or risk losing a place at the table – we need to get agile in our design. A major problem even with traditional software development and UCD was the perception that development was held up until all of the front end work was completed and this front end work contained a lot of UCD activities. As a result, UCD is sometimes thought of as being “too costly” for development – after all, they have a schedule they have to meet.

Do we have to abandon our proven methods to successfully integrate with these new development styles? NO! Instead our work is even more critical. A hallmark of these approaches is to get something in front of the customer as quick as possible, get responses, and then build the next increment. One way of looking at is to think of painting a picture starting from one corner and gradually working your way across the canvas. Traditional software development differs in that the entire picture is done in stages: discovery, design, development, and deployment. In each stage work on the entire product is completed before the next one starts. In contrast the other styles create minimal documentation and then generally just in time for the current development iteration. There may be at most a general idea of the end goal.

How do we, UCD, mesh into this new world? First, we need to support establishing a long-range target for the product – e.g., what do we want it to do for whom in what environment by Release 2 (not iteration 2). Second, we need to make use of the wealth of data already at hand. Yes, it may not be the closest match or the most rigorously gathered, but by leveraging the short development cycle we can get an increment of design in front of customers and evaluated before too much time has elapsed. Third, we need to take advantage of this emphasis on getting things to the customer fast to further refine our information and help direct the design. (See below under “Facilitators' Position Paper” for the position/method the facilitators will bring to the workshop as their contribution to the mix.).

In this workshop, we hope to learn from others what experiences they’ve had, what worked, and what didn’t. We’d like to start to develop an “Agile UCD” processes guide and map and to start to build a UCD process trade-off matrix relating to the “Agile Programming” world.

Applying to Participate in This Workshop

A workshop is a closed session. Admission to a workshop requires an approved position paper from you addressing the issues suggested by the coordinator(s). Please send your position paper (which should be roughly 1 to 3 pages) to Gary Macomber, macomber@sbcglobal.net. Position papers received by April 25 will be accepted or rejected by April 30, in time for you to register before the early registration deadline on May 2. Position papers received by May 24 will be accepted or rejected by May 29, in time for the May 31 registration discount. Papers received after May 24 will be evaluated at the facilitator's discretion.

Pre-workshop participant activities

Participants are asked to submit a position paper (see Facilitators' Position Paper for an example)of 2-3 pages as described above under “Participant Selection Criteria”. We will summarize the position papers and send the summary to all participants prior to the workshop. Participants are encouraged to bring samples or case studies, and to also be prepared with questions and issues they wish to explore.

Pre-workshop facilitator activities

The workshop facilitators will review all submitted position papers and select up to 15 participants who provide a variety of experiences that they can draw upon in the workshop. They will notify participants of their selection. The facilitators will summarize the position papers and distribute the summary with the position papers to the participants. Prior to the workshop, the facilitators will prepare a list of questions and discussion topics for use in the workshop, and will prepare example situations and topics to be used in the small group discussions.

Workshop session timeline

The workshop will be divided into two main activities: collecting ideas/brainstorming ideas for best practices based on experiences and collecting/synthesizing those ideas into the best practices for “agile UCD”.
Time Activity


8:30 – 9:00 Introductions, sharing expectations, introducing format and logistics
9:00 – 10:00 Short presentations of key issues by participants.
10:00 – 10:30 Break
10:30 – 12:00 Breakout session # 1
    Small group brainstorming based on key issues/themes identified.
12:00 – 1:30 Lunch

1:30 – 3:00 Breakout session # 2.
    Small group work on best practices for agile UCD methods.

3:00 – 3:30 Break
3:30 – 4:30 Group discussion on key findings. Summarization of findings.
4:30 – 5:00 Final discussion and wrap up
    What is the key issue yet to explore?
    What is the group desire for follow-up and via what mechanisms?
5.00 Adjourn

Presentation of results during the conference

The workshop facilitators will present the key results of this workshop as a poster session during the UPA conference. Participation by any of the workshop participants is also welcome.

Post-conference dissemination of results

The workshop facilitators will produce a report from the workshop for publication in either the Voice or in User Experience.

Post-conference activities

Post-conference activities will be determined at the end of the workshop by decision of the workshop participants. One example might be an ongoing discussion group to further explore issues raised during the workshop.

Facilitators’ Position Paper: Adapting to a Mixed Model Development Environment

One of the toughest challenges is providing UCD services to a development team that is using a method that allows minimal time for upfront work. Examples of this are Extreme Programming (XP), Agile Design, Rapid Application Development (RAD), and being brought into a project that is already underway. The common thread across these methods and many others are short iteration cycles and shortened front-end time. This shortening of front-end time directly impacts many user-centered design (UCD) methods.
Often a team wants to jump right into coding as soon as the project gets assigned, without gathering or using detailed user information. But by not first understanding the problem space, the design may miss critical factors. It is hard to imagine development teams not using user, task, and environment information, but we all have our stories of projects gone south or failed products. Stories give an agreed-upon and well-understood footing upon which to continue to build and evolve the design solution.

Stories are also easily adapted to agile design. By using existing data or expert opinion a preliminary story can be developed quickly and then reviewed with users. By integrating the story validation into the iteration user evaluations you can progressively validate and improve the user information.
Now let’s take a brief look at how we might modify a UCD method to work in this fast-paced world. For this example we chose to look at Story-Based Design and how to modify it to fit “Agile Design”. We also chose the “11th hour request” as the development method context. Successful modification relies on matching the modified method to the development strategy.

If you’ve been a usability person for awhile, there’s a pretty good chance that you’ve had someone come up to you after all of the development is done or nearly done and ask you to approve or assure the usability of their product. Actually, you can turn this into a good example of agile UCD and set yourself up for earlier and more inclusive involvement the next time around by following a few simple steps.

Step 1. It is important to set the stage and expectations properly. You probably don’t have the time, budget, or support to do what you really should, and it is long past the point where they should have come to you for this release. These are the constraints you will work under. We recommend turning someone away only when you can’t come to mutual agreement on the expectations. Otherwise, look at it as an opportunity to establish a relationship and start building for the next iteration. The things you can do for them fall into two categories:
1. Critical and/or easy fix items in the current release/iteration
2. Initial background, requirements, and vision for the next release.

To accomplish the second thing, you need to understand who the user is, what they are trying to accomplish, and what is the environment they are working in. In short, you need to have the story.

Step 2. Build a story sketch and fill in critical pieces. So how do you build an adequate story with no time and no resources? Easy, set your expectations at having a first draft story that you’ll validate as you do your analysis. This means gathering information from wherever you can get it immediately. The existence of a group of customers who have agreed to help you with designs makes the job easier. Use them, Marketing, Sales, and the developers as sources of information. Quickly sketch together a story that will allow you to prioritize the tasks. This will help you chose what to test and what not to in this limited time scenario. Taking the story sketch and the test tasks you can start to flesh out the story as it relates to those tasks. So the story has some sketchy areas and some filled out ones. After you finish setting up your test materials and line up participants, you are ready for Step 3.

Step 3. During the usability testing spend some time with the participants validating and refining the story. This means using a variety of methods with the participants. Start out by reviewing the story sketch and ask them about the task frequencies and how critical those tasks are in their environment. Then, during the testing, ask about the steps they use in performing the tasks and about the relationships between tasks. Don’t forget to ask them to review the user descriptions you’ve written.

Step 4. Take all of the information gathered and update the story, adding and changing as necessary. This will provide you with the overall context for your recommendations and the baseline story for the next iteration.
Now, what are some of the general results we’ve seen from our efforts?
An example of a mixed model development environment recently provided an opportunity for one of us to use stories as a way to blend the two processes together. This was a project involving two different development teams – one using XP and the other using traditional software development. The development team using XP had already had a bad experience with UCD and had decided to do it without much UCD involvement.

This was a good chance to show what could be done quickly using user profiles, task analysis, stories, and low-fi prototyping. Adapting the methods wasn’t too difficult, though some things were sketched in first and validated/revised later after user data could be gathered. More problematic was explaining to development what was the result of adapting to the programming environment – doing several of the methods at once and still keeping up with the iteration cycle. Traditional task analysis was probably the hardest to adapt because it is the most rigid in what has to be done.

Modifications to the methods were mainly in their timing. Instead of being able to gather the information up front, I had to discover what information was already available and what questions it was pointed at as well as other characteristics. Then I had to determine what UCD results the development teams were expecting and what their schedules were. From that I was able to derive preliminary user descriptions and stories, as well as the UCD plan.

So, when does the amount of adaptation required not allow for minimum quality UCD work? This is a difficult question. Walking away from the table is hard and may negatively impact development coming back next time. The same can be said about demanding that a rigid process be followed. Several of the developers pointed to the UCD roadmap mounted on the wall and asked how we could possibly follow all of those steps and still deliver a product on schedule. It gave me an opportunity to do a little on the spot (short) discussion of how UCD can be modified to fit XP. Another way of dealing with this is to describe the impact/risk of the different options for gathering/reporting UCD information.

Reactions from development were mixed. There was initial skepticism, then gradual acceptance. They were skeptical about getting information they could use in a timely manner. They expected pushback on the schedule. By presenting them with a plan and risk analysis of not doing some of the activities, they were included in the decisions and therefore more receptive.

Development wasn’t the only stakeholder. Product management also was a big player. A lesson learned was that you have to consider and include all of the players. Understanding and factoring in the expectations and goals of the different groups adds another level of complexity to adapting to “agile programming”.

Looking back at this project, one of the things that I could have done better is to get a better grip on the politics and goals/expectations of the different shareholders earlier in the process. Also needed was an increase in the clarity of communication -- early in the process I was not as clear in voicing my perceptions of the trade-offs.

In summary, it is our belief that the most obvious advantage to the UCD practitioner of agile design is the frequent contact with users. A close second is the ability to test small increments and repetitively test the product as it goes through the development process. We also believe that stories are compatible with many design processes, and can be used successfully in very “agile” processes.

 

 

Comments, suggestions, or problems? Please contact the UPA webmaster at webmaster@upassoc.org

© 2000-2002 Usability Professionals'
Association, All Rights Reserved
Site privacy information

 

Usability Professionals' Association
140 N. Bloomingdale Road
Bloomingdale, IL 60108-1017
Tel: +1.630.980.4997
Fax: +1.630.351.8490
UPA: office@upassoc.org

  UPA Conference Office
Prestige Accommodations
1518 Brookhollow Drive, Suite 23
Santa Ana CA  USA  92705
Phone: 1-800-321-6338 or 1-714-957-9100
registration@prestigeacc.com