DominicWilliams.net / eXtreme Programming
Is eXtreme Programming sufficient? Is it all you need? Are there areas of software development that are not covered by XP?
Essentially, I believe XP is a complete, sufficient methodology which can take software from a vague idea through a useful and successful product and all the way to its end-of-life. That doesn't mean that XP is a fixed, rigid methodology or that it is always wrong to complement it.
One situation in which I think it is fine to do things in a way that is not directly suggested by eXtreme Programming is when one or more members of the team have previous experience or skills in a given technique, practice or method. I consider that XP actually calls for this, by promoting self-organisation, iteration retrospectives and valuing the individuals in the team. However, the team should carefully and regularly assess whether such additional practices are coherent with the spirit and values of XP.
I also believe it is good to remain open-minded, curious, and to experiment with ideas, techniques and practices, be they original or drawn from other methodologies or indeed from other fields than software.
However, most cases I have heard of where practices are added to XP, or people claim XP is not sufficient, do not fall into the above scenarios.
In the overwhelming majority of cases, it seems to me that the people doing so have never tried or never succeeded in doing all the XP practices and nothing but the XP practices. The problems they are experiencing are real, buth they have not had a chance to realise that solutions lie in other parts of XP, as yet unexplored or unmastered, or in the /removal/ of everything superfluous which they are still carrying around from their previous ways.
Another scenario with which I am uncomfortable is the tendency to water down eXtreme Programming with practices and techniques borrowed from other methodologies, be they Agile. I am especially skeptical when this is promoted by a consultant or "coach" person. I think one of the most profound things I have learned from XP is the importance of the team /owning/ its process. The more XP or Agile coaches are perceived as carrying around a huge bag of new tricks, the less XP will seem accessible and the less the team will own its process.
Above all, I believe in the value, the enrichment, the discovery and the profound learning that comes from going deeper rather than wider, from removing things rather than adding things. eXtreme Programming has the great advantage of defining a minimal and coherent set of practices that are simple, concrete and accessible to everyone. They are nevertheless profound, and as time goes by their individual potential becomes more and more obvious, and their extraordinary complementarity unfolds. I feel strongly that XP's power, its essence, lies in simplicity and minimalism.
Practice: That's What We Do, by Ron Jeffries.
First published: 26/9/2005.
Copyright (C) Dominic Williams. Contact.