According to the agile manifesto, agile development has four criteria at the heart of it.
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
The doctrines of User Centered Development promote the needs of the end user. End users wants and needs demand the comprehensive documentation, tools and planning to bring together an interface design around the peoples working practices, rather than changing the working practices to suit the software design.
The two methods would seem to at opposing ends of the design spectrum, but a way forward may be at hand, a way to promote user centered development in an agile environment.
The key to bringing the two philosophies together lays not in the differences, but in the similarities of their goals. If the design is about delivering software, we can take a page from Rassa Katz-Haas who defines "user centered design is about understanding people’s needs—so we can provide useful software".
It would seem the two have a common ground in the deliverable, and it is here that progress can be made in the provision of an effective design methodology that embraces the best of both worlds. User centered design puts the peoples needs first, while agile design puts the development cycle first to enable rapid deliverables to the people.
Agile development lacks the user research that is incumbent in the user centered model. This process is crucial to ensure the users needs are fulfilled, and so, cannot be omitted from the process. Of course, this process slows the development process, but ensures goals are well defined and that comprehensive documentation is produced from its findings.
In contrast to this short coming in agile development, it brings with it the benefits of feature prioritization, which clarifies the importance of each feature, and allows developers to create a framework in good time, that will support the features the users require.
It is at this point the, that the design can take place, based on a information gathered from the user and upon a solid platform based on the feature priorities. The documentation at this point is rather simple, given the amount of information that is already at hand.
When this process is put into an iterative model, each iteration produces milestones which can be delivered to the user, which keeps in line with the agile model of delivering often, and with the user centered model of putting the client first. Testing at the end of each iteration, provides the working software AND the documentation required of both models.