Sure, it's a developer's world, but still?
One more word on XP as methodology (well, a few more actually).
Any methodology seems to me to be a snapshot of a solution to a particular problem that somebody solved at some point, with a particular set of people and skills in a specific context. There are occasional statements flying around the agile-testing group which suggest to me that the intial applications of XP were either in similar contexts or recreated the important aspects of the original context.
One of the things that strikes me about the thoughtful practitioners Michael describes (and that I’ve been able to observe) is that they are actively seeking to solve a problem. They evaluate a development approach that they hope will solve the presenting problems they have, optimised for the skills that the team possesses and the organisational context. Then they attempt to solve their problems through the application of the designed approach.
My snapshot of some of the important attributes of XP’s context is this –
– Poor or non-existent testers and business analysts.
– Developers who were quite good at testing their own code and focusing on the business domain.
– Knowledge residing in customers’ (or analysts’) heads struggling to be free.
I’m convinced that there are many applying XP who have never really given thought to the problems it is designed to solve, the skills that are required to apply it successfully, the people required to make it work, how it might affect those who don’t fall within the XP developer circle and whether it is suited to their organisation and its culture.
We may then witness some of the following –
– Alienation of those who are not developers while the developers ‘do XP’ (by the book).
– Sub-optimal use of the skills of non-developers.
– Disappearance of team members who get less than two paragraphs of description in the XP book.
– Practices not solving the problems they were designed to when the underlying values or principles are not present.
It’s hard work to tweak XP to fit a team that isn’t just customers and developers.
So think about it. What skills do you have in your team? In whose hands do they lie? How will you work with the people around you to get the most out of your project, not just the developers?