Pages

Tuesday, January 22, 2013

Effort Estimation in Agile Software Development - Applying the Pert Weighted Average formula - Part 2

Back in May 2010, I posted an article entitled Effort Estimation in Agile Software Development - Applying the Pert Weighted Average formula, which has been one of the most popular articles on this blog.

Amongst the feedback received there were many requests asking me to provide more details on how to devise the numbers to apply on the formula. This article expands on the topic by explaining my way of coming up with the numbers for the optimistic, pessimistic and realistic components of the Pert Weighted Average formula.

As explained here, the I use the following formula to estimate the duration to develop each user story that make up an iteration: (Optimistic + (4 * Realistic) + Pessimistic) / 6 .

How to apply the formula


Optimistic - I ask each developer to provide me with an estimation of how long it will take to complete each story they will work on. This is the number that I use for the optimistic component.

To estimate the other components of the formula I use a combination of grading user stories by size and complexity as outlined in the first article. However it is not as simple as that.

I don't see estimation as an exact science and therefore blindly applying a formula will not work under all circumstances. However, the formula does provide me with a consistent estimation procedure that has worked for at least 10 years now.

Another variable that I use in estimating the development effort is my team's velocity. I have a detailed record of the team's velocity recorded against functionality deployed to production. This helps me to compare actual duration of completed user stories against the effort that was originally estimated and use it as a basis to estimate the effort to develop stories that are similar in size and complexity ratings.

So here is how I devise the numbers for the rest of the formula.

Realistic - I search TFS (Team Foundation Server) for completed stories with similar size and complexity ratings and take the actual time that it took to develop it as the realistic component of the formula. 

Pessimistic - It is hard to estimate what a pessimistic duration would be because of many different variables that come into play such as risks associated with the particular piece of functionality, complexity, developer  experience and many other variables. I have met some development managers that double the duration estimated as the realistic and use it as the pessimistic. I don't blindly assign a number to it, I try to take everything into consideration in order to come up with an estimation that makes sense.

I don't think that there is a formula that you can blindly take to estimate software development effort. It is not as simple as that as there are many components that come into play in effort estimation, project management and software development.

4 comments:

Quynh Nguyen said...

Well, Realistic means the fact and what else it coming up from the actual records available in the tracking system. However, what-if an empty such a system you are owning(I am talking the case when you are on the start-up phase)?

Oops, what should I do now?

Skip it, moving forward to the approach of calculating the Pessimistic number, following your model (P = R x 2 x ROA), it sounds good solution!

Now, it seems that I have a clue to come up with the answer for Realistic number: what do you think if it will be derived from the Pessimistic calculating formula, as such, R = P / (2 x ROA).

Notes:
ROA: Ratio Of Affected Criterion
P: Pessimistic number
R: Realistic number

Quynh Nguyen said...

Please skip the first comment and goes with this one!
---

At a glance of your article already and it raises me following query:

Well, Realistic means the fact and what else it coming up from the actual records available in the tracking system. However, what-if an empty such a system you are owning(I am talking the case when you are on the start-up phase)?

Oops, what should I do now?

Skip it, moving forward to the approach of calculating the Pessimistic number, following your model (P = R x 2 x ROA), it sounds good solution! Oh no, still missing R component to give a result.

Back to the above question: where else the Realistic number is to appear in the case? Any standards in general are applicable?

Notes:
ROA: Ratio Of Affected Criterion
P: Pessimistic number
R: Realistic number

Hardeep digiclay said...

thanks for sharing fantastic tutorial

software Development Indore

Naniana said...

That's an interesting way to estimate efforts. As a manager of the design department at ui design company I'll take the formula to the pen. I'm curious to see whether it works or not.