Tuesday, December 19, 2006

Clash of the Titans: Agile and UCD

The use of Agile and UCD techniques in user centered design ...

"Agile software development [1] has become fairly popular in the last few years, leaving many UX professionals wondering how user-centered design (UCD) can fit into an extremely fast-paced development process that uses little documentation. User-centered design can involve a variety of techniques that provide insights into users’ wants, needs, and goals, including ethnography, contextual inquiry, contextual interviewing, usability testing, task analysis, and others. But all of these take time—time that an agile development process might not allow. There is hope, though. Agile and UCD methods are not completely at odds with each other—and in some cases, agile development can even enable a more user-centered approach. By taking the time to understand the differences and similarities between agile development and UCD, it’s possible to devise a process that is both user-centered and agile.

Similarities Between Agile and UCD Methods

Let’s start by exploring the similarities between the two approaches.

I particularly like Alistair Cockburn’s comparison of an agile development process to a cooperative game: “Software development is a (resource-limited) cooperative game of invention and communication. The primary goal of the game is to deliver useful, working software. The secondary goal, the residue of the game, is to set up for the next game.” Thus, according to Cockburn, an agile development method, at its core, is about delivering useful software. According to Rassa Katz-Haas, user-centered design is about understanding people’s needs—so we can provide useful software. She writes: “[User-centered design] places the person (as opposed to the thing) at the center…. UCD seeks to answer questions about users and their tasks and goals, then use the findings to drive development and design.”

A human-centered design approach allows us to better understand the people who use our products, while agile development techniques let us build, test, deliver, and revise our products faster. This is what software design and development is all about: delivering meaningful products to people. So, if these two methods seem to complement each other so well, why is there so much friction and frustration when it comes time to integrate them? A surface examination of the issues can’t answer this question. We must dig into the details of these methods, where integration gets more complicated."    (Continued via UXmatters)    [Usability Resources]


Post a Comment

<< Home

<< Home