Agile Project Planning

ExtremePlanner: Agile Project Management for Distributed Software Teams
Click For Your Free Online Trial

Friday, February 18, 2005

Estimating a feature by the seat of your pants

One of the most important things you can do in software project planning is to provide accurate estimates. Unfortunately, this is easier said than done, so we wind up having to get "close enough" estimates, and adjust accordingly.

On an agile project, in order for the customer to prioritize features, he needs to know how much each one will cost, in addition to knowing the business value. So how can we provide a quick and dirty estimate for a new feature?

Two strategies work well here. The first is to use information about a previous feature that was similar to this one. That's great if you've done something similar before, but it doesn't help much for a brand new feature.

The second approach involves doing a quick breakdown of the feature into the likely development tasks that will be involved, and estimating those instead. For example, I need to add a shopping cart to my ecommerce application.

Well, I've never built one before, but let me think...

- I need some way to add items to the cart
- A way to store the cart contents
- A way to let a user view the contents and remove items
- A way to check out, using the contents of the cart

I'll chew on that for a minute, again using approach 1 (I've stored things before, built interfaces with buttons and lists, etc.). Now I can more confidently say 1 day for the add to cart part, 2 days to implement cart storage, etc. When I add this up, I'll get a number that, while not 100% accurate, at least involves some thought about the work involved.

If you work with a team of developers, you can have them go through this exercise to give you better numbers than you'll come up with yourself. They'll thank you for it.

Estimating is hard, but using what you know about things you've done before, and breaking new problems down into smaller chunks will help you get a good feel for the size of a feature. As the work progresses, you can always update your estimate based on new information.

Go to http://www.extremeplanner.com for more agile project planning and estimating tips and techniques.

Get your copy of the new book! Agile Thinking: Leading Successful Software Project and Teams