Chapter 23. 20–80 Rule

The full value of XP will not come until all the practices are in place. Many of the practices can be adopted piecemeal, but their effects will be multiplied when they are in place together.

Software programmers are used to dealing with the 20–80 rule—80% of the benefit comes from 20% of the work. XP makes use of this rule itself—put the most valuable 20% of functionality into production, do the most valuable 20% of the design, rely on the 20–80 rule to defer optimization.

For the 20–80 rule to apply, the system in question must have controls that are relatively independent of each other. For example, when I tune the performance of a program, each possible place I could tune generally has little effect on the other places I could tune. I never find myself in a situation where I tune the biggest time hog, only to find that because of that tuning I can't tune the next one. In a system with independent controls, some of them are bound to be more important than others.

Ward Cunningham tells of a book that got him onto advanced ski slopes called The Athletic Skier.[1] Half the book is about tuning your boots, getting them set up just right so you can feel the mountain and be on balance. And then the book says, "but you will only see 20% of the improvement when you have done 80% of these exercises." It goes on to explain that there is a huge difference between being on balance and being off balance. If you are a little off balance, you may as well be a lot off balance. And it is a host of little factors, like getting your boots just right, that allow you to be right on balance. If any one is off, you'll be off. You will see slow improvement all along, but the last few changes you make will dramatically improve your skiing.

I think (and this is just a hypothesis) that XP is like that. The practices and the principles work together with each other to create a synergy that is greater than the sum of the parts. It's not just that you do testing, it's that you are testing a simple system, and it got simple because you had a pair programming partner who challenged you to refactor and reminded you to write more tests and patted you on the back when you got rid of complexity and ....

This poses a dilemma. Is XP all or nothing? Do you have to follow these practices to the letter or risk not seeing any improvement? Not at all. You can get significant gains from parts of XP. It's just that I believe there is much more to be gained when you put all the pieces in place.



[1] Warren Withererll and Doug Evrard, The Athletic Skier, Johnson Books, 1993.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.145.172.159