eXtreme Programming and other agile processes provide a middle ground between chaos and over-elaborate processes sometimes referred to as 'death by documentation'. A particular attrtactive aspect of the agile approach for many teams is its willingness to accomodate change no matter how advanced development might be. However, this very flexibility can cause user interface design issues and ensuing usability problems. Adopting a user-centered approach to user interface design can address these issues, as the following simulated conversation between a user-centered design consultant and an XP team leader will explain.
In this article, I will describe Agile and attempt to illuminate a potential minefield for those who are swept up in the fervor of this development trend and want to jump in headlong. Then I will present how practices within User Centred Design (UCD) can mitigate the inherent risks of Agile and how these may be integrated within Agile development approaches.
This case study shows how the ComputerWeekly user experience team integrated with an agile development group. It’s important to note the methods we used do not guarantee getting the job done. People make or break any project. Finding and retaining good people is the most important ingredient for success.
Agile software development 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.
Discusses the impact of an agile software development process on usability testing. Reports opinions about usability testing within a company before and after a change to agile. Presents strategies to incorporate usability testing into agile product development.
Test-driven development or TDD is a widely accepted practice used by agile software development teams of many flavors – not only Extreme Programming teams. For each small bit of functionality they code, programmers first write unit tests, then they write the code that makes those unit tests pass. TDD is seen as a design tool, since it forces the programmer to think about many aspects of each feature before coding.