So, Marc says User Centered Design is compatible with Agile. I think I agree, but with a caveat or two.
They’ve Got Different Foci
The User Centered Design methodology is based on one simple concept: the person who will eventually use the system should be the focus of the design process. There are many processes, techniques, and tricks that flow from this principle, but they all take the user as the core element to be studied in order to come to a design specification. In my studies, I haven’t come across any examples of a UCD process specifying exactly how the tool should be built, rather, the design process specifies tool that is to be built.
In contrast, Agile methods guide the development of a tool that is being actively specified. XP and its brethren guide a development process, not a design process. Design plus development are made to be together. It has been this way since the beginning of industrial design, architecture, and other older, more standardized design fields.
Agile is what you make it
As much as many Agile backers may think otherwise, I believe there is no standardized Design practice within Agile practices. Sure we create UI prototypes. Sure we work with the Customer to make sure they’re getting what they want, which seems somewhat similar to Participatory Design practices started in the 1970s. But there isn’t much of a true Design practice in most Agile projects, at least the ones that I’ve read about and seen on the job.
I’m not yet ready to give up hope, though. Remember back from the thesis of this entry, I agree with Marc’s sentiments. Agile methods that I’ve seen in practice have been so extensible and open to change (I guess that’s sort of the definition of agile) that I see no reason that UCD and general Design practices can be built into Agile frameworks. In fact, I think we’re pioneering some of these practices at ThoughtWorks every day.
With a little work, and some tweaks in the design and development process, I think we can make it easy to marry the dependable, successful development brought about by Agile methods with the UCD processes that regularly create excellent, user (and customer) accepted software tools. We’re not there yet, but each day we’re getting a little closer, at least within the walls of TW.