Estimating Archive

5

Zombie Estimating Techniques

Since we all know zombies don’t count, we’re going to assume you are the poor sap trying to get away from said zombies.  But what are your chances of survival?  Do you have enough ammo?

Let’s assume your survival is the project.   Since a project is a temporary endeavor, we’ll go with that.  Our goal is not necessarily to create a unique project, service, or result, unless you count killing zombies.

How big is that unthinking horde or zombies slowly making its way toward you?

Do you have enough ammunition to kill them all, before they get to you?

Now, I don’t know about you, but my estimating skills suck.  We’re in trouble unless the unit of measure are digits on my body or comparing something to the size of my coffee cup.  But that’s ok. We have bigger things to worry about. I mean, we do have a horde of flesh eating zombies coming after us. So, let’s talk about two simple estimating techniques, hours and story points.  In this post, I am not going to tackle what I would define as advanced estimating techniques. I’m just going to limit it to the two below.

Technique 1: Hours

OK, who here hasn’t estimated in hours?  Though this doesn’t necessarily translate to zombies, it does to software development and other project activities.  Break efforts down in the smallest group possible, like tasks or user stories.  This technique is good but I think you need to really have a grasp of what you’re up against in order for it to be effective.  If you provide an estimate on an Epic or WBS Level 1 item, it loses its effectiveness.  Try to decompose (not like zombie decompose) work if it exceeds 8 hours.  The more time that elapses on a given task, the higher the probability something is going to change.  Get it completed and delivered so you can base your next estimation on something you’ve already done.

Please don’t estimate for other people.  Only provide estimates on things you’re going to do.

Technique 2: Story Points

Rather than estimating in hours, story points help people get past the uncomfortable feeling of saying they’ll complete something in X hours.  Sure, a story point could equal 1 hour but it doesn’t have to.  Think of estimating work at a relative amount compared to other work.

Imagine  two groups of the undead are lumbering toward you.  I’ll say group one is worth 8 points in size and complexity.  It takes you 20 rounds of ammo to take them out.  Though you didn’t get a head count, you’ll say the second group is 13 points in size and complexity.  If you only have 20 rounds of ammo left, how does that make you feel right now?  Do you run like hell in the opposite direction or do you think you learned something in the last round?

Once again, please don’t estimate for other people.  Only provide estimates on zombies you’re going to shoot.

Are you starting to see the parallels?

Like the image?  Find it at Pictofigo

Popularity: 1%

6

Expert Judgment and Passing the Sniff Test

Looking for two very informative posts on estimating?  Check out one by Josh Nankivel of pmStudent and Glen Alleman of Herding Cats.  Both are discussing estimating techniques that work for them.

I wanted to take a moment to add my two cents. Though I certainly believe estimating should be more science than art, I look at estimates from a different perspective. As a disclosure, I’m not the one doing the estimating on this project, therefore I’m not going to say I agree or disagree with any one technique.  Depending on your situation, one estimating technique may provide more accurate results than the other.

What I would like to add, from my perspective, is the need for expert judgment. If you are an expert in a given estimating technique and it gives you the results you and your customer(s) need, does that not validate it as an acceptable estimating choice?

If the estimating technique does not produce the desired results, wouldn’t it fail the metaphorical sniff test?

Recently, I questioned a vendor’s estimate based on a different technique.  I used a parametric estimate to see if the vendor’s estimate would pass or fail my sniff test.

What exactly is a parametric estimate?

An estimating technique that uses a statistical relationship between historical data and other variables to calculate an estimate for activity parameters, such as scope, cost, budget, and duration.  Source: PMBOK Page 439

So, why did the vendor’s estimate not pass my sniff test?  As part of a standard estimating practice, software vendors should include time for fixing bugs. Upon review of a recent status report, I noticed the vendor reporting half as many bugs were discovered in a current build than had been estimated. When asked about this, the vendor was very excited to confirm that they indeed found half as many defects in the code they originally estimated and predicted a cost savings of several hundred thousand dollars to the project.  Going into the current build, I knew what the standard deviation was and considered the possible variance.  This fell way below that.

So, why were they discovering so few bugs?  At first glance, I would predict two possible reasons.  [1] Quality through development improved.  [2] Quality through testing worsened.  Either way, you get the same initial result of fewer defects identified.

We’ll know the true answer once initial user acceptance testing begins.  If there were no baselines to compare the actuals to, I might not have given it a second thought.

Graphic source via Flickr: pump

Popularity: 1%

0

Calculating Initial Velocity On Day Zero

VelocityWhile reviewing proposal documentation yesterday, I noticed the contractor’s predicted velocity rate was pretty high.  Being they are not experienced in using Agile and they haven’t even started the project, I was curious how they were able to calculate such a high velocity rate for the first iteration.  I know how many developers they intend to use and I know their proposed iteration durations.  I’m not going to get into the specifics as to how they estimated features (user stories, requirements, backlog items, etc.).  So, what did I expect?

Velocity is a very simple method for accurately measuring the rate at which teams deliver business value. To calculate velocity, simply add up the estimates of the features successfully delivered in the last sprint or iteration.  What about the initial iteration?

Terms to understand when calculating initial velocity:

[1] Number of Developers – How many developers will you have doing actual work?

[2] Capacity – What is the maximum amount of work one person can accomplish in an ideal situation during the iteration?

[3] Number of Iteration Days – How many work days are in the iteration?

[4] Load (Capacity) Factor - The ratio of the actual work output over a period of time and the output if the developer had operated at full capacity over that time period.  e.g. 1/3 = 2.4 Hours , 1/2 = 4 Hours, 1/1 = 8 Hours

[5] Velocity – How much Product Backlog value a team can deliver in one iteration.

Because you don’t know team velocity for the first iteration, plan initial velocity at one-third of total capacity in order to account for coffee breaks, design, email, meetings, rework, research, etc.  As an example, with seven (7) developers and at one-third (1/3) capacity, a total of 2.1 ideal developers are available.  Multiply the number of ideal developers by the number of work days to arrive at the total of ideal work days.  These ideal work days will be applied against your estimated features, to arrive at an initial velocity.

(7 [Developers] * 1/3 [Load Capacity Factor]) * 21 [Work Days] = 44.1 [Ideal Work Days]

Popularity: 1%