SPM-Unit 2-2 - Estimation
SPM-Unit 2-2 - Estimation
• Assumption:
– Targets are reasonable
– No record levels of productivity are achieved
– Estimation is good and there was no incorrect estimate that could have caused delay
2. Political implications
– Different people have different objectives
– Estimators may be biased to reduce cost and influence senior management to
approve project
– To avoid a such political influences estimation must be performed by specialist
group
3. Changing technology
– As technology changes rapidly previous project experience may not be useful for
future projects
4. Lack of homogeneity
– In situations where same technology exists, the knowledge of typical task duration
may not be transferrable to other projects easily as there will be large differences in
projects
Software Estimation
Alternate 30.5
Design Coding Testing Total 30/31 days/m
Project days/mn n
SLOC/
Wm Percent Wm Percent Wm Percent Wm SLOC SLOC/Mn
Day
A 3.9 23 5.3 32 7.4 45 17 6050 364 12
B 2.7 12 13.4 59 6.5 29 23 8363 370 12
C 3.5 11 26.8 83 1.9 6 32 13334 414 14
D 0.8 21 2.4 62 0.7 18 4 5942 1524 50
• Project Planning
– Preparing a detailed estimates involves estimating smaller work components
– This will confirm the high level estimates done previously, supporting more
detailed estimates and staff allocation
• The accuracy if the estimates improves as project progresses
– Since project knowledge increases
• DO’s
– Apply step wise refinement which provides:
• To produce high level estimates in step 3
• Analyze project characteristics
• Obtain estimates for each individual activity
• Try to obtain estimates at a finer level
• Dont’s
– Discourage a premature estimation at the beginning of the project for
implementation
– Do not produce estimates before speculating and knowing the shape of the
application
Selection of an appropriate project approach
• Selection of project
– 1. Scope
– 2. Infrastructure
– 3. Analyze Project characteristics
• Software processes
– Requirements, Design, Development,
Testing
• Process model
– Waterfall, Prototyping, Incremental
delivery, Agile
– 4. Identify Project activities
• 5. Estimate effort
• 6. Identify risks
– For each activity
– 7. Allocate resources
– 8. Review / Publicize plan
• 9. Execute plan
– 10. Lower level planning
• Lower level details
• Review
Problems with over and under estimates
An over estimate causes project to take longer
• Parkinson's Law:
– “Work expands to fill the time available”
• Given an easy target staff will work less hard
• Brooks Law:
– Effort of implementing a project will go up disproportionately with
the number of staff assigned to the project.
– As Staff will grow as project team grows in size
• Effort that goes into managing, coordinating and communicating also
increase
– “Putting more people on a late job makes it later”
• An overestimate of effort leads to more staff allocation and managerial
overheads
An under estimate causes project to take longer
• Effect Quality
• Less experienced staff may produce substandard work for pressing deadlines
Problems with over and under estimates
• Weignberg’s zeroth law of reliability:
– “If a system does not have to be reliable, It can meet any other objective”
• Under estimation effects quality, Staff not producing quality products on time
• Substandard work becomes visible during testing, it is difficult to control and produces high
amount if rework, this delays the project
Inference:
• Set achievable realistic goals
• When targets are achieved
– Motivation and morale are enhanced
• When targets are not achievable, and targets are routinely missed
– Reduces motivation
– Put success down
– Blame organization
• Barry Boehm: Estimation is not a prediction but a management goal
– If software development cost is less than 20% of the estimated cost for the job,
then a project manager can turn it into a self fulfilling prophecy
• Team will believe in success and work hard achieve it
• A self-fulfilling prophecy is the socio psychological phenomenon of someone "predicting" or
expecting something, and this "prediction" or expectation coming true simply because the
person believes or anticipates it will and the person's resulting behaviors align to fulfill the
belief. Wikipedia
Basis for software estimation
• The need for historical data
– Estimation methods use past project data
– Care must be applied when applying past performance to new projects in factors such
as
• Programming language and experience of staff
– If past data is not available, data from external datasets can be obtained
• Ex: From International Software Benchmarking Standards Group (ISBSG)
• Parameters to be estimated
– Two parameters are estimated during project planning
• Duration in months
• Effort in work month or person month or person year
– Ex: Person month is effort one individual can put in one month
– Implicitly takes into account the loss due to holidays, weekly off, coffee breaks, etc.
• Measure of work
– Is also called the size of the project
– Work can be characterized by cost in accomplishing project and completion time
– Direct calculation of cost is difficult to estimate at early stage of planning
– Estimated time to complete task based on competencies and experience of
developer may not have been available
– Implementation may vary based on the CASE tools available in the environment
– The general approach is to estimate project size first
• Using the project size effort and time required to complete project is computed
– So, project size is an independent variable. Effort and time are dependent variables
Basis for software estimating
What is project size ?
• Project size is a measure of problem complexity in terms of
– Effort
– Time required to complete the product
– Metrics used to measure size are
• Source Lines of Code (SLOC)
– SLOC has many disadvantages
– Intuitively simpler and is widely used
– Short comings of SLOC
» No precise definition: Comment line & data declaration calculated in SLOC
» Difficult to estimate at start of a project: Generally a guess / gut estimate
» Only a code measure: It is only a coding estimate, other stages estimates also must be
considered
» Programmer dependent: Provides only a numerical value of problem size
• This varies widely based on coding style of individual programmers
» Does not consider code complexity:
• Two SW components of same KLOC will take different time to develop to write, even
if it is done by same programmer
• Since complexity of each component may be different
• Function point (FP)
– FP corrects the disadvantages of SLOC
Software effort estimation techniques
• Bottom-up
– Where component tasks are identified and sized and these
individual estimates are aggregated