Software Estimation Techniques Overview
Software Estimation Techniques Overview
A 2024 - 2025
Software effort estimation is essential in project planning and management. It predicts the
amount of effort, typically in hours or days, needed to complete a project. Good estimation
helps in resource allocation, budget planning, scheduling, and risk management. However,
inaccurate estimations whether overestimations or underestimations can lead to several
challenges.
Problems with Overestimation and Underestimation
Overestimation:
Budget Implications: Excessive funds may be allocated, inflating the project budget and
making it look more costly than it is.
Resource Underutilization: Resources might not be fully utilized, leading to inefficiencies.
Team Motivation:
less pressure to complete on time.
Client Relationships: Finishing too early or under budget might raise concerns about
planning accuracy and lead to client distrust.
Underestimation:
Missed Deadlines: The project may not be completed within the estimated time, causing
delays.
Increased Costs: Unplanned expenses can arise, putting a strain on the budget.
Team Burnout: To meet unrealistic deadlines, teams may work overtime, leading to burnout.
Lower Quality:
and bug fixing.
Project Size:
Larger projects generally require more effort. Size can be measured in terms of lines of
code (LOC), function points (FP), or the number of modules.
Project Complexity:
Complex projects with intricate requirements, new technologies, or unique integrations
often require more time and specialized skills.
Complexity factors include data processing needs, performance requirements, and
interdependencies between components.
Team Experience and Skill Level:
Experienced teams tend to work more efficiently, making the estimation more accurate.
The collective experience in similar projects can improve estimation reliability.
Historical Data and Metrics:
Past data from similar projects can provide a valuable reference, making future
estimates more grounded.
Historical data helps establish benchmarks and enables the use of estimation
techniques like estimation by analogy.
Technology and Tools:
The technologies, programming languages, and tools used impact productivity. New
or complex technology can slow down the project, while familiar tools can streamline
it.
Tools for automation, testing, and project management also contribute to effort
reduction.
Project Requirements and Scope Clarity:
Well-defined requirements make it easier to estimate accurately, while ambiguous or
changing requirements can lead to inaccurate estimates.
A clear understanding of functional and non-functional requirements helps in mapping
the effort required for each component.
Productivity of the Development Environment:
This structured approach enables teams to handle unexpected challenges more effectively,
enhancing the chances of project success.
Estimation Accuracy
Estimation Accuracy in project management refers to the degree to which an initial estimate
(of time, resources, budget, etc.) matches the actual outcome once the project is completed.
Achieving high estimation accuracy is essential for meeting project deadlines, staying within
budget, and ensuring project success. However, estimation accuracy can be challenging due
to factors such as project complexity, evolving requirements, and unforeseen obstacles.
Teams with experience in similar projects or with specific technologies tend to make more
accurate estimates. Skill level also affects productivity and accuracy in execution.
Historical Data and Benchmarks:
Using data from past projects of similar scale and complexity helps in creating realistic
estimates. Benchmarks give a reference point and improve estimation accuracy.
Estimation Techniques Used:
Techniques like expert judgment, estimation by analogy, and parametric models (e.g.,
COCOMO) vary in accuracy based on project details. Combining multiple estimation methods
can improve reliability.
Risk Identification and Management:
Identifying potential risks early on and factoring them into estimates is essential. Projects with
unforeseen risks are more likely to deviate from estimates.
Project Complexity and Dependencies:
Projects with high interdependencies or new technologies introduce uncertainties that impact
accuracy. Simplifying the project structure, where possible, improves accuracy.
Project Duration:
Longer projects tend to have lower estimation accuracy due to evolving requirements,
technology changes, and team turnover over time.
complexity, and available historical data. Below are some widely used estimation techniques,
each with its own strengths and limitations.
1. Expert Judgment
Description: This method relies on the knowledge and intuition of experienced team members
or subject matter experts.
Process: Experts make an educated guess on the effort required, usually based on their past
experience and understanding of similar projects.
Advantages: Quick and straightforward, especially when historical data is limited.
Limitations: Prone to biases and subjective interpretation, and the accuracy depends heavily
on the expert's experience.
2. Estimation by Analogy
Description: Estimates are based on the actual effort from similar past projects (i.e., using
analogies).
Process: Identify a project similar to the current one and adjust the estimates to reflect
differences in scope, complexity, or environment.
properly made.
Limitations: Requires a solid database of past projects, and differences between projects can
lead to inaccurate results.
3. Top-Down Estimation
Description: This approach estimates the overall project effort first and then breaks it down
into smaller components.
Process: Start with a high-level estimate based on the entire project and allocate effort across
different tasks.
Advantages: Suitable for early stages and large-scale projects where detailed breakdowns are
unavailable.
Limitations: Can overlook detailed requirements and often lacks precision for individual
tasks.
4. Bottom-Up Estimation
Description: This technique estimates individual tasks or components and sums them up to
determine the total project estimate.
Process: Break down the project into smaller tasks, estimate each one individually, and
aggregate to get the total.
Advantages: Generally more accurate, especially when project requirements are well-defined.
Limitations: Time-consuming, and challenging for larger projects with many unknowns.
5. Parametric Models
Description: These models use mathematical equations to estimate the effort based on project
parameters.
Common Model: COCOMO (Constructive Cost Model), which estimates effort based on
project size, complexity, and other factors.
Advantages: Provides a structured and repeatable method, useful for medium to large
projects.
Limitations: Requires accurate input data, and complex formulas can be challenging to use for
smaller projects.
6. Function Point Analysis (FPA)
Description: FPA estimates the size and complexity of a software project by analyzing the
functions it must perform.
Process: Break down software functions into measurable units (function points), such as
inputs, outputs, and inquiries, and use predefined weights for estimation.
Advantages: Objective approach, ideal for projects with well-defined requirements.
Limitations: Can be complicated to implement, especially if functions are not clearly defined
at the outset.
7. Use Case Points (UCP)
Description: This method estimates effort based on the number and complexity of use cases
in the software system.
Process: Assign weights to each use case based on its complexity and calculate total effort
accordingly.
Advantages: Well-suited for projects driven by user requirements.
Limitations: Depends heavily on accurate use case modeling, which may be difficult in early
project stages.
8. Delphi Technique
Description: This is a group-based method where multiple experts independently estimate the
effort, and a consensus is reached through rounds of discussion.
Process: Experts provide initial estimates, then discuss anonymously until they converge on
an acceptable estimate.
Advantages: Reduces individual biases and draws from multiple perspectives, enhancing
reliability.
Limitations: Requires multiple experts and can be time-consuming.
9. Three-Point Estimation (PERT)
Description: This technique uses three estimates optimistic, pessimistic, and most likely
to calculate an average estimate based on probability.
Formula:
Estimated Effort = ( Optimistic + 4 × Most Likely + Pessimistic ) / 6
Advantages: Accounts for uncertainty by providing a range rather than a single figure,
improving flexibility.
Limitations: Requires subjective input, which can introduce biases in the estimates.
10. Machine Learning Models
Description: Algorithms are trained on historical project data to predict future project
estimates based on variables like size, complexity, and team experience.
Process: Using past project data, models such as regression or neural networks predict
estimates for similar projects.
Advantages: Can provide highly accurate estimates if trained on substantial and relevant data.
Limitations: Data-intensive and may be complex to set up; requires consistent, high-quality
data.
Combining Techniques for Higher Accuracy
In practice, many project managers combine multiple estimation techniques to achieve higher
accuracy. For instance, using Expert Judgment along with Bottom-Up Estimation or Three-
Point Estimation with Delphi Technique helps in cross-verifying estimates and accounting for
uncertainties.
PROJECT SCHEDULES
A stage of a larger project, the project plan must be developed to the level of showing dates
when each activity should start and finish and when and how much of each resource will be
required. Once the plan has been refined to this level of detail we call it a project schedule.
Creating a project schedule comprises four stages.
First step
The first step in producing the plan is to decide what activities need to be carried out and in
what order they are to be done_ From this we can construct an ideal activity plan that is, a
plan of when each activity would ideally be undertaken were resources not a constraint.
Second step
The ideal activity plan will then be the subject of an activity risk analysis, aimed at identifying
potential problems. This might suggest alterations to the ideal activity plan and will almost
certainly have implications for resource allocation.
Third step
The third step is resource allocation. The expected availability of resources might place
constraints on when certain activities can be carried out, and our ideal plan might need to be
adapted to take account of this resource allocation.
Fourth step
The final step is schedule production. Once resources have been allocated to each activity, we
will be in a position to draw up and publish a project schedule which indicates planned start
and completion dates.
ACTIVITIES
Activity networks help us to:
Assess the feasibility of the planned project completion date
Identify when resources will need to be deployed to activities
Calculate when costs will be incurred
Defining activities: If an activity must have a clearly defined start and a clearly defined end-
point, marked by the production of a tangible deliverable.
An activity requires a resource then that resource requirement must be forecast able
and is assumed to be required at a constant level throughout the duration of the
activity.
The duration of an activity must be forecastable assuming normal circumstances,
and the reasonable availability of resources.
Some activities might require that others are completed before they can begin.
(Precedence requirements).
Where some of these assumptions do not apply (e.g. clearly defined start and end- points,
certainty of durations) there are complicated techniques that can be applied,
e.g. PERT risk.
Identifying Activities:
Approaches to identifying the activities or tasks that make up a project:
The Activity based approach
The product based approach
The hybrid approach
The Activity based approach
The activity-based approach consists of creating a list of all the activities that the project
is thought to involve.
This might involve a brainstorming session involving the whole project team or it might
stern from an analysis of similar past projects.
When listing activities, for a large project, it might be helpful to subdivide the project
into the main life-style stages and consider each of these separately.
The risks of omitting or double-counting tasks, a much favoured way of generating a task list
is to create a Work Breakdown Structure (WBS). Work-based draw-up a WBS listing the work
items needed. WBS involves
identifying the main tasks
break each main task down into subtasks
The subtasks can further be broken down into lower level tasks.
Activities are added to a branch in the structure if they directly contribute to the task
immediately above if they do not contribute to the parent task, then they should not be
added to that branch.
The tasks at each level in any branch should include everything that is required to
complete the task at the higher level if they are not a comprehensive definition of the parent
task, then something is missing. When preparing a WBS, consideration must be given to the
final level of detail.
Advantages
Likely to obtain a task catalogue that is complete and is composed of non- overlapping
tasks
WBS represents a structure that can be refined as the project proceeds
The structure already suggests the dependencies among the activities
Figure shows a fragment of a WBS where the design task has been broken down into three
tasks and one of these has been further decomposed into tasks.
The Product Based Approach
PBS show how a system can be broken down into different products for development.
Product Flow Diagram (PFD) indicates, for each product, which products are required as
Level 3: Components-Which are the key work items needed to produce deliverables, such as
the modules and tests required to produce the system software.
Level 4: Work-packages- which are major work items, or collections of related tasks, required
to produce a component.
Level 5: Tasks (individual responsibility).
SEQUENCING AND SCHEDULING ACTIVITIES
Throughout a project, we will require a schedule that clearly indicates when each of the
project's activities is planned to occur and what resources it will need.
The chart shown has been drawn up taking account of the nature of the development
process that is, certain tasks must be completed before others may start) and the
resources that are available (for example, activity C follows activity B because Andy
cannot work on both tasks at the same time).
In drawing up the chart, we have therefore done two things we have sequenced the
tasks and scheduled.
The scheduling has had to take account of the availability of staff and the ways in which
the activities have been allocated to them.
The schedule might look different were there a different number of staff or were we to
allocate the activities differently.
In the case of small projects, this combined sequencing scheduling approach might
be suitable, where we wish to allocate individuals to tasks at an early planning stage.
On larger projects it is better to separate out these two activities: to sequence the tasks
according to their logical relationships and then to schedule them taking into account
resources and other factors.
Approaches to scheduling that achieve this separation between the logical and the
physical use networks to model the project.
A project plan as a bar chart tells us who is doing what and when. The final outcome of the
planning process is as follows:
PERT was devised to support the development of the Polaris missile. CPM was developed by
Du Pont Chemical Company.
PERT is an activity-on-node notation
CPM uses an activity-on-arrow notation where the arrows are the activities. The approached
described here is based on PERT.
Milestones
points. They have zero duration.
Lagged activities:
Where there is a fixed delay between activities e.g. s days notice has to be given to users that
a new release has been signed off and is to be installed.
3. Start to finish
In the example when the cutover to the new system takes place, the operation of the temporary
system is no longer needed. Although the cutover depends of the acceptance testing to be
completed, the implication is that the cutover might not start straight after acceptance testing
In the last example, day numbers used rather than actual dates.
Makes initial calculations easier not concerned with week-ends and public holidays.
For finish date/times Day 1 means at the END of Day 1.
For a start date/time Day 1 means at the END of Day 1.
The first activity begins at Day 0 i.e. the end of Day 0 i.e. the start of Day 1.
This means activity A could finish on Day 5, for example, and a dependent activity B could
then start on Day 5 as well (not Day 6).All this may make sense if you think about activities
that finish and start halfway through a day.
months. We assume 5 day working weeks in our calculations unless otherwise specified.
You could use these with lags e.g. documentation of the changes to the prototype starts 1 day
after the testing and finishes 2 days after testing has been completed.
network.
Both of these techniques used an activity-on-arrow approach to visualizing the project as a
network where activities are drawn as arrows joining circles, or nodes, which represent the
possible start and or completion of an activity or set of activities. Formulating a network model
The first stage in creating a network model is to represent the activities and their relationships
as a graph. In activity-on-node we do this by representing activities as nodes in the graph-the
lines between nodes represent dependencies. Constructing precedence networks:
A project network should have only one start node.
A project network should have only one end node.
A node has duration and Links have no duration.
Precedents are the immediate preceding activities.(Fig)
FORWARD PASS
The forward pass is carried out to calculate the earliest dates on which each activity may be
started and completed.
Start at beginning (Day 0) and work forward following chains.
Earliest start date for the current activity = earliest finish date for the previous
When there is than one previous activity, take the latest earliest finish.
The forward pass and the calculation of earliest start dates are calculated according to the
following reasoning:
Activities A, B and F may start immediately, so the earliest date for their start is zero.
Activity A will take 6 weeks, so the earliest it can finish is week 6.
Activity B will take 4 weeks, so the earliest it can finish is week 4.
Activity F will take 10 weeks, so the earliest it can finish is week 10.
Activity C can start as soon as A has finished so its earliest start date is week 6. It will
take 3 weeks so the earliest it can finish is week 9.
Example of an activity network:
Work out the earliest start and end dates for each activity. Activities D and E can start
as soon as B is complete so the earliest they can each start is week 4. Activity D, which will
take 4 weeks, can therefore finish by week 8 and activity E, which will take 3 weeks, can
therefore finish by week 7.
Activity G cannot start until both E and F have been completed. It cannot therefore start
until week 10 the later of weeks 7 (for activity E) and 10 (for activity F). It takes 3
weeks and finishes in week 13.
Similarly, Activity H cannot start until week 9 the later of the two earliest finished
dates for the preceding activities C and a
The project will be complete when both activities H and G have been completed. The
earliest project completion date will be the later of weeks 11 and 13 that is, week 13.
BACKWARD PASS
Start from the last activity
Latest Finish (LF) for last activity = Earliest Finish (EF) work backwards
Latest finish for current activity = Latest start for the following than one following
activity - take the earliest LS
Latest Start (LS) = LF for activity - duration
The second stage in the analysis of a critical path network is to carry out a backward pass to
calculate the latest date at which each activity may be started and finished without delaying
the end date of the project.
In calculating the latest dates, we assume that the latest finish date for the project is the same
as the earliest finish date that is, we wish to complete the project as early as possible.
Figure illustrates our network alter carrying out the backward pass.
The latest start date for the project start is the earliest of the latest start dates for
activities A, B and F. This is week zero. If the project does not start on time it won't
finish on time.
Activity float
measure of how much the start or completion of an activity may be delayed without affecting
the end date of the project.
Any activity with a float of zero is critical (any delay in carrying out the activity delay the
completion date of the project as a whole).
Although the total float is shown for each activity, it really 'belongs' to a path through the
network.
Activities A and C in Figure, each have 2 weeks' total float. If, activity A uses up its float (that
is, it is not completed until week 8) then activity B will have zero float (it will have become
critical). In such circumstances it may be misleading and harmful to the project's success to
publicize total float!
Float = Latest Finish - Earliest Start - Duration