20-80 Rule and XP


Do you need to adopt all of the Extreme Programming (XP) practices to get results?  Can you adopt the XP practices piecemeal?  In Extreme Programming Explained: Embrace Change (2nd Edition) (The XP Series), Kent Beck writes that you can adopt XP practices piecemeal, but the more you adopt, the more synergy you get.

The Full Value of XP Comes When All the Practices are in Place

Beck writes:

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.

The 20-80 Rule

Beck writes:

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.

The 20-80 Rule Applies Where Controls are Relatively Independent

Beck writes:

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.

Greater Than the Sum of the Parts

Beck writes:

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 ….

You Gain the Most When You Put All the Pieces in Place

Beck writes:

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.

Key Take Aways

Here’s my key take aways:

  • You can adopt XP piecemeal.
  • The 20-80 Rule applies where controls are relatively independent.
  • You gain more from XP when you put all the pieces in place.