Menu Close

Estimating work

Last week we discussed why project management pains developers.  

This week, let’s discuss how to work with project management.

I, a developer, see management asking for one thing. 

  • How long will  this project take?

The most correct answer is “I don’t know”.   To know for sure, create the software, or install the software,  or whatever and see how it goes.   “I don’t know” makes it hard to make a plan. 

Estimates are hard.  Using the Fibonacci sequence acknowledges the bigger the task the less you need its exact size and the less accurate your estimation. We can estimate 1 day, 2 days, 3 days, 5 days, 8 days, 13 days, 21 days.  21 work days is a month. A month is a long time for a single task.

We  break large tasks into smaller parts.    We split extra large tasks, since the error margins can be  huge.

Developers do not like dealing with days.  We feel slight pressure when dealing with days to distort the length.   It comes from different directions, and is hard to recognize.  We generally prefer something like story points.

You take an early small task in your project and describe it as 1 story point.  We estimate every other task in relation to the 1 story point task.   Sometimes we use T-shirt sizes rather than story points: small, medium, large, extra large. 

You can translate story points to days.  After a few weeks, calculate how many story points have been completed. Divide by how many work days have elapsed.   The calculation gives you a conversion ratio, or velocity of story points per day.  Similarly, you can calculate the velocity of different T-shirt sizes.

You have broken the project into smaller parts and estimated them and calculated a velocity.  Pert Planning can give a more precise estimate of how long the whole project will take, providing a range of dates with probability.  Bob Martin explains it as the most Agile way.  I expect he knows since he’s one of the original signers of the Agile Manifesto.  

We do the pert planning, and give the project manager our range of estimates. Next it’s the project manager’s job to manage those estimated dates.   He can cut scope if the estimated completion date is after the set completion date.   Or he can change the expected completion date if necessary.  That’s why he has the word manager in his title