Monday, February 16, 2009

Average velocity from High School Physics and Agile Projects

Two Agile teams start working on Application A, at the same time developing exactly same functionality. Team 1 delivers with a constant velocity…

While searching on the internet about AgileEVP (Agile Earned Value Management) I came across a formula from my high school physics: v=d/t, the Average Velocity formula. I really enjoyed high school math, physics, and its exams: Two trains leave Station A at the same time traveling in the same direction, Train 1 travels with a constant velocity…

Here is the formula that got me started:

High School Physics Average Velocity

The average velocity v of an object moving through a displacement (d) during a time interval (t) is described by the formula: v=d/t

where,
v = Average Velocity
d = displacement
t = time

Exercise 1:

What is the average velocity for a car with a displacement of 120 km in the interval of 3 hours?

V = d/t, where d is 120 km and t is 3 h

Solution:

V = 120 km / 3 h = 40 km/h

Average velocity: 40 km/h (the car average velocity is 40 kilometers per hour)

So I decided to compare high school physics average velocity with team average velocity as an Agile development concept.

Typical Agile projects use iteration fixed in time, so instead of t, team average velocity uses the number of iterations as the time variable.

Displacement in Agile is measured by means of story points completed.

Velocity, in Agile, team velocity, means the number of story points the team completed in the Iteration.

Agile Team Average Velocity

The average velocity v of a team delivering story points (s) during the iterations interval (i) is described by the formula: v=s/i

where,
v = Average Velocity
s = story points completed

i = the number of iterations

Consider sp for Story point unit, it for iteration unit, and sp/it as velocity unit (Story points per iteration)

Exercise 2:

What is the average velocity of a team with a completion of 120 sp in the interval of 3 it?

V = s/i, where s is 120 sp and i is 3 it

Solution:

V= 120 sp / 3 it = 40 sp/it

Average velocity: 40 sp/it (the team average velocity is 40 story points per iteration)

Agile projects extensively rely on the concept of average velocity. Average velocity is very useful for agile team planning activities such as iteration and release planning. For example, my team is about to have an IPM (Iteration Planning Meeting) and we had to decide the number of story points to sign up for the next Iteration. The Average velocity from the last 3 iterations is a good initial value for the team to go about signing up for work for the coming iteration.