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.
Agile development is simply the natural evolution of software process to support today’s accelerated, rapidly changing business environment. Through a lightweight, low-ceremony approach to software development, Agile incorporates a highly disciplined set of management and engineering best practices for accelerating and improving the delivery process. The key tenets associated with Agile development have been around for decades and are based on a series of simple, proven steps.
User-centered design (UCD) is an approach for employing usability. It is a structured product development methodology that involves users throughout all stages of product development, in order to create a software product that meets users' needs. This approach considers an organization's business objectives and the user's needs, limitations, and preferences.
As evident, when UCD is mixed with Agile software development methods, following advantages emerge:
- Better understanding of the problem.
- Allows rapid testing and validation of story concepts before time consuming coding.
- Provides a clear, sociable visual representation of the project vision.
- Provides usability by stealth.
- Engaging the end user as a customer.
- Improves basis for estimation.
- Mitigates project risk.