Velocity in an XP sense is a historical rate of “work completed” per iteration. Measuring and using velocity is powerful because:
- Planning based on actual velocity figures gives you a more realistic plan than depending on the optimistic/pessimistic estimates of developers;
- It is generally cheaper to work out how much time work really takes, than spending excessive time attempting to guess how much it will;
- Dramatic changes in the number give greater visibility to issues a team may be having;
- The rate indicates if a deliverable is on track, or if scope needs to be re-negotiated.
A fixed velocity is unrealistic because in the real world as there is always a force working against it… friction. Project friction takes on a number of forms including:
- Communication breakdown – Sometimes it’s difficult to get answers from the business, or maybe team members forget to tell each other important things that take up time as people find out issues.
- Environmental Issues – Development environments are never perfect and as you depend on more and more external resources, the team faces additional risk not being able to complete a story because of a database or server is down.
- Ineffective Iteration Planning – Poor quality story cards slipped by the Iteration Manager and required excessive time going back and forth trying to work needed doing, or the third party prerequisite never came through.
- Constrained Resources – Depending on key members for particular tasks can be an effective way for ensuring good productivity, but team members can be ill, or be required for other things. Bringing on new people should affect a team’s velocity in some manner.
Keep in mind the following list of things you may experience when you have a fixed velocity:
- Planning based on an inaccurate number is like setting yourself potentially unrealisable goals instead of the more useful forecasting you can do with a real velocity measurement.
- You lose major visibility into issues affecting the team, making it more difficult to identify and address them.
- The importance of maintaining the magic number adds another opposing force typically misaligned to the core business objective. You lose all sorts of things such as a sustainable pace (read more about the 40 hour week and the need for slack time), a reduction in quality of output leading to additional maintenance or a poor user experience, and more accounting games as iterations lengths or other numbers are “adjusted” to continue the facade of a fixed velocity.
Like most things in an agile process, velocity is one of those metrics that provides another feedback mechanism to help you plan and identify places where you might benefit from change. Use real world numbers to help you, instead of the artificial ones that handcuff you.