Recently, Julia Borkenhagen and I held a presentation at Soft-Shake 2010 on the blue-infinity way of integrating the UX team with an Agile software development process.
Over the past few years, the software user interface has evolved around new technology and concepts such as Web 2.0, RIA and portlets, introduced by major players such as Google with Gmail, or Apple with the iPhone / iPad apps. Thus the level of expectation from the end users has increased in terms of usability, design and innovation.
So what are the steps to combine a user centered design approach with Agile development? In our presentation, we emphasized 5 key points:
- Do your homework first
Before starting to sketch out screens and workflows, take some time interviewing key stakeholders and representative end users and analyze existing applications as well as competitors / best-in-class. Developing personas and scenarios might help to better understand the users' context, needs, motivation and behavior patterns.
- Build a hi-level concept
Instead of jumping right into the sprint process, it is important to have a sprint 0 and come up with the general UI framework for the application (just as you need to define the technical architecture upfront). This includes process flows, a sitemap, hi-level wireframes, UI patterns, graphic design templates.
- UX works one sprint ahead of development
Probably the most important point to consider for Agile development, the User Experience team needs to be able to work one sprint ahead and come up with detailed wireframes and specifications. Ideally, they should also be able to do some quick usability testing to validate the screens and flow with the users.
- Agile usability testing
Testing should happen all throughout the project, starting in the initial analysis phase to test the existing, doing paper testing with the wireframe concepts and finally also test actual working software before it gets released.
- Collaboration throughout
Any agile project will fail if the team members are not able to collaborate effectively with each other. Since this is an iterative process, it is essential that developers are involved in the initial concept phase and the UX team in the development phase. and both sides are open-minded, flexible and respect each other.
Below is an excerpt of the slides we presented: