Kent Beck says that XP is in the danger of getting stagnated because of a combination of limited adoption and no opposition. It has become like the standards, which everyone accepts in principle, but no on adopts in practice.
I like XP, it was like a breath of fresh air after working through various waterfall models and burning the hands. Not that XP does not have its own share of cons, but it acknowledges one of the basic aspects of software development – agility. I have not met anyone who opposes it, because they all feel that it does what software development is looking for. But I hardly meet anyone who actually uses it in the projects. And I think the reason lies in the fact that there is a belief that XP can actually make project management difficult.
Here are some reasons I have heard, which revolve around some rules of XP.
- The most difficult part of software development is estimation, and its gets more difficult with XP. Using iterations and postponing decisions introduce a lot of uncertainty in the old way of estimation and budgeting.
- It is not always easy to get a customer involved, especially when there he/she believes that their role is only to give the money, nothing more. A good amount of effort and time goes to break this myth.
- Developers do not like to write tests, even if there are tools available to make it easy. Wihout unit tests, XP does not remain XP.
- Managers do not like to move people or to contribute to other modules. They like developers to stick to their own scope. This makes it easier to hide certain facts of the project and manage the people using them.
- Pair programming is difficult to justify to the management who does not care about methodologies. Spending two programmers on one task is just not acceptable. Though truly beneficial, it fails to explain using the headcount logic.
- The idea of holding back on adding functionalities and features is disliked by the marketers as they are usually the justification for cost of the development.
I think the underlying problem is that though we have introduced a new software development methodology with XP, a lot of project management techniques are still the same. XP is not only a different way of development, but also a different idea of postponing decisions about which we do not have the information at hand, and increasing the transparency. And it is difficult for businesses to carry forward their business model using these.
XP is being accepted, but not adopted. It is being agreed to in principle, and so there is no opposition too. Two biggest ways of evolution are closing down for XP, and that is a risky position.
The way to counter this, in my opinion, is to change the understanding businesses have about software development in general. More than XP training, they should be educated about why software development needs to agile and how it helps the businesses.