Hi. You've reached Nigel.in
What you have landed on, possibly inadvertently, is the website of a certain curious character a.k.a Nigel Fernandes
The aim of this page was to serve as a landing point for those of you who want to know a little more about me. The links on the right and left will take you deeper my world, or possibly on to different exciting things.
Its a big web out there and this is just one more street for you to saunter down. I hope you like it.
Close this.
About Me

- Name: Nigel Fernandes
- Location: Panjim, Goa, India
Crazy, dancing, programming, Goan.. I'm a computer geek and proud to be one. I program in Java, Ruby and .Net, PHP, Javascript. A lot of my recent work has been about CSS and UI design practices for large scale websites and Agile teams. I still while away hours dreaming up a web startup.
Extending Agile Algebra
Saturday, September 5, 2009
Paulo Caroli at Agile Tips wrote an interesting post on Agile Algebra. The formulas are all very interesting.However I believe in order to be usable on a project a couple of them need to be extended a little bit. Specifically, the calculation of the expected increase in velocity per pair added.
In each of the problem statements Paulo states the expected increase in the velocity for the new pair in the problem itself. The means to arrive at these expected velocities is not clearly discussed.
If current Velocity of the team is V, and current number of developer pairs is N, then current velocity per pair is V/N
i.e Vp = V/N
Let us assume the values of Vx and Nx hold for an iteration Ix. We'd like to calculate the expected Velocity after adding 1 developer pair.
Adding new people always has a less than linear increase in capacity. Communication overhead (see Fred Brooks), ramp up time etc.
To account for this, a good technique to predict velocity for Ix+1 is as below
If C is the co-efficient of (ramp up time,communication overhead etc..)
∆V can be defined as C * Vp
By Paulo's formula : Vx+1 = V + ∆V
i.e. Vx+1 = V + (C * Vp)
i.e. Vx+1 = V + (C * V/N)
I've seen that a good co-efficient C for Ix+1 is 0.6 for small teams (i.e N <= 6 developer pairs) For larger teams it makes sense to stagger the projected velocity across more than one iteration. Vx+1 = V + (Cx+1 * V/N)
Vx+2 = V + (Cx+2 * Vx+1/Nx+1)
where Vx+2 corresponds to the iteration Ix+2
In such cases values Cx+1 as 0.3 and Cx+2 as 0.6 have given good results but I encourage you to work out suitable values for your team.
A lot of other factors such as length of iteration, technical complexity, skill/experience of pair added, etc will affect how you pick your values for C. That's where the skill and experience of the project manager comes into play.
Its interesting to apply these formulas retrospectively to your project and calculate the values of C. While it may not be accurate (planning rarely is), it does give you a yardstick for the future.
Labels: agile, agile algebra, projects, velocity
The hard (and also very important) parts about predicting and analysing work progression is the prediction of velocity loss from technical debt. Sure there are formulas that describe this, but they would need to be as simple as the ones in your examples to make the once who really need to know them (that being management) understand them.
Subscribe to Post Comments [Atom]
<< Home
