Thursday, April 30, 2009

Agile Basic Linear Algebra

Releasing planning, Iteration planning, velocity and burn up charts are basic linear algebra.

From Wikipedia:
“Algebra is a part of mathematics (math) that helps show the general links between numbers and math operations (adding, subtracting, multiplying or dividing) used on the numbers. Algebra does this by using letters (a,b,c,...) or other symbols to represent numbers, either because the numbers are unknown or because the numbers change during the course of the problem, in which case the letters are called variables.”

I decided to write down the formulae commonly used for tracking and planning agile projects. After listing down the formulae, I will validate them by solving a few sample problems.

The Formulas

Vp = Ro / Ip
The planned average velocity (Vp) is the number of story points planned for the release (Ro) by the number of planned iterations (Ip).

V = ∑Si / i
The average velocity of a team (V) is the number of delivered story points per iteration (∑Si) by the number of iterations (i).

Ve = V + ∆V
Velocity expected is the average velocity (V ) plus the expected velocity variation (∆V). Velocity expected is commonly used for planning activities, such as iteration and release planning.

R = Ro + ∆R
The current total story points planned for the release (R) is the original story points planned for the release (Ro) plus the delta of story points for the release (∆R).

Rm = R - ∑Si
The number of story points remaining for the release (Rm ) is the current total Story points for the release (R ) minus the sum of completed story points for the iterations (∑Si).

Ir = Rm / Ve
The number of iterations remaining (Ir) is the number of story points remaining for the release (Rm ) by the expected velocity (Ve)

Applying the formulae
In case you miss your high school days, I recommend you to try out the questionnaire on Agile linear algebra. Find out how much you score before reading the solution below.

Problem 1
An agile team plans to deliver 400 story points in 10 iterations. What is the planned average velocity for the team?

Solution:
From the problem statement: Ro = 400 sp, and Ip = 10 it

Applying the formula Vp = Ro / Ip
Vp = 400 sp / 10 it = 40 st / it

Answer: The planned average velocity for the team is 40 story points per iteration

Problem 2
A team has average velocity of 10 sp/it. Extra resources are added to the team, thus creating an expected rise in velocity of 4 sp/it. What is the expected velocity for the team?

Solution:
From the problem statement: V = 10 sp/it, and ∆V = 4 sp/it

Applying the formula Ve = V + ∆V:
Ve = 10 sp/it + 4 sp/it = 14 sp/it

Answer: The expected team velocity is 14 sp/it

Problem 3
In Iteration 1, the team delivered 10 story points, in iteration 2 the team delivered 14 story points, in Iteration 3 the team delivered 12 story points. What is the average velocity for the team?

Solution
From the problem statement: ∑Si = (10 sp+ 14 sp+ 12 sp), and i = 3 it

Applying the formula V = ∑Si / i :
V = (10 sp+ 14 sp+ 12 sp) / 3 it = 36 sp / 3 it = 12 sp/it

Answer: The team average velocity is 12 sp/it

Problem 4
Consider the team iteration history of Problem 3. The original release plan is to deliver 400 story points. Assume that the team is about to start Iteration 4, and that the team is able to keep the same average velocity from the first 3 iteration for the remaining iterations of the release. The project manager decides to add an extra pair of developer to the team; and the velocity is expected to increase by 2 sp/it. How many iterations (in total) will it take for the team to deliver the 400 story points planned for the release?

Solution
From the problem statement: Ro = 400, ∆R = 0 (no scope as added or removed for the release), and V = 12 sp/it (verage velocity calculated in the previous problem), ∆V = 2 sp/it (a dev pair is added to the team and the velocity is expected to increase by 2 sp/it)

The Question: How many iterations (in total) will it take for the team to deliver the 400 story points planned for the release?
Total iterations = elapsed iterations + the number of iterations remaining (Ir)

So let’;s calculate Ir…
Ir = Rm / Ve

And
Ve = V + ∆V

Applying the Ve = V + ∆V:
V = 12 sp/it and ∆V = 2 sp/it
Ve = 12 sp/it + 2 sp/it
Ve = 14 sp / it

Now let’s calculate Rm
Rm = R - ∑Si
R = Ro + ∆R

Applying ∑Si = 36 sp, Ro = 400 sp and ∆R = 0 sp
Rm = Ro + ∆R - ∑Si
Rm = 400 sp + 0 sp – 36 sp
Rm = 364 sp

Now applyuing Rm and Ve to the Iterations remaining formula:
Ir = Rm / Ve
Ir = 364 sp / 14 sp / it
Ir = 26 it

Total iterations = elapsed iterations + the number of iterations remaining (Ir)
Total iterations = 3 it + 26 it
Total iterations = 29 it

Answer: It will take 29 iterations (in total) for the team to deliver the number of story points planned for the release.

Problem 5
Same as Problem 4, but 140 sp have been de-scoped from the release. How many more iterations will it take for the team to deliver the number of story points planned for the release?

Solution
From the problem statement: ∑Si = 36 sp, Ro = 400 sp and ∆R = -140 sp

Applying Rm = R - ∑Si and R = Ro + ∆R
Rm = Ro + ∆R - ∑Si
Rm = 400 sp - 140 sp – 36 sp
Rm = 224 sp

The number of story points remaining for the release (Rm ) is 224 sp

Now applying Rm and Ve to the Iterations remaining formula:
Ir = Rm / Ve
Ir = 224 sp / 14 sp / it
Ir = 16 it

Answer: Based in the presented assumptions, the team will need 16 iterations (in addition to the 3 elapsed iterations) to deliver the number of story points remaining for the release.

Problem 6
Same as Problem 4. How many story points should be de-scoped from the release to enable the software to be released after a total of 12 iterations?

Solution:
From the problem statement: ∑Si = 36 sp, Ro = 400 sp, Ir = 9 it (12 it – 3 it) and Ve = 14 sp/it

Applying the formulae Rm = R - ∑Si and R = Ro + ∆R
Rm = Ro + ∆R - ∑Si

Combining Ir = Rm / Ve, we come to:
Ir = (Ro + ∆R - ∑Si)/ Ve
Ro + ∆R - ∑Si = Ir. Ve
∆R = Ir. Ve – Ro + ∑Si

Applying the problem statement values:
∆R = 9it.14sp/it – 400sp + 36sp
∆R = 126it – 400sp + 36sp
∆R = 126it – 400sp + 36sp
∆R = -238sp

Answer: 238 story points should be de-scoped from the release to enable the software to be released after a total of 12 iterations.