Effort Estimation (估计)
And Scheduling (时序安排)
Effort Estimation & Scheduling




Most difficult & important activities in
managing project
Important estimate : Effort, Schedule & Cost
If effort estimate is available, it is easy to
determine schedule estimate.
Hence for effective planning, effort &
schedule estimate is required for the project
Effort Estimation & Scheduling




The contract between Vendor & Customer is
based on cost & schedule Estimates.
In case there is a project overrun (蔓延) the
customer will not pay more
Hence good estimation is essential for any
software organization.
Without good EFFORT estimate, effective
planning of software project is not possible.
Effort Estimation & Scheduling



A proper effort estimation method is a
requirement for Software Project Planning
KPA of CMM level 2.
“Good estimation method are available for
projects” is the requirement of “Integrated
Software Management” KPA of CMM level 3.
Use of past estimation data for future
projects is the requirement for “Quantitative
Process Management” KPA of CMM Level 4.
Effort Estimation




Effort estimation usually takes place at the
early stage of the project
Effort estimation can rely on “gut feeling” or
previous experience (CMM level 1)
A scientific approach is to use a estimation
model for obtaining the effort estimates
We shall study the estimation models
Effort Estimation Model (型)


A software estimation model defines
precisely which values are needed & how
these values can be used to compute the
effort.
Size of the software is a major factor in
determining how much effort is needed to
build it.
Cont……


Hence with the estimation of size, we can
estimate the efforts
One approach for estimating size is to
decompose (分解) the system into smaller
parts & then estimate the size of the system
based on size of its parts.
Cont……



This approach is preferred, as estimating size
for smaller system is easier than carrying out
the same task for a larger system.
If function points are used for size, then the
size in function points can be counted using
function point rules.
The size can also be counted in terms of LOC
Software project
Effort Estimate
Extract values
of some
characteristic
Estimation Model
Top-Down Approach




In Top-Down approach for estimation of
effort, some equation is used to estimate
the total effort required for entire project.
Then the efforts for different phase are
determined as percentage of the total effort.
COCOMO model is the most famous model
for effort estimation using top-down
approach.
http://www.cs.unc.edu/~stotts/COMP145/cocomo.html
Bottom-Up Approach




In this approach, the estimate is first
obtained for parts of the project, then the
overall estimate is obtained.
That is, major activities are identified & then
estimation is done for each activity.
Form this estimate, the effort for overall
project is obtained.
This approach does not require size to be
estimated.
Bottom-Up Approach



This approach can be used without the use
of past data.
Experience may be used to estimate the
effort required for activity.
This approach is also used when a project
involves mix of different software language &
technologies, making size estimation difficult.
Bottom-Up Approach

The risk involved in bottom-up
approach are:


Miss some important activity
management which can span the entire
project)
Conclusion

Both top-down & bottom-up approach
require information about the project to
estimate



Size for Top-Down approach
List of task for Bottom-Top approach
Both types of estimates become more
about the project or as the projects proceeds.
Building Estimation Models



Size based Top-Down estimation model
are generally built from data taken from
completed projects
Many factors affect the effort required
for a project.
There are around 68 factors that affect
productivity.
Building Estimation Models

The COCOMO model first estimates the
efforts based on size & then correcting
the estimates based on the values of 15
different parameters



Complexity
Database size
Performance requirement etc..
Estimation at Infosys




At infosys estimation takes place after analysis
For projects that has little past data, bottom-up
approach is used.
As the types of projects undertaken at Infosys
vary substantially, the bottom up approach is
preferred & recommended.
If past data & capability baseline is available, then
Estimation at Infosys



For Bottom-Up approach, the software under
development is first divided into major
program (or Units).
Each program unit is classified as simple,
medium & complex based on some criteria.
For each classification some standard “Build
effort” (coding & testing) is identified.
Estimation at Infosys



Once the Build effort for each program unit is
known, then total effort for BUILD PHASE of
the project is known.
Once the effort for coding is known, the
efforts for other phase of project is
determined as percentage of coding effort.
From these estimates the total efforts for
the project is obtained.
Steps for Estimation.
1.
2.
3.
Identify programs in the system & classify
them as Simple, Medium & complex(S/M/C).
If PCB exists, Get average build effort for
S/M/C program from baseline.
If project-specific baseline does not exists,
use project type, technology, language &
other attributes to look for similar projects
in PDB. Use data from these projects to
define the build efforts for S/M/C programs.
Steps for Estimation.
4.
5.
If no similar projects exists in PDB & no
project specific baseline exists, (say
project is new technology), use average
build efforts for S/M/C programs from the
general process capability baseline.
Use project-specific factors to further
refine the build effort for S/M/C programs.
Steps for Estimation.
6.
7.
8.
Get the total build effort using the
build effort for S/M/C programs.
Use the effort distribution data in the
capability baseline or similar projects
in the PDB to estimate the efforts for
other tasks & the total effort.
Refine the estimate based on projectspecific factors.
Effectiveness of the approach



A common way of analyzing the
effectiveness of an estimation approach
is to see how the estimated effort
compares with the actual effort.
This comparison give a general idea
That is weather programmers were
overstretched or underutilized.
Actual versus estimated effort
3500
2000
0
0
500
1000
1500
2000
2500 3000
Top Down Estimation


This approach starts with the estimation
of size of the software.
The size is estimated in terms of
function points or LOC
Top Down Estimation overall
approach
1.
2.
3.
Get the estimate of total size in function
points
Use productivity data in the process
capability baseline for similar process type
or productivity data in the process database
for similar projects to fix productivity level
for the project.
Obtain the overall effort estimate from
productivity & size estimates.
Top Down Estimation
4.
5.
Use effort distribution data from the
process capability baseline (or similar
projects)_to estimate the effort for
different phases.
Refine the estimates, taking projectspecific factors into consideration
Scheduling (时序安排)

Scheduling activity can be broken into two
sub activity


1) Determine overall schedule (project duration)
with milestone
2) Detail schedule of various tasks
1) Overall Scheduling



Once the effort is known, the various
schedule are determined depending upon
resources(people).
Overall schedule for the project is driven
more by the business requirement of
customer.
Also schedule for major milestone is also
fixed.
Manpower BuildUp
Peak Team
Size
Design
Build
Test
Actual versus estimated efforts for
recently completed projects
600
300
0
0
100
200
300
400
500
600
2) Detailed Schedule


The detailed schedule is determined by
refining each task in the top-level
schedule.
Each activity under top-level activity is
scheduled in a manner such that the
schedule for the top-level activity can
be met.
Cont…


The final schedule lists all the task to be
done in the project, along with start
date, end date, assigned personnel &
For detailed scheduling features of MSP
(Microsoft Project) can be used.
Cont..

For each activity listed in MSP








Activity code
Program code
Module code
The effort
Duration
Start date
End date
resources needed and resource dependency
(same resource by two task) are also specified
Cont..





After all these inputs are entered, the resource
Hence if some activity are overloaded or under
loaded, activity or resource can be modified for
As changes occur, MSP is also kept current to reflect
the actual status of the project.
This schedule is useful as a key in project monitoring
& control system.