Agile is a relatively young software development methodology, with the Agile Manifesto being written less than 10 years ago. It claims to offer a significant advancement from traditional ‘Waterfall’ methodologies, not least because it allows user experience principles to be applied and integrated within the design process. Today I’ll cover a brief introduction to the key differences between a waterfall and agile method for developing software, and how UX integrates well with the Agile methodology.
Traditional Software Development
In the olden days, and today in large unwieldy companies unsuitable for adaption, software was produced using a waterfall methodology. The waterfall methodology involves splitting the design process into distinct stages, and completing each stage before moving onto the next. Exactly unlike a waterfall. Some standard stages are
- requirements gathering
Each of these stages would be completed, documented and signed off when completed. Effectively this means that there is little scope to go back and make changes based on emerging requirements. For example, after coding has begun, no further design work could be done, even if the user’s needs change.
This methodology was found to have numerous problems, and be unsuitable for a typical software development process. So in 2001, a group of engineers came together and devised the ‘Agile Manifesto’
Agile Software Development
The Agile process aims to address the inflexibility of a traditional waterfall methodology. Essentially Agile development is iterative, and consists of short repetitive cycles. These are typically:
- evaluate the existing solution
- design a solution, based on the last solution, to the problems found during evaluation
- build this new solution
- GOTO 1
With a cycle being completed every few weeks, this process should be repeated until the software is complete (or no significant problems are found with the solution)
Agile and UX
So why is the Agile methodology best suited to integration with user experience testing? Since you ask, there are a whole bunch of reasons!
- The Agile method gives a workable product that can be shown to users earlier, getting their opinions and insights straight away.
- Has appropriate stages for fixing problems found by users earlier. In a waterfall methodology users won’t see a product until the last phases, and by then changes will be costly, or impossible.
- Waterfall methodologies assume that you can know everything about the requirements of a project at the outset. Real life experience with clients shows that this isn’t often the case. Agile allows for input throughout the process, and doesn’t presume to know the unknowable.
- Waterfall only engages the stakeholder s (anyone who is interested in the final product) at the beginning of the design process, and then keeps them in the dark until the final unveiling at the end. Obviously this makes what would normally be a minor problem with the final product into a big deal, because it is ‘complete’. In contrast, using UX methods on an Agile methodology keeps stakeholders invested in the product throughout the design process, minimizing dissatisfaction with the final product, and ultimately leading to happier stakeholders.
The UPA have recently been focused, in their magazine coverage and events, on integrating UX tools into an Agile methodology, but I’d be interested in hearing other people’s thoughts, or insights into the advantages of Agile. What are your thoughts on Agile?