One of the number one questions we get at The Braintrust Consulting Group is “Why does Agile work?” This is a great question with a plethora of reasons. In this article we are going to focus on the Pareto principle and save some of the other factors for later publications. For those of you that aren’t familiar with the Pareto principle, it simply states; “Roughly 80% of the effects come from 20% of the causes,” according to Wikipedia. This principle applies to several areas of agile software development including; functionality, requirements, documentation, and team size. By understanding the wisdom of Pareto’s principle we can gain valuable insights into why agile software development works.
80% of the user base utilizes 20% of the functionality – One of the fundamental concepts of agile software development is that of working a prioritized backlog of features. This basically means that your customer is going to tell you which areas of the application are most important and you will in turn implement those areas first. In effect you are building out the 20% of the application that will be utilized by 80% of the user base first. This is one of the primary reasons that agile is faster to deliver a working solution than traditional waterfall lifecycles, where all code is delivered at the end.
80% of the requirements will only be utilized by 20% of the user base – One of the major concerns about agile is “How do you determine when the project is over?” This is a valid point, because project backlogs are never fully exhausted. By applying the Pareto principle you realize that 80% of the requested requirements will only be utilized by 20% of the user base. When you put your “CEO” cap on, you see that the bulk of your return on investment is with the first 20% of the functionality. Therefore once that 20% has been implemented it then becomes a business decision as to when to conclude the project. By capping off the functionality and simply not implementing every possible feature you actually save a significant amount of money on your project. Therefore agile software development can be cheaper than traditional development.
80% of the work is accomplished by 20% of the people– Agile project teams are typically small and cross-functional for a number of reasons; there are less communications paths, a few senior resources are more efficient than several junior ones, and each team member can play to their strengths. Having fewer communications paths mean that information can be dispersed in a more efficient manner; in agile we call this “high-bandwidth communication.” More often than not, senior resources already know how to solve the problem at hand, they can reuse old code libraries for instance, and this typically leads them to be more efficient than junior resources. Finally when team members can align their work with their strengths they are better equipped to serve a role on the project team.
While we are probably only scratching the surface of applying Pareto’s principle to agile software development, we hope that the previous examples serve to shed some light on the mystery as to why agile software development works.
© Copyright 2010 The Braintrust Consulting Group All Rights Reserved