Monday, 8 December 2008

Agile & user centric design

I haven't written for a little while; life coming up to Christmas is "hectic" (and a bunch of other things not suitable for print on this blog). This weekend, I had been fully expecting to write a short introduction, describing how my string of bad luck over flights was over - I had a fantastic flight on Friday night, landing 30 minutes ahead of schedule. Unfortunately, I am now sitting at Heathrow Terminal 5 watching the delay on my flight back to Duesseldorf go from 10 minutes, to 20, to 60, to 90 minutes as they replace the tyre before we take off. Ah well.

As always it has given me a chance to a) spend more money than I wanted to on cheap DVDs and b) do a little reading on combining agile project management and user centric design. This is a topic close to my heart and something that is akin to squaring the circle. The basic difficulty is clear, user centric design approaches tend to try to map out a complete detailed vision of the user experience for an application or website in order to ensure a consistent and deliberate flow through the entire site, whereas agile approaches focus on evolutionary development of systems, building up the complexity of the solution over time.

There is no reason that these two approaches should not co-exist however. As always it is simply a question of measure; agile doesn't say no upfront design, just enough; user centric design doesn't say don't experiment over time, just understand the overarching customer needs you are trying to fulfill.

I am very pleased to see that there is a nascent discussion finally emerging out there on this topic. The following links provide some food for thought, with plenty of practical steps to making the two approaches work together (as well as giving so more detail on where the difficulties between the approaches arise in the first place):

Really, it all comes down to understanding what the user wants and needs and what the client wants and needs. Agile provides the framework to do this, as long as you can work with your client and users closely to build a strong vision of the purpose of the system up front and then continue to work with both parties throughout the development process to get quick feedback integrated into the system. But the first methodology that really anchors the user-centric design more firmly into an agile setting, will really win my vote.