Velocity is a term used on agile development to assess How Fast are we producing software. Here's one definition from agile glossary
- Velocity is a measure of the amount of work a Team can tackle during a single Sprint and is the key metric in Scrum. Velocity is calculated at the end of the Sprint by totaling the Points for all fully completed User Stories.
There are voices speaking about velocity NOT being useful since it doesn't measure Value.
Here are Some Problems
As commonly used, velocity is actually speed. Meaning how fast are we going. The unit of measure for fast is Story Points.
But the actual definition of Velocity is:
- Velocity is a fundamental concept in kinematics, the branch of classical mechanics that describes the motion of bodies. Velocity is a physical vector quantity; both magnitude and direction are needed to define it.
So for velocity to be useful in agile software development we need to know:
- How fast we are going? (Speed)
- In what direction are we going? (A Vector Direction)
The Direction can be, and should be,m defined in a Product Roadmap and Release Plan. The content of the Product Roadmap should define the value being produced for the stakeholders.
So in fact
Velocity is a measure of how FAST we are producing Value for the stakeholder
Since Velocity is Speed in a Direction, that Direction should be toward the delivery of the Capabilities needed to fulfill some mission of the software and that is the Value of the software.
So Velocity IS the right measure of the Perfomance Needed to Produce the Needed Value for an agile project's work effort and resulting Cost.
Since No Value can be determined wihtout knowing the Cost to product that Value