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:
| # | Task | Estimate, days |
|---|---|---|
| 1 | Kitchen | 1 |
| 2 | Bathroom | 0.5 |
| 3 | Bedroom 1 | 0.5 |
| 4 | Bedroom 2 | 0.5 |
| 5 | Living Room | 1 |
| 6 | Dining Room | 1 |
| 7 | Basement | 2 |
| 8 | Garage | 2 |
| Total | 8.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
important
Download HLE-template.xls.
- 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.
important
Download RPA-calculator-template.xlsx.
tip
Once you edit some numbers, to refresh Pivot calculations, in Excel go to Data tab and click Refresh.
Final estimate
High-level estimates could be combined with RPA HLE (both described above) into one single final HLE document.