SECTION 02 / 6

Section 2 · Project Estimation Techniques

4 min read
On this page 12 headings

Why estimation matters

Project estimation helps establish cost, establish a schedule and bid for projects. More detailed information about the project leads to more accurate estimates.

Why estimate a project? Establish cost, establish schedule and bidding for projects.
Why estimate a project? Establish cost, establish schedule and bidding for projects.
Open image ↗
Why estimate a project? Establish cost, establish schedule and bidding for projects.

Software size and person-months

Lines of Code (LOC) measure software size. A KLOC is 1,000 lines of code; 4,000 LOC = 4 KLOC.

Figure 7. KLOC counts estimated code, whereas effort measures work.
Figure 7. KLOC counts estimated code, whereas effort measures work.
Open image ↗
Illustration: Section 2 · Project Estimation Techniques

A person-month is the amount of work done by one person in one month. 12 PM = 12 × 1 = 4 × 3 = 2 × 6: 12 people for 1 month, 4 people for 3 months, or 2 people for 6 months.

Figure 8. Three simplified ways of allocating 12 person-months of effort.
Figure 8. Three simplified ways of allocating 12 person-months of effort.
Open image ↗
Illustration: Section 2 · Project Estimation Techniques

Work is expressed in person-months because it is easier to get a feel for how many people are needed to finish the work in a fixed time.

Empirical estimation versus heuristic estimation

Empirical estimation uses experience and educated judgement. Heuristic estimation uses mathematical relationships between parameters such as size and effort.

Figure 9. Experience-based and model-based approaches to effort estimation.
Figure 9. Experience-based and model-based approaches to effort estimation.
Open image ↗
Illustration: Section 2 · Project Estimation Techniques

Expert judgement

An expert makes an educated guess about the problem size after analysing the problem thoroughly, estimates the cost of the different components, and combines them into an overall estimate.

Expert judgement: analyse, estimate components, combine.
Expert judgement: analyse, estimate components, combine.
Open image ↗
Expert judgement: analyse, estimate components, combine.

Drawbacks of expert judgement

DrawbackExample
Human errors and individual biasBias towards a technology/framework
Optimistic estimatesEven more so to win a contract
Overlooking factors / lack of adequate knowledgeStrong in database and UI, weak on additional modules or plugins

Solved by a group of experts? To an extent — but the group can still be biased, and decisions may be dominated by overly assertive or senior members.

Expert-judgement drawbacks: individual bias, optimism, overlooked factors and group dominance.
Expert-judgement drawbacks: individual bias, optimism, overlooked factors and group dominance.
Open image ↗
Expert-judgement drawbacks: individual bias, optimism, overlooked factors and group dominance.

Delphi estimation: anonymous repeated rounds

A coordinator gives each expert the SRS and an estimation form. Each expert estimates independently and submits their result to the coordinator. The coordinator summarizes the responses without identifying their authors and distributes the summary back to the experts.

Figure 12. Five-stage Delphi workflow; repeat rounds connect anonymous feedback to independent estimates.
Figure 12. Five-stage Delphi workflow; repeat rounds connect anonymous feedback to independent estimates.
Open image ↗
Illustration: Section 2 · Project Estimation Techniques

Experts review the anonymous feedback and revise their estimates independently. Rounds repeat; the coordinator compiles the final estimate.

No discussion between experts is allowed during the entire process, because some may be influenced by an experienced or senior estimator; comments in the summary stay anonymous.

COCOMO: the effort model

COCOMO (Constructive Cost Model), introduced by Boehm in 1981: Effort = a × (SIZE in KLOC)^b person-months. The constants a and b depend on the type of project.

COCOMO: Effort = a × SIZE^b; a and b depend on project type.
COCOMO: Effort = a × SIZE^b; a and b depend on project type.
Open image ↗
COCOMO: Effort = a × SIZE^b; a and b depend on project type.

COCOMO project types

TypeDescriptionab
OrganicA well-understood application program; small team, mostly experienced2.41.05
Semi-detachedA mix of experienced and inexperienced people with limited experience building related systems3.01.12
EmbeddedStrongly coupled with hardware; team may be large with many inexperienced people3.61.20
Figure 14. The three lecture categories: Organic, Semi-Detached and Embedded.
Figure 14. The three lecture categories: Organic, Semi-Detached and Embedded.
Open image ↗
Illustration: Section 2 · Project Estimation Techniques

Effort depends not only on size but also on the type of project and the composition of the team; constants are lowest for organic (2.4, 1.05) and highest for embedded.

Seller Portal: estimate the size of seven modules

Not a straightforward system — modules interface with the main Amazon system and with banks for payments — so classified semi-detached (in some cases it could be embedded). LOC per module estimated from data of previous projects.

Figure 15. Seven module estimates totaling 4 KLOC.
Figure 15. Seven module estimates totaling 4 KLOC.
Open image ↗
Illustration: Section 2 · Project Estimation Techniques
Seller Portal moduleEstimated LOC
Catalogue add/edit/delete300
Inventory add/edit/delete300
Order tracking1,000
Payment tracking800
Inventory tracking800
Sales tracking500
Customer feedback300
TOTAL4,000 = 4 KLOC

Cost drivers and effort adjustment factor

Required software reliability = very high (orders and money involved) → 1.40; database size = high → 1.08; application experience of the team = low → 1.13; programming language experience = high → 0.95. The 15 cost drivers are grouped into product, computer, personnel (and project) attributes; multiplying all of them gives the effort adjustment factor. Here only four are used for simplicity.

Other factors beyond size: people working on the project (experience with the framework/domain — e.g. e-commerce), technical attributes of the product (database size, complexity, reliability), tools and practices used by the team.

COCOMO worked example: slide values and corrected calculation

StepSlide valueCorrect calculation
Initial effort = 3.0 × 4^1.1215.83 PM≈ 14.17 PM
Effort adjustment factor = 1.40 × 1.08 × 1.13 × 0.951.621.62
Final estimate = initial × EAF25.65 PM≈ 23.0 PM
Cost before adjustment (rounded initial effort), at ₹75,000 per person per month16 × 75,000 = ₹12 lakh14 × 75,000 ≈ ₹10.5 lakh

Using the adjusted effort of approximately 23.0 person-months, the adjusted cost is 23.0 × ₹75,000 ≈ ₹17.25 lakh. The initial cost before adjustment is approximately ₹10.63 lakh without rounding effort to 14 PM.

The slide's 15.83 PM does not follow from 3.0 × 4^1.12 (which evaluates to ≈14.17). The method is unchanged; only the arithmetic differs. If asked to compute, use the correct value; if asked what the lecture states, it is 15.83 PM.

COCOMO summary

Determine the type of product → estimate LOC for each module → initial estimate → effort adjustment factor from the 15 cost drivers → overall estimate. The overall estimate depends on the LOC estimates, so get as much detail as possible and be aware of your biases.

A British Computer Society survey of more than 1000 projects found 92% of project managers made estimates using experience instead of formulas (A. Taylor, BCS Review, Jan 2000).

YOUR STUDY PROGRESS

Finished this section? Save your progress.

Back to top ↑