Title: Project Estimation
1Project Estimation
2Estimation
Estimate Definition An estimate is the most
optimistic prediction that has a non-zero
probability of coming true. -- Tom Demarco
What is the earliest date that you cant prove
you wont be finished?
3Estimation The motivation
- All we want to know is time and effort,
dominating cost factors, risk factors? - A survey of 598 development organizations
- 35 dont make an estimate
- 50 record no data on ongoing projects
- 57 do not use cost accounting
- 80 had overruns in cost/budget and schedule
- Mean overrun is 50
4Estimationthe problems
- Lack of historical data
- Estimates done hurriedly
- Complete specifications not available
- Characteristics of software development
- Rapid changes in methodologies
- Lack of experience (how many projects do you
actually manage?) - Optimism of developers
- Difference in experience levels (who are you
estimating for?) - No linear relation in development (if 1 developer
takes 1 year, 2 developers must only take 6 mo) - Estimate modification for low bid
5Cost Estimation Process
6Categories (Jones)
- Project-Level using rules of thumb, Math Models
- Phase-Level using ratio/percent,
- Activity-Based using WBS
7Categories (Boehm)
- Algorithmic (Estimate to math model)
- Expert Judgment (Estimate to experience)
- Analogy (Estimate to similar systems)
- Parkinsons Law (Estimate to resources)
- Price to win (Estimate to customer budget)
- Top-Down (Estimate via functionality)
- Bottom-up (Estimate via modules)
8Rules of Thumb
- LOC (RD Table 8-10)
- Previous Experience, Analogy
- Putnam Models (Rayleigh Curve)
- C Technology Constant (Tools, Languages, etc)
- Poor 2000, Good 8000, Excellent 11000
- T Required Development Time (Years)
- S Size in LOC
- B Total Lifetime Effort (staff-months)
- E Total Development Effort
- B(1/T4)(S/C)3
- E .3945B
9Activity-Based
- Wide Band Delphi
- Group of developers meets for estimate
- Facilitator runs meetings
- Data submitted anonymously by individual
- Each individual submits estimates by activity
- Facilitator posts and then tries to get
convergence through multiple rounds of estimation - CPM/PERT
- Draw Activity Network
- Assign resource estimates per activity
- Sum for totals
10Function Points
Compute Unmodified Function Points
Total UFP
11Function Points
0 Not present 3 Average 1
Insignificant 4 Significant 2 Moderate
5 Essential
Adjust for Technical Complexity (TCF) Rate each
item 0-5 and sum
E1 Reliable data backup E8 Online Update
E2 Data Communications E9
Interface Complexity E3 Distributed Functions
E10 Reusability E4 Performance
E11 Process Complexity E5
Operational Environment E12 Installation
Ease E6 Online Data Entry E13
Multiple Sites E7 Multiple Input Screens E14
Ease of Use
FP UFP (0.65 0.1 TCF)
12Function Points
Use this table to convert FP into
LOC. Documentation pages FP1.15 Test Cases
FP1.2 Defects FP1.25 Months
FP.4 PeopleFP/150 Maint PeopleFP/750
People also do project tracking via FP Errors
per FP per FP FP per person-month
13Some Historical FP Numbers
- APPLICATION Size KLOC Size FP
- MS Office 1,250 10,000
- WMCCS 18,000 175,000
- MS Project 375 3,000
- Windows95 11,000 85,000
- 5ESS 1,500 12,000
14Function Points and Use Cases
- Actors
- Simple Machine API 1 point
- Average Human Cmd Line, Machine protocol 2
points - Complex Human GUI 3 points
- Use Cases
- Simple lt4 key scenarios 5 points
- Average gt4 lt8 scenarios 10 points
- Complex gt8 scenarios 15 points
- Adjust With FP Technical Adjustments as with FP
- Each UCP requires 20-30 hours of effort
15Regression Models
- Constructive Cost Model (COCOMO II)
- Development Effort E a sizeb C
- Where a and b are constants determined by project
and C is a cost factor adjustment
16COCOMO II Cost Drivers
- Software reliability
- Size of application database
- Complexity
- Analyst capability
- Software engineering capability
- Applications experience
- Virtual machine experience
- Programming language expertise
- Performance requirements
- Memory constraints
- Volatility of virtual machine
- Environment
- Turnaround time
- Use of software tools
- Application of software engineering methods
- Required development schedule
- Values are assigned by the manager.
17Estimation
- Only as good as our initial estimate
- No one great technique
- Almost anythings better than a SWAG
- If we work at it, and capture data about our
company, we can improve our estimation - What does INFOSYS use?