Skip to main content
Version: 10.2.9

Estimation

note

For more details, refer to:

Problem statement

Software development effort estimation is the process of predicting the most realistic amount of effort (expressed in terms of person-hours or money) required to develop or maintain software based on incomplete, uncertain and noisy input.
Effort estimates may be used as input to project plans, iteration plans, budgets, investment analyses, pricing processes, and bidding rounds.

Psychological issues

There are many psychological factors potentially explaining the strong tendency towards over-optimistic effort estimates that need to be dealt with to increase the accuracy of effort estimates. These factors are essential even when using formal estimation models because much of the input to these models is judgment-based.

  • It's easy to estimate what you know.
  • It's hard to estimate what you know you don't know (known unknowns).
  • It's very hard to estimate things that you don't know you don't know (unknown unknowns).

Approach

Apply work breakdown structure

A fixture in classic project management methodology and systems engineering, the work breakdown structure is a deliverable-oriented decomposition of a project into smaller components. A work breakdown structure is composed of a hierarchy of specific elements; an element may be a product, data, service, or any combination thereof. A WBS also provides the necessary framework for detailed cost estimating; it provides guidance for schedule development and control.

Creating a work breakdown structure for any plan or set of tasks helps you get granular about the work that needs to be done on any given project. Below is a very basic WBS for a very common deliverable—moving. Check out the tasks and every aspect related to the event that the author has taken into consideration. Is anything missing?

If you estimate your projects based on units - whether it be weeks, days, or hours - using a WBS will help you understand very quickly if your estimate will exceed the intended budget.

Quick example

Let's take this example further and assign estimated hours to each step, but just remember, it could change when you dig into the actual work. These time estimates should be based on a combination of experience and hypotheses.
Rooms and estimated timing is as follows:

TaskEstimate, days
Kitchen1
Bathroom0.5
Bedroom 10.5
Bedroom 20.5
Living Room1
Dining Room1
Basement2
Garage2
Total8.5

Assumption: Sum of tasks includes wrapping objects, packing in boxes, prepping for movers, cleaning space.

This type of exercise can be extremely helpful during the sales process when a client tells you they have X dollars to spend. Based on your estimates, you can easily map a set of tasks or deliverables to something that works for both the dollar amount and the client’s goals. And, if a potential client comes back and says, “Well that seems a little more than we want to spend,” you can lean on your work breakdown structure to negotiate the cost down based on what's included in your scope. For instance, if I had to cut down on cost/time on moving based on my hour's efforts, I could likely remove the “cleaning” step from my “moving” WBS (though I’m sure someone might be unhappy about that). Use the WBS to your advantage this way and you'll not only create a project estimate that maps to a specific budget, but you’ll also work out a solid set of project requirements.

Using these techniques as a foundation to create your estimate will help you with the next step: turning it into a project plan.

tip

For estimation techniques explained, refer to Estimation approaches.

High-level estimates (HLE) template

info
  • See Instructions on the first sheet of HLE template
  • The second sheet is actual Estimate using breakdown technic and three-point calculation
  • The third is Assumptions applicable for current HLE

RPA calculator template

RPA projects usually require quick estimates based on a large number of interfaces required to be automated. The best approach here is to:

  • Brake by each system.
  • Brake within the system by complexity.
  • Give an estimate to each complexity.
  • Identify similarities and estimate according to code reuse.

Based on these input parameters, the template will calculate HLE.

tip

Once you edit some numbers, to refresh Pivot calculations, in Excel go to Data tab and click Refresh.

Final estimate

High-level estimates can be combined with RPA HLE (both described above) into one single final HLE document.