Benefits of Extreme Programming (XP)
After a couple years of pitching Extreme Programming (XP)1, it became very clear to me that XP has different key advantages for different audiences. If you hope to persuade folks to try XP, you should emphasize different aspects depending on who you’re addressing.
For developers, XP allows you to focus on coding, and to avoid needless paperwork and meetings. It provides a more social atmosphere, more opportunities to learn new skills, and a chance to go home at a decent time each night. It gives you very frequent feelings of achievement, and generally allows you to produce code that you feel good about.
For the Customer (often a Product Manager), XP creates working software faster, and that software tends to have very few defects. It allows you to change your mind whenever you need to, with minimal cost and almost no complaining from the developers. It produces reliable estimates so you can coordinate your schedule easier.
For management, XP delivers working software for less money, and the software is more likely to do what the end users actually want. It cuts risk in a couple ways: 1) It allows you to “pull the plug” on development at almost any time, and still have highly valuable code, and probably even a valuable working (if incomplete) application. 2) It reduces your dependence on individual superstars, and at the same time can improve employee satisfaction and retention.
The biggest disadvantage: Extreme Programming is hard to do2. It’s difficult to get many developers to accept the practices, and it takes a lot of discipline to keep doing them all. Customers may not like the idea of having to be so involved. Management may have trouble adapting to a process that, itself, adapts to the changing needs of the business.
XP teams are reluctant to agree to fixed-price, fixed-scope terms, because they realize that change will happen, and it’s better to deliver what the Customer wants at the end of the project than what the Customer thought they wanted before the project began. Other processes are more likely to encourage the creation of detailed plans that give the illusion of accuracy.
Also, certain people may feel their jobs are being threatened, particularly architects, testers, and project managers. “Cowboy-coder superstars” may dislike the reduction in fame, attention, and adrenaline because they no longer have to save the project at the last minute.
1 2003-10-14 Reworded the fixed-price paragraph
2 While XP is really hard to do, agile processes like Scrum or Kanban are far less demanding.