I face this kind of problem all the time. Every few months I change contract and begin to indoctrinate a whole new team. I use the approach of "selling by example". I start by using as many XP practices as I can on my own. It's not "full" XP, but test-first, story-driven, frequent-release, refactoring and so on are easy to do, and even by themselves usually show a marked increase in productivity and code quality. My managers quickly get used to the index cards with stories and tasks that I use for my own planning, and often find them easy to understand and prioritise. Once I have gained some credibility, without ever mentioning XP, I begin the next phase. I mention how I do this stuff, refer people to Wiki and here, bring in a few books and so on. usually by then I have some people interested enough to at least consider some experiments using the more team-oriented practices :- stand up meetings, planning game, pair programming and so on. It doesn't always change the way things work, but I have left behind me a trail of people at least interested and willing to consider it.
Frank, you sleazy, you. They don't even see it coming! I'm sure your approach works. In fact, I've been exposed to a group of people doing just that, and (probably) because of that, my performance has improved a lot in terms of quality and I'm beginning to sense the effects on overall productivity as well.
Start by writing tests. When you hear other programmers talk about some bug, offer to sit down with them and help them write a test to expose the bug. I have found that people will not spontaneously start writing tests. They will, however, write tests if you "prime the pump" and set up a basic infrastructure. This should consist of an easy-to-use Ant buildfile that runs the tests, along with some example tests.
Joined: Jan 07, 1999
That reminds me. I've not been in the situation myself, but an ex-colleague of mine (someone I "infected" a few years ago) has had great response in situations where developers and testers are separate teams. If you phrase it right, and don't disrespect their jobs, professional testers can be staunch allies when it comes to phrasing requirements in the form of tests, and test-driven development generally. A developer who actively wants to embrace testing and actually produce testable software is like an unbelievable dream!
Right! That's a tough job. People are excited while talking about XP, but a bit skeptical when it comes to implementing it. Esp pair programming apparently seems less productive and more problemetic. Many managers also conveniently manage to overlook "40 Hours week" recommendation as well. - Manish