Agile UX: get the foundations right
There has been lots of discussion in the UX community about the compatibility or not of Agile development and the principles of user-centered design (UCD). The fact that developers are aiming to produce something fast in small iterations without user research or usability testing can feel scary at times. The feeling is best captured in Alan Cooper’s book The Inmates are Running the Asylum.
In my experience, rapid development is not a bad thing at all, especially if it comes embedded in a well-managed project with well-defined strategy and scope.
I first came across “Agile” in 2000 when I worked for a software company in California (Niku, whose product "Clarity" is now part of CA Technologies). After the burst of the bubble and a couple of rounds of lay-offs, the CEO went around distributing copies of a book called Extreme Programming. This happened in an organisation that had once boasted a PMO (gone), Product Managers (gone), Marketing (almost gone), and a full-blown web development team with producers, usability engineers, designers and front-end developers (only 3 remained).
The result was quite astonishing:
- development was streamlined with automated nightly builds (no more: “but it worked on my machine”)
- usability issues were addressed on the fly and tested with whoever happened to walk down the hallway, and most importantly
- customer requests were prioritized and features added or dropped based on their needs
As a result, we were able to get a number of releases out in record time while working in very tight collaboration amongst ourselves and with our clients.
A couple of things played in favor of such an Agile development effort:
- Small teams
- Senior and experienced people
- A general roadmap and strategy in place
- UI patterns well defined and documented
However, in order to have a roadmap and strategy in place as well as a well-defined concept, the mantra of “doing your homework first” is more valid than ever. Before diving into writing user stories and writing code, you should first, at minimum:
- Research user needs and context
- Evaluate the competitive landscape
- Assess business goals and objectives
- Create an overall concept (project vision) in the form of a sitemap, process flows, wireframes, etc.
As with building a house, you want to get the foundations right – or one day your product will end up looking like the leaning tower of Pisa! A nice place to visit, perhaps, but not a place to rest your hat for very long.