Title: SE280 Dr' Mark L' Hornick
1Review Why Plan?
- Someone will ask you to estimate your work
- You should be able to negotiate a schedule based
on a rational estimate - You should compare your actual work to your plan
and your estimates - To determine if you are on schedule
- To improve your subsequent planning and
estimating abilities - To understand why you may have diverged from your
plans
2The PSP planning process is based on size
measurements and effort estimates. How does it
work?
3In software, as in building construction,
resources and size are often correlated, but how
do we make the initial size estimate?
The floor area (square feet) often correlates
well with the actual construction cost, but may
be difficult to visualize in advance.
A proxy measure, like the number and relative
size of the rooms, may work better for initial
planning.
4PSP planning is based on a conceptual design,
identifying parts that together could provide the
necessary functionality.
Conceptual designs are for planning, and may not
represent the final detailed design chosen for a
project.
A conceptual design should provide enough
guidance for estimating, but not get too deeply
into the actual design work.
5Design vs. Design
- Conceptual design
- Developed in planning phase
- Understanding requirements
- Identifying objects/elements that provide
necessary functionality - Used to make estimates
- Detailed design
- Developed in design phase
- Usually based on conceptual design
- May modify or even replace it
6Estimation Process Flow
Define requirements
Conceptual design
Size database
Estimate size
Productivity database
Estimate effort
Resources available
Produce schedule
Develop product
PM Data analysis
7The PSP uses a relative-size table, based on
historical data, to estimate proxy size.
Textbook, page 77
8To make a proxy-based estimate, we combine
historical data with a conceptual design.
LOCNew Parts Type Methods Size Est Act
Matrix Data 13 M 115 136 Linear
System Calc. 8 L 197 226 Linked
List Data 3 L 49 54 Control Logic 2 48 Total
part additions (PA) 361 464
Object added after conceptual design
9In the Size Estimating Template of the Process
Dashboard, the proxy data looks like this
The planning process is outlined in the planning
script.
10An obvious question where does the relative-size
table come from?
- Initially, we don't have one!
- For Java, we start out with Humphrey's C table.
- As we accumulate historical data, we can create a
custom table - Percentile method
- Log-normal distribution method
11Percentile Method Example
VS (min)
S (25th )
M (median)
L (75th )
VL (max)
12Log-Normal Distribution Method (1)
13Log-Normal Distribution Method (2)
For the given historical samples, logarithmically
transformed
Which method is better? How would you know?
14Getting Category-Size Data
Text, page 133
15Given our proxy estimate, we use historical data
to make an actual estimate
We use linear regression as discussed previously
16Linear Regression Estimate
Linear regression fits a line to historical data
and uses that line for estimation
17Linear Regression Estimate
Linear regression fits a line to historical data
and uses that line for estimation
A similar process allows estimation of overall
development time based on proxy size estimate
(using a different set of regression parameters).
18Estimating Principles
- Estimating is an uncertain process
- Nobody knows how big a product will be
- The earlier the estimate, the less is known
- Estimates can be biased by business other
pressures - Estimating is an intuitive learning process
- Ability improves with experience and data
- Some people are better estimators than others
- Your improvement will be gradual
- You will seek to understand variability in your
estimates
19Estimating Principles
- Advantages of using a defined estimating method
- You have known practices that you can work to
improve - It provides a framework for gathering estimating
data - By using consistent methods and historical data,
your estimates will become more consistent