UPA Conference 2004
 

Tutorials

 
Tutorial 11: Interaction Design Meets Agility: Practicing Collaborative Usage-Centered Design in Agile Software Development Projects
   
  Jeff Patton, Tomax Corporation
  Audience: Anyone
  Curriculum: Methods and Skills
  Monday, 6:30-9:30 PM
   

Collaboration is a critical to success in an agile software development project. But, practicing interaction design techniques collaboratively involving users, programmers, testers, and stakeholders is a challenge at best. In this tutorial you’ll learn, through participation, practical and fun collaborative design techniques that effectively involve the whole team.

PARTICIPANT KNOWLEDGE AND EXPERIENCE EXPECTED

Participants should have practical knowledge of the complete software development process. Participants should have some general knowledge of interaction design.

GOALS FOR THE SESSION:

Participants in this tutorial will learn:

  • Constantine & Lockwood's Usage-Centered Design
  • 3x5 card sorting techniques
  • Agile modeling techniques for role and task modeling
  • How to Define features for use in agile software development projects
  • How to create an iterative development plan using features
  • Agile software development basics

HOW THIS TUTORIAL WILL BE CONDUCTED

Alistair Cockburn describes the use of a “process miniature” as an approach to allow people to quickly learn a large and somewhat complex process. Participants of this tutorial will be engaged in a process miniature. They will play the role of a design team tasked with coming up with a general design for a piece of software, justification for that design, and a development plan that reasonably allows them to complete construction of the software in the constrained time frame allowed.

50% of participant's time will be spent engaged in hands-on activities. 20% in discussion of models and other work-products with the instructor and other workshop participants, 30% listening to presentation to help them participate effectively in activities and apply the techniques learned to real-world design and development projects.

Activities will primarily use card-sorting and arranging techniques for brainstorming, prioritization, and model construction.

TUTORIAL SCHEDULE WITH TIME ALLOCATION

Number of Minutes

Topic or Event

30 minutes

 

1. Hit the Ground Running: the Design Problem

Introduce design problem and discuss as a group. Set up room for collaborative design session Participants break into design teams.

1 hour

 

2. Who Cares?: User Roles and Role Modeling

Introduce the concept of the user role and understand what it means relative to job titles or actors. Introduce card-sorting techniques for brainstorming and prioritization. Introduce card based modeling techniques for user role modeling.

30 minutes

 

3. Agile Software Development and Interaction Design Overview

Define terms and establish a motivation for using Usage-Centered Design and collaborative modeling techniques on your agile project.

1 hour

4. Tasks, Features, and the Release Plan

Introduce the U-CD task, the development feature, and understand them relative to XP's story or other definitions for feature such as FDD's feature. Introduce the concept of phased delivery and the “system span.” Incorporate all these concepts to build a feature-centric release plan using 3 x 5 card sorting techniques.

30 minutes

 

5. Summary

Review the concepts of interaction design and Usage-Centered Design specifically. Understand where interaction design concepts are used in an iterative development environment.

 

DETAILED DESCRIPTION OF TUTORIAL

1. Hit the Ground Running: the Design Problem: 30 minutes

Goal: Set up for a collaborative scoping session. Introduce a real world design problem to discuss during this tutorial.

Topics Include:

  • Collaborative Design Meeting Participants
  • Meeting Setup
  • Feed-Forward Bins
  • Preconception Purge
  • Domain Discussion

 

2. Who Cares?: User Roles and Role Modeling: 1 hour

Goal: Introduce the concept of the user role and understand what it means relative to job titles or actors. Introduce card-sorting techniques for brainstorming and prioritization. Introduce card based modeling techniques for user role modeling.

Topics Include:

  • Role Definition
  • Card-Based Role Brain-Storming
  • Card Based Role Modeling and Model Markup

 

3. Agile Software Development and Interaction Design Overview: 30 minutes

Goal: Define terms and establish a motivation for using Usage-Centered Design and collaborative modeling techniques on your agile project.

Topics Include:

  • Agile Principles & Agile Development Methodologies
  • Interaction Design & Usage-Centered Design
  • Collaborative Agile Modeling Techniques

 

4. Tasks, Features, and the Release Plan: 1 hour

Goal: Introduce the U-CD task, the development feature, and understand them relative to XP's story or other definitions for feature such as FDD's feature. Introduce the concept of phased delivery and the “system span.” Incorporate all these concepts to build a feature-centric release plan using 3 x 5 card sorting techniques.

Topics Include:

  • Feature Definition
  • Prioritizing Features Using User Roles & Tasks
  • System Span & Walking Skeleton
  • Release Planning with Phased Delivery

 

5. Summary: 30 minutes

Goal: Review the concepts of interaction design and Usage-Centered Design specifically. Understand where interaction design concepts are used in an iterative development environment.

SPEAKER BIO

Jeff Patton

Development Team Lead

Tomax Corporation

 

I've worked as a software designer, developer, and development team and project leader for the past 8 years. During that time I've successfully designed, lead development of and delivered several commercial software products in use by hundreds of thousands of people today.

Over the past 4 years I've been focusing on agile software development and in particular Extreme Programming. I've spent a year on a development team founded by Kent Beck, the author of XP. I've worked closely with Alistair Cockburn, author of Agile Software Development, over the past 2 years sharpening my agile development skills. Concurrently I've placed special attention on driving my agile projects using interaction design sensibilities. To support those goals I've trained with Larry Constantine & Lucy Lockwood as well as the folks from Cooper Interactive. My resulting approach is a unique and pragmatic blend of agile techniques with proven interaction design techniques. I've been successfully practicing these techniques on projects I work on today as well as teaching these techniques to others.

I'm currently and ACM member and an active participant in object-oriented, design patterns, and agile development communities.

 

 

"" ""