Jakob Nielsen, usability guru and author of Usability Engineering, raises the concern that Agile methods are a threat to traditional approaches to designing usability. He says that Agile’s greatest threat to usability is that “it's a method proposed by programmers and mainly addresses the implementation side of system development”. Alistair Cockburn counters that this claim just isn’t true:
- It doesn’t matter who proposed a good idea, only whether the idea is good.
- This sets up an “us versus them” split in the community instead of an “us plus them” coming together.
- Unlike the other threats Nielsen names, he doesn’t offer a solution, so he leaves us with his “us versus them” unsolvable problem, which is unacceptable.
Proposed solution: Just use good ideas – don’t worry about where they come from. As Kurt Morris posted on the agile usability list, “It’s amazing what can get accomplished once you get past the artificial “us v them” mentality.”
Nielsen goes on to raise the issue that the Agile habit of breaking the stories down into smaller tasks threatens to obscure the total user experience, allowing features to be developed in an inconsistent manner. At its worst, he says: “the user interface can end up resembling a patchwork.”. Nielsen’s solution:
- Perform Usability testing quickly and repeatedly. He says “Weekly tests are completely feasible and give you a surefire way to integrate several user feedback rounds within even the shortest sprint.”
- Parallel Tracks allow the usability work to be done just one step ahead of the development work.
- Use low fidelity prototypes (such as paper) that don’t require coding minimizing the time spent upfront.
Jeff Patton has distilled 12 usability best practices (echoing several of Nielsen’s):
- Drive: UX practitioners are part of the customer or product owner team
- Research, model, and design up front - but only just enough
- Chunk your design work
- Use parallel track development to work ahead, and follow behind
- Buy design time with complex engineering stories
- Cultivate a user validation group for use for continuous user validation
- Schedule continuous user research in a separate track from development
- Leverage user time for multiple activities
- Use RITE to iterate UI before development
- Prototype in low fidelity
- Treat prototype as specification
- Become a design facilitator
The RITE (pdf) method that Jeff describes comes from Microsoft’s Games Studio: “RITE differs from a “traditional” usability test by emphasizing extremely rapid changes and verification of the effectiveness of these changes.”. Specifically, practitioners make changes to the UI (prototype or application) as soon as the problem is found and the solution spotted. Changes such renaming buttons, changing the text of menu items often happen before another participant arrives. More complicated, but obvious changes are made as rapidly as possible. This way the change can be tested as quickly as possible.
In addition, Jeff finds his role has changed: “As I've begun to work within Agile teams, my approach has changed to favor collaborative design. More and more I find myself acting as facilitator to harvest and model information from large groups of people. I find myself working with groups of users and developers to write user scenarios, and sketch user interface design.”
Finally, Alistair says (in reference to the developer/usability divide): “Just remember, ‘There’s only us."