All the discussions about Agile UX relate to how we adjust UX Activities to an agile development process but I want to know how we can turn UCD in to an agile process that supports the development activity.
Any ideas for Agile UCD?
The iterative design that characterizes UCD fits very well with the iterative development that characterizes Agile. You want your design iterations to dovetail with development’s iterations.
But before that, you need time up front before the developers start coding to do the preliminary research to identify the user goals and points of pain, and to get a vision of the product. However, I recommend you start designing (for yourself only) before you finish your research. This will help you focus your research, getting it done sooner. Sometimes, even before you’re done you’ll have the outline of the product from the users’ perspective to hand off to developers so they can start on the backend necessary to support it.
Once you have this foundation, you run one step a head of the developers, cranking out mini-designs, testing prototypes with quick-and-dirty usability tests, then passing scribbled wireframes on to developers. At a certain point of development, the code created by the developers is your prototype, and you’re in sync with the developers. Usability tests are then part of the usual stakeholder feedback that’s part of an agile iteration. At that stage, you begin to fade back, fine-tuning the UI rather than providing strategic direction.
More on fitting UX/UCD with Agile and fitting Agile to UX/UCD:
I think its important not to confuse Agile with Scrum. To answer this question: Think about UCD and then read the Agile Manifesto Principles below.
Personally, I read these and think:
I was very UCD at Marketo and delivered a great product with great UX. Our process was kinda messy. We didn't call it Agile, we called it Fragile.
My answer is: Developers aren't designers and neither are business people. Does Agile get in the way of great UX? Yes, sometimes. However, the ability to redo things is critical and I wouldn't trade it for waterfall.
Here is a chart that shows why I like the Agile methodology over Waterfall.
At the UPA conference in Portland, last year, I heard a panelist say (I'm paraphrasing) the following:
For me, what follows from this point is that either the entire Agile team -- developers, QA, and all -- are all involved in design and usability together, or -- if they can't do this well enough -- the Agile process makes room for specialists who can.
The UCD processes enhances Agile and can make it a success for both sides (biz/dev).
If the UX person is involved in both biz and development, works with the Analyst (or is the analyst) and writes/participates in the User Stories, is there when they're ranked (to help the team understand priorities set for UX) and participates in daily scrum to hear the issues that development is having, changes they want to make, listens to QA's test process and issues, etc. It's then a win/win situation and a successful Agile project.
Some designers may fight the Agile process, those who think that pixel perfection and no deviation are what makes a successful project, but there is no real conflict. A design can flex as req's change, just as architecture, data, code can adjust.
Since this question was first posed, there has definitely been changes within the industry to try and adopt a more 'agile' and 'lean' version of UX. For example, this question that was asked more recently reflects the need to balance agile with ux to take advantage of both approaches and philosophies in design: How to optimize the UX process for projects with tight deadlines?
In my response to the question, it is about dispensing with the practices and methodologies in UX that are not critical to meeting the design objectives, and a summary of my answer to the question was to improve communications with documentation, simply/streamline workflow and focus on the end goal. How the research and testing is carried out depends on how willing the designer is to make assumptions and take it forward in future iterations.
So it is possible and probably a common practice now.