We find this is one of the most common questions asked within the companies we have worked and with the people in our teams.
The typical view of agile is that its all about hacking the code, no documentation and developers going off and doing their own thing, whereas with UX and User Centred Design (UCD) in particular the view is that it all takes too long, the design has to be perfect, we have to check with all of these users and we could have built and launched it by now…
The key issue seems to be how do you fit some of the fundamental UX methods into the small iterations that Agile develop teams work. A lot of teams run parallel design and build iterations, so that the design team has the time to create concepts and test them before handing them over to be built. This approach works but doesn’t really fit in with the agile principles of a team working together on discreet pieces of functionality within the same iteration
Another way to bring the teams together is to extend the scope of iteration 0 by not only looking at planning but also defining a high level information architecture, because changing this halfway through a project is very painful. We are not talking about Big Design Up Front (BDUF) but just enough so that you can understand how the product fits together.
In the end we think it comes down to the people more than the process, if the team wants to make it work they will find a way, just as the Agile Manifesto says it should.
We don’t think we have the perfect answer and there are lots of resources out on the web on this subject, below is a list of links to other articles, presentations and blog posts that we’ve read along the way.