One thing that becomes apparent fairly quickly when running in an efficient agile environment is how the roles almost fade away in a given team. My hope for our group here was that testers would start writing code, probably not at the same level as the developers, but perhaps enough that they could fix certain issues that they find.
On the flip side of that, we’ve also gotten very good at developers testing their own code. Unit tests and automated acceptance tests (via Fitnesse) are becoming second nature around here now.
I think the key to making this happen is to put focus on the team, and help the team understand that collectively, they are responsible for the doneness of a given story. It’s not going to go through a round of development and then tossed over the proverbial fence for someone else to test.
The quality of product that comes from a team that understands that they are all accountable for the success of a story is amazing. Help the teams to blur the roles, and watch what happens. :)