Created by a gathering of developers in early 2001, the Agile manifesto espouses a number of beliefs that are very much in line with user centered design (UCD). One of these is:
“Individuals and interactions over processes and tools”
The Agile approach was conceived so that software could be developed faster. To better ensure the end product meets evolving requirements, great importance is placed on incremental development of discreet features and on frequent communication between developers and business owners. The approach also emphasizes the need to be flexible and to reduce extensive documentation and long-term planning as much as possible.
Having worked on several agile projects, I have had the chance to experience first-hand how you can fully integrate the UX activities in the project cycle, and how they become logical and needed steps in the process. Along the way, I have identified 5 key points for a successful UX / Agile marriage:
- 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. Both sides should remain open-minded, flexible and respectful of each other.
Below is an illustration of how UX works one step ahead of development in an agile environment.