|
Agile methods have transformed how developers think about organizing the development of a
project. Rather than months (or years) of development, followed by months of field test leading
up to a release, agile methods organize development into short iterations with continuous testing
and a flexible release date. The agile approach promises to produce more useful and more reliable
software, more quickly, and with better control than traditional development. Incorporating strong,
user-centered techniques in agile development can only make the project stronger. But the origins
and perspectives of agile methods are different from those of user-centered design, and this leads to
confusion. It is the objective of this monograph to show how the two can be brought together into
a powerful project development approach.
Several different approaches to agile development are currently popular: XP, Scrum, Feature
Driven Development (FDD), and Crystal are a few. All these agile methods share core elements:
short, well-defined iterations that deliver real user value; tight team processes for efficient development;
minimal documentation of specifications; and continual feedback fromstakeholders to validate
progress. Agile methods also introduce a new development culture—values and attitudes that agile
teams are expected to adopt. These include doing design up front is bad, internal documentation is
bad, while face-to-face communication and collaboration are good.
To operate successfully in this new environment, the people doing user research, user interface
design, and usability work need to understand the agile culture. Much of this culture can be
helpful and supportive of working with end-users and incorporating user interface design into the
development process. But there are elements of the culture, especially as it tends to be adopted by
new teams, that make designing the user experience more difficult.
Most teams are still new to agile development, so no one is sure exactly how to behave. No
one knows when an agile value should be treated like a rigid rule and when it should be taken as
a guideline to be balanced against other concerns.When adopting agile methods, some teams take
the process to extremes; others, more cautious, adopt only a few elements of agile development and
see few benefits as a result. |