Intro Software Estimation (Autosaved)
Intro Software Estimation (Autosaved)
Intro Software Estimation (Autosaved)
Estimation
1
Introduction
•
Successful project is the one delivered on time
,within budget and within required quality.
•
The targets are set by the project managers
•
Realistic estimates are required.
•
Effort estimates affect costs, duration and the
delivery time.
•
Estimates are not predictions, it is a management
goal.
Difficulties in Estimation
•
They arise from the complexity and invisibility
•
Subjective Nature of estimating e.g. research shows that
people tend to underestimate the difficulty of small tasks
and over-estimate large ones.
•
Political Implications: different people within and
organization have different objectives.
•
Changing Technology: When technologies change very
fast, the experience of previous projects become
irrelevant.
Difficulties in Estimation contd.
•
Lack of Homogeneity of project experience:
with no change of technology, knowledge
about typical task durations may not be easily
transferred from one project to another
because of other differences.
Where Estimates are done
•
Strategic Planning:
•
Feasibility Study: Confirms the benefits of the potential system
will justify the cost.
•
System Specification: estimates at the design level shows that
the feasibility study is still valid.
•
Evaluation of Suppliers’ proposal
•
Project Planning
•
As the project proceeds, the accuracy of the estimates improves.
Problems with over- and under-
estimates
•
Parkinson’s Law: “ Work expands to fill the time available” ,
i.e. given and easy target staff will work less hard.
•
Brooks’ Law: “ Putting more people on late job makes it
later” i.e. the effort of implementing a project will go up
disproportionately with the number of staff assigned to it.
•
A big disadvantage of under-estimates is the effect of
quality.
•
Zeroth law of reliability: “ if a system does not have to be
reliable, it can meet any other ojective”
Elements of a Sound Estimate
•
To generate a sound estimate, a project manager
must have:
– A work breakdown structure (WBS), or a list of tasks
which, if completed, will produce the final product
– An effort estimate for each task
– A list of assumptions which were necessary for making the
estimate
– Consensus among the project team that the estimate is
accurate
7
Assumptions Make Estimates More
Accurate
•
Team members make assumptions about the work to
be done in order to deal with incomplete information
– Any time an estimate must be based on a decision that has
not yet been made, team members can assume the
answer for the sake of the estimate
– Assumptions must be written down so that if they prove to
be incorrect and cause the estimate to be inaccurate,
everyone understands what happened
– Assumptions bring the team together very early on in the
project so they can make progress on important decisions
that will affect development
8
Measure of work
•
We express work size independently of effort
•
We measures such as Source Lines of
Code(SLOC) or KLOC (Thousands of lines of
code).
•
Other Measures such as function points will
be discussed later on.
Software productivity
•
A measure of the rate at which individual
engineers involved in software development
produce software and associated
documentation.
•
Not quality-oriented although quality assurance
is a factor in productivity assessment.
•
Essentially, we want to measure useful
functionality produced per time unit.
Productivity measures
•
Size related measures based on some output
from the software process. This may be lines
of delivered source code, object code
instructions, etc.
•
Function-related measures based on an
estimate of the functionality of the delivered
software. Function-points are the best known
of this type of measure.
Measurement problems
•
Estimating the size of the measure (e.g. how
many function points).
•
Estimating the total number of programmer
months that have elapsed.
•
Estimating contractor productivity (e.g.
documentation team) and incorporating this
estimate in overall estimate.
Fundamentals of software
estimating
•
Historical data: Information about past projects
although possible difference between
programming language and the experience of
staff might exist.
•
International Software Benchmarking Standards
Group (ISBSG) maintains a database with
around 9,000 project projects.
•
http://isbsg.org
Software Estimation Techniques
•
Algorithmic Models: which uses “effort
drivers” representing characteristics of the
target system and the implementation
environment to predict effort.
•
Expert Judgement: based on the active
knowledge of staff
•
Analogy: Where similar , completed project is
identified and its actual effort is used as the
basis of the estimate.
•
Parkinson: where the staff effort available to
Software Estimation Techniques
contd.
•
Top down: where an overall estimate for the
whole project is broken down into the effort
required for component tasks.
•
Bottom-up: where component tasks are
identified and sized and these individual
estimates are aggregated.
Expert judgment
•
One or more experts in both software
•
development and the application domain use their
•
experience to predict software costs. Process
•
iterates until some consensus is reached.
•
Advantages: Relatively cheap estimation method.
•
Can be accurate if experts have direct experience
•
of similar systems
•
Disadvantages: Very inaccurate if there are no
experts!
Estimation by analogy
•
The cost of a project is computed by comparing the
project to a similar project in the same application
domain
•
Advantages: May be accurate if project data available
and people/tools the same
•
Disadvantages: Impossible if no comparable project
has been tackled. Needs systematically maintained
cost database
Parkinson's Law
•
The project costs whatever resources are
available
•
Advantages: No overspend
•
Disadvantages: System is usually unfinished
Cost Pricing to win
•
The project costs whatever the customer has to spend on
it
•
Advantages: You get the contract
•
Disadvantages: The probability that the customer gets
the system he or she wants is small. Costs do not
accurately reflect the work required.
•
How do you know what customer has?
•
Only a good strategy if you are willing to take a serious
loss to get a first customer, or if Delivery of a radically
reduced product is a real option.
Bottom-up estimation
•
Usable when the architecture of the system is
known and components identified.
•
This can be an accurate method if the system
has been designed in detail.
•
It may underestimate the costs of system level
activities such as integration and
documentation.
Procedural code-oriented approach
•
The bottom-up approach described above works in
activities like software coding:
•
Envisage the number and type of software modules in the
final system: most IS system consist of system operations
e.g. insert, update, amend, display, delete, print etc.
•
Estimate the SLOC of each identified module: draw a
diagram to visualize how many instructions would be
required to implement each identified procedure. The
estimator may look at existing programs which have similar
functional description to assist in this process
Top-down estimation
•
Usable without knowledge of the system
architecture and the components that might
be part of the system.
•
Takes into account costs such as integration,
configuration management and
documentation.
•
Can underestimate the cost of solving difficult
low-level technical problems.
Top-down approach and
parametric models
•
Top-down approach is associated with parametric or algorithmic models.
•
Project effort relates to variables associated with characteristics of the final
system.
•
Parametric Model:
effort = (system size) x (productivity rate) where system size might be in the
form of KLOC e.g. 3 KLOC, the productivity rate can 40 days per KLOC. It is a
matter of judgement
Bottom line: forecasting software development effort has two key components:
System type C K
Organic 2.4 1.05
Semi-detached 3.0 1.12
43
The Wideband Delphi Process
•
Step 1: Choose the team
– The project manager selects the estimation team
and a moderator. The team should consist of 3 to 7
project team members.
•
The moderator should be familiar with the Delphi
process, but should not have a stake in the outcome of
the session if possible.
•
If possible, the project manager should not be the
moderator because he should ideally be part of the
estimation team.
44
The Wideband Delphi Process
•
Step 2: Kickoff Meeting
– The project manager must make sure that each team
member understands the Delphi process, has read the
vision and scope document and any other documentation,
and is familiar with the project background and needs.
– The team brainstorms and writes down assumptions.
– The team generates a WBS with 10-20 tasks.
– The team agrees on a unit of estimation.
45
The Wideband Delphi Process
•
Step 3: Individual Preparation
– Each team member independently generates a set
of preparation results.
– For each task, the team member writes down an
estimate for the effort required to complete the
task, and any additional assumptions he needed
to make in order to generate the estimate.
46
The Wideband Delphi Process
•
Step 4: Estimation Session
– During the estimation session, the team comes to a
consensus on the effort required for each task in the WBS.
– Each team member fills out an estimation form which
contains his estimates.
– The rest of the estimation session is divided into rounds
during which each estimation team member revises her
estimates based on a group discussion. Individual numbers
are not dicsussed.
47
The Wideband Delphi Process
•
Step 4: Estimation Session (continued)
– The moderator collects the estimation forms and plots
the sum of the effort from each form on a line:
Click to edit the outline text format
Second Outline Level
Third Outline Level
Fourth Outline Level
48
The Wideband Delphi Process
•
Step 4: Estimation Session (continued)
– The team resolves any issues or disagreements that are brought up.
•
Individual estimate times are not discussed. These disagreements are usually
about the tasks themselves. Disagreements are often resolved by adding
assumptions.
•
Step 5: Assemble Tasks
– The project manager works with the team to collect the estimates from
the team members at the end of the meeting and compiles the final task
list, estimates and assumptions.
•
Step 6: Review Results
– The project manager reviews the final task list with the estimation team.
50
Criteria for a Good Model
•
Defined—clear what is estimated
•
Accurate
•
Objective—avoids subjective factors
•
Results understandable
•
Detailed
•
Stable—second order relationships
•
Right Scope
•
Easy to Use
•
Causal—future data not required
•
Parsimonious—everything present is important
Conclusion
•
Estimates are really management targets
•
Collect as much information about previous projects as possible
•
Use more than one method of estimating
•
Top down approaches are used at earlier stages of project planning
while bottom-up approaches become more prominent at later stages
•
Be careful about other people’s historical productivity as basis for your
estimates, especially if comes from other environments.
•
Seek a range of opinions
•
Document your method of doing estimates and record all your
assumptions.