Time and Resource Estimation
Time and Resource Estimation
264 Lecture 3
Time and resource estimation
Rapid implementation
What do you need?
High certainty in meeting a schedule constraint Runaway prevention (with bad past history) Predictability (tied to budget, other programs) Lowest cost Desire for free overtime (startups, cheap companies)
Schedule fundamentals
SCHEDULED COMPLETION DATE Because of unrealistic expectations, most projects will be perceived as slow even if they are completed in the efficient or rapid zones.
Lifecycle models
Pure waterfall Code-and-fix (code like hell) Spiral Modified waterfall Evolutionary prototyping Staged delivery Design to schedule Evolutionary delivery Design to tools Commercial off the shelf software
Waterfall
Software Concept Requirements Analysis Architectural Design Detailed Design Coding and Debugging System Testing
The pure waterfall model. The waterfall model is the most well known lifecycle model and provides good development speed in some circumstances. Other models, however, often provide greater development speed.
Figure by MIT OCW.
Estimation
Estimation steps
Estimate size of project:
Methods/behaviors (formerly function points) to be configured, modified, written and/or implemented Lines of code
Estimate effort (person-months) Estimate schedule (calendar-months) Estimate team size as (person-months / calendarmonths) Provide estimates in ranges and refine for increasing precision as project progresses
F U N C T I O N Program Characteristic
Inquiries Number of inputs Number of outputs Logical internal files External interface files
P O I N T S High Complexity
x6 x6 x7 x 15 x 10
Low Complexity
x3 x3 x4 x7 x5
Medium Complexity
x4 x4 x5 x 10 x7
P O I N T S High Complexity
4 x 6 = 24 3 x 6 = 18 0x7=0 3 x 15 = 45 2 x 10 = 20 1.15 350 304
Low Complexity
0x3=0 6 x 3 = 18 7 x 4 = 28 5 x 7 = 35 9 x 5 = 45
Medium Complexity
2x4=8 2x4=8 7 x 5 = 35 2 x 10 = 20 0x7=0
Influence multipliers
Data communications Distributed processing Heavy use Performance Transaction rate Online data entry End user efficiency Online update Complex processing Reusability Installation ease Operational ease Multiple sites Facilitate change
Rate each element from 0-5 Influence multiplier is 0.65 + 0.01(sum of elements), varies between 0.65 and 1.35
Level
1.0 2.5 6.5 15.0 15.0 5.0 4.5 3.5 8.0 8.0 8.0 9.0 4.0 9.0 3.0 3.25
Cont.... Language
Quick Basic 3 Visual Basic 3 Cobol (ANSI 85) Macro assembler SAS, SPSS, other statistics packages Smalltalk 80; Smalltalk/V Excel, Lotus 123, Quattro Pro, other spreadsheets
Level
5.5 10.0 3.5 1.5 10.0
15.0 ~ 50
20 6
Questions
If you had a requirements document with 10 Web pages, 15 reports, 20 database tables, and no inquiries or external files, how many function points would it contain?
Assume influence multiplier = 1.0
If you wrote the system in C, how many lines of code would it have?
What if you used Excel?
Answers
If you had a requirements document with 10 Web pages, 15 reports, 20 database tables, and no inquiries or external files, how many function points would it contain?
Assume influence multiplier = 1.0 About 315 function points, if each item is medium complexity
If you wrote the system in C, how many lines of code would it have?
About 32,000 lines of C What if you used Excel?
About 2,000 lines of Excel
Efficient schedule.
Talent from top 25%, low turnover Competent management, staff available as needed Requirements changes are minor (5%); tools, offices are effective
Nominal schedule
Talent from top 50%, turnover 12% per year Some familiarity with tools and environment
Schedule (months)
6 7 8 9 9 10 11 11 11 12 13 14 14 15 16 17 18 19 20 22 24 27 30
Effort (man-months)
25 40 57 74 110 130 170 195 230 285 350 410 480 540 680 820 960 1,100 1,250 1,650 2,100 2,900 3,900
Effort (man-months)
5 8 11 15 22 26 34 39 46 57 71 83 96 110 140 160 190 220 250 330 420 590 780
Effort (man-months)
8 13 19 24 37 44 57 66 79 98 120 140 170 190 240 280 335 390 440 580 725 1,000 1,400
Schedule (months)
8 10 11 12 13 14 15 16 16 18 19 20 21 22 23 25 26 28 29 32 34 38 42
Effort (man-months)
24 38 54 70 97 120 140 170 190 240 290 345 400 450 560 670 709 910 1,300 1,300 1,650 2,350 3,100
Effort (man-months)
5 8 11 14 20 24 30 34 40 49 61 71 82 93 115 140 160 190 210 280 345 490 640
Effort (man-months)
8 12 18 23 32 39 49 57 67 83 100 120 140 160 195 235 280 320 360 470 590 830 1,100
Efficient Schedules
Schedule (months)
10 12 14 15 16 17 18 19 20 21 23 24 25 26 28 30 32 34 35 38 41 47 51
Effort (man-months)
48 76 110 140 185 220 270 310 360 440 540 630 730 820 1,000 1,200 1,400 1,600 1,900 2,400 3,000 4,200 5,500
Effort (man-months)
9 15 21 27 37 44 54 61 71 88 105 125 140 160 200 240 280 330 370 480 600 840 1,100
Effort (man-months)
15 24 34 44 59 71 88 100 115 145 175 210 240 270 335 400 470 540 610 800 1,000 1,400 1,800
Questions
How long would it take to write a 30,000 line systems product with the three different approaches? How large would the team be in each case? Explain the differences
Answers
How long would it take to write a 30,000 line systems product with the three different approaches?
9 months fastest possible 13 months efficient 16 months nominal
Estimate refinement
Estimate (man-months)
100 100 135 145 160 170
Estimate (man-months)
25-400 50-200 90-200 120-180 145-180 170
Scheduling
SCHEDULING HISTORY OF WORD FOR WINDOWS 1.0
Report Date Sep-84 Jun-85 Jan-86 Jun-86 Jan-87 Jun-87 Jan-88 Jun-88 Aug-88 Oct-88 Jan-89 Jun-89 Jul-89 Aug-89 Nov-89
a
Estimated Ship Date Sep-85 Jul-86 Nov-86 May-87 Dec-87 Feb-88 Jun-88 Oct-88 Jan-89 Feb-89 May-89 Sep-89 Oct-89 Nov-89 Nov-89
Estimated Days to Ship 365 395 304 334 334 245 152 122 153 123 120 92 92 92 0
Actual Days to Ship 1887a 1614 1400 1245 1035 884 670 518 457 396 304 153 123 92 0
Scheduling problems
Developers underestimate by 20-30% on average Average small project estimate is off by 100% Big projects are worse: Once deadlines are missed, more effort is spent explaining and replanning Schedule pressures affect morale, quality
40% of software errors are due to schedule pressure Gambling in technical approach often occurs
Scheduling pressures
Causes
Wishful thinking by customers, managers No awareness of software estimation methods Poor negotiating skills
75% of developers are introverts, only 33% of population is Marketers, managers tend to be 10 years older and negotiate for a living Developers oppose negotiating tricks (high initial estimates, etc.)
Cures
Principled negotiation
Separate people from positions (cooperate, explore options) Focus on interests, not positions (find underlying needs) Find mutual gains (phasing, fewer features, add resources) Insist on using objective criteria (dont negotiate the estimate itself)
Remember:
A 50% cut in project size yields a 75% reduction in resources and about a 50% reduction in schedule
Recovery
Most projects are in recovery mode much of the time
Primary problem is not how to finish quickly, but how to finish at all
Options
Cut software size Increase productivity with short-term improvements Slip the schedule
Recovery plan
People: morale, major personnel problems, major leadership problems
Adding people to a late project only makes it later
Process: fix classic errors, miniature milestones/tracking, risk mgt Product: stabilize requirements, cut features/garbage, politics, fix bugs