When talking about the activities critical to agile success, one often hears about daily huddles, continuous integration, and user acceptance testing, but I’ve found that the agile principle of Self-directed Teams is equally important. Teams should be allowed to estimate and assign their own work for a variety of reasons:
1) Estimates will be more accurate. The reality is that those who do the work have the best idea of what it takes to get the job done. Having the entire team involved in estimation will not only make sure all development and test perspectives are considered, but will teach everyone how to estimate properly — setting the team up for even more accurate estimates in the future. Given the opportunity to estimate work Sprint over Sprint, teams will see the variance between estimates and work delivered shrink rapidly. A recent participant in one of my agile training classes said that his organization saw variances between estimates and actual work performed decrease from 50% when using traditional software development methods to under 5% when using agile. To see this type of improvement in your estimates, make sure you: 1) use techniques such as Planning Poker to assure every team member’s estimates are unbiased and 2) review all missed estimates during Sprint retrospectives to understand what happened and make sure any mistakes are not repeated.
2) Teams will be more accountable. Technical staff tends to respect the opinions of their peers much more than they do their management! Teams that are allowed to direct themselves are highly motivated by peer pressure to deliver on what they promise. No one wants to look bad in front of their peers. When management overrides a team’s estimate, team accountability disappears and it should be no surprise that management’s estimates are seldom achieved. It can also be highly demotivating when a team is asked to deliver something that they know isn’t possible. In fact, teams asked to do the impossible often not only fail to deliver on what management requested but fall short of delivering on their original estimates as well as all accountability for delivery has been lost.
3) Productivity will increase. When teams are allowed to determine who does what during each Sprint, productivity naturally rises. Management often doesn’t understand that people aren’t fungible! Each individual has strengths, weaknesses, preferences, specific knowledge, experience, etc. that defines who they are and what work is best for them to perform. Over time, teams figure out who’s best at what, who works best together, and who will need help. When teams are allowed to leverage this knowledge and assign people accordingly, more work gets done.
Accuracy, accountability, productivity – all sound business reasons why self-direct agile teams are successful.