Pages

09 January 2010

Integrating Interaction Design Into Agile Projects

Thanks to advocates in Agile community, many software developers have gotten proficient at delivery. Perhaps now it is time to examine what we're delivering.

Better questions and attentive listening might avert those occasions where we do an outstanding job of delivering the wrong thing.

Discovery & Delivery
At last week's last week's CodeFreeze 2010 on the University of Minnesota campus (my alma mater), speakers David Hussman and Jeff Patton were wearing t-shirts that said Discovery & Delivery.

The authorized theme of CodeFreeze was Redesigning Agility. The unauthorized theme might well have been as David and Jeff's t-shirts said -- Discovery & Delivery.

How do we integrate Interaction Design into our Agile projects?

Looking retrospectively beneath the vaulted glass and wood ceilings of Memorial Hall, where CodeFreeze was hosted, one might conclude that the Agile community deserves kudos for improving our ability to deliver software. One also might conclude that we have yet to make significant progress integrating interaction design and usability into the Agile cookbook.

Interaction design and usability considerations will continue to play a significant role in whether people are satisfied using our products. We had better jump on the design band-wagon, or at least appropriate all the most forward-thinking interactive designers as our own.

I have concocted a recipe for a discovery & delivery process that I am eager to share and to take for a test drive.User-Driven Rapid Prototyping

Lets call it User-Driven Rapid Prototyping. As the nameimplies, the approach involves rapid prototyping. It is also user driven because the people who use the application help the software team prioritize the backlog. The challenge and proposed approach are a follows:

Challenge

Integrating Interactive Design into Agile projects

ProposedApproach

Iterative Cycles of

N weeks discovery and

N weeks coding & delivery

The diagram below shows what the iterative cycles of User-Driven Rapid Prototyping might look like

Where

The hand palming the spiral is a Discovery or Re-Discovery Iteration

The subsequent handless spirals are Delivery Iterations

Discovery iterations, after iteration zero, are called Re-Discovery

Odd iterations are for coding and delivery, while Even iterations are for discovery (interactive research and design).

The software team consists of developers and interaction designers working hand-in-hand. Since the backlog will be now driven by the people using your software, the over-worked and frequently clueless Product Owner we're familiar with from Scrum, becomes redundant.

Iteration zero - Iteration zero is a discovery iteration. The goal is to learn as much as is reasonably possible about the community for which you are developing the product. Iteration zero might include chartering, creating personae, and story mapping. Also it might include any of the groundwork you typically lay before iterating in earnest.

Iteration 1 (and Odd Iterations) - Iteration 1 is the first coding and delivery iteration. Iteration 1 might only include some user feedback screens, or a polling mechanism to enable the people using your application to help the team prioritize features, to call out usability snafus, and to bring to light potential design problems. In general, odd-numbered coding/delivery iterations are for adding new features and releasing a deployable prototype. During coding iterations, developers are coding while the interaction designers are working to stay ahead of the coding/delivery curve with ongoing user research and design deliverables.

Iteration 2 (and Even Iterations) - Iteration 2 is the first re-discovery iteration. The re-discovery iteration is a chance for the interaction designers to account for any feedback, then implement course corrections as needed. During this time, developers work with interaction designers to address the feedback, to re-factor code as needed, and to plan the next delivery.

There is no one-size-fits-all software process. There are conditions that are likely more amenable to the approach proposed here. Greenfield software projects and startup projects might be most suitable. For example, in the evolution of a startup, an ever-improving prototype might be used to attract rounds of investment to fuel continued development phases.

Wouldn't it be a kick if the picture below could just as easily be the people using your software as the people crafting it?

More...

Tim Brown urges designers to think big in this video on Design Thinking.

In Usage-Centered User Stories & Story MappingPart 1 and Part 2, I explain what post-Agilists like Jeff Patton and David Hussman, have been telling the Agile community how we might help teams enrich poorly conceived user stories and how we might better use our iteration zero time for product discovery. That is, how discovery might be improved.