Print Window Close Window
Expero Home > Incorporating User-Centered Design into an Agile Development Process

Incorporating User-Centered Design into an Agile Development Process

Agile Software Development is a process that minimizes risk by limiting the amount of time and effort associated with each software release. There’s a lot we like about Agile, as opposed to  traditional waterfall development (which involves finishing a discrete, concrete step before starting the next step) or the old “pass it over the wall” method. However, an Agile process must be implemented carefully in order to avoid introducing usability problems and other issues into the user experience.

 

Benefits of Agile

An Agile process provides some natural benefits to the user experience. Agile development promotes multi-disciplinary teams working closely together and meeting frequently. This means that team members who are not responsible for the user experience may still have valuable input into it. The process also helps lower the risk of creating designs that are not implementable or are off-target from business goals due to lack of input from other disciplines. Agile development also encourages continuous and rapid iteration; early and regular iteration can improve the user experience.  

 

Dangers of Agile and Advice from Expero

Potential dangers exist with Agile development, however. First, a strict Agile approach doesn’t always take into account the big picture.  Working on discrete chunks of functionality in small releases can provide opportunity for iterating and getting design changes into the user interface, but big-ticket items such as navigation and consistency might not get the attention they require. For example, within a single release, the focus may be to re-design the shopping cart of a website rather than the entire checkout process, or in a software application, the focus may be to revise screens contained under just one of several tabs within the user interface.

One way to combat this problem is to designate a separate designer who can own the big picture.  This person can sit in on all the meetings, note issues that affect the design as a whole, and work on solutions to overarching issues in tandem with the Agile approach. If having more than one designer on a project is not possible, then the sole designer will need to keep in mind the “big picture” impact on the user experience and champion it even when focused on quick releases.

Another challenge with Agile is incorporating user testing into the development cycle. User testing should absolutely still be conducted. It’s risky to assume that because development cycles are faster that you can wait for post-release feedback from the field and then just fix problems in the next development cycle. Often the development team will have moved on to other features and functionality. Also, anecdotal feedback from the field or web analytics data can suggest where problems exist, but most of the time these data sources alone do not tell you why users are behaving in a certain manner or what the right design solution should be.

When conducting user testing as part of an Agile process, the tests should occur before or during development and should employ user tasks that take into account the “big picture” rather than the limited scope of the next release. (Another unique aspect of user testing within Agile is ensuring that the recommended changes from a user study find their way into an appropriate release. This might mean planning for a release several months into the future.)

Finally, consider incorporating a variety of rapid techniques for soliciting feedback from end-users on a regular basis, such as short surveys and informal weekly feedback calls. You might not even know exactly what you’ll be asking for two weeks out—it might be feedback on a prototype, or it might be a question and answer session with designated users, but schedule time on a regular basis for feedback that can be quickly brought back to the team.
© 2007 Expero, Inc. www.experoinc.com