Upload
alexis-taylor
View
215
Download
0
Tags:
Embed Size (px)
Citation preview
Schedule Estimation and Improvement
Barry Boehm, USC-CSSECS 577a, Fall 2014
12-20-2012 1
Outline
• Methods for schedule estimation– Size and effort-based: CS 577b interpretation of COCOMO II effort– Plan-based: critical-path analysis– Cost-schedule tradespace analysis
• CORADMO Expedited Software Development Model– RAD: Rapid Application Development– Expedited Schedule Drivers– Relation to RAD Opportunity Tree
• RAD Opportunity Tree elements reorganized around product-process-project-people-risk factors determined in SERC Expediting SE study
• Model calibrated to 12 agile project data points • Case Study: From Plan-Driven to Agile
12-20-2012 2
©USC-CSSE 3
Using COCOMO II in CS 577
• Begin with COCOMO II bottom-up team estimate– Source lines of code (SLOC)
• Based on prototype sizing, % of functionality• 250 SLOC, 25% of module functionality => 1000 SLOC module• Easy to underestimate %; consider off-nominal cases
– Using adjustments to CS 577 below– Focus on 577b Construction phase
• Cross-check with estimate– Using Application Point or Fast Function Point sizing– Effort by activity, rough 577b milestone plan
• Adjust, try to reconcile both estimates
©USC-CSSE 4
COCOMO II Estimates for 577b
• Disregard COCOMO II (CII) schedule estimates• Use COCOMO II effort estimates to determine how large a team
needed for 12-week fixed schedule–Assuming 12 hours/week of dedicated effort per person–Assuming 10 of the 12 weeks fill COCOMO II Construction phase
(72% of total effort estimate)–Assuming 100 hours/person-month for COCOMO estimates
• For 577b Construction phase, these are equivalent:–1 577b team member effort = (10 weeks)(12 hours/week) = 120 hrs–1.67*[est'd COCOMO II person month] = (1.67)(100 hours)(0.72) = 120 hrs
• So, one 577b team member effort = 1.67 COCOMO II PM's• And 6 577b team members’ effort = 6*1.67 = 10 COCOMO II PM's
–5 on-campus students + 1 off-campus student or equivalent• Or, N COCOMO II PM's / 1.67 = N CS577b team members needed
Outline
• Methods for schedule estimation– Size and effort-based: CS 577b interpretation of COCOMO II effort– Plan-based: critical-path analysis– Cost-schedule tradespace analysis
• CORADMO Expedited Software Development Model– RAD: Rapid Application Development– Expedited Schedule Drivers– Relation to RAD Opportunity Tree
• RAD Opportunity Tree elements reorganized around product-process-project-people-risk factors determined in SERC Expediting SE study
• Model calibrated to 12 agile project data points • Case Study: From Plan-Driven to Agile
12-20-2012 5
Simple Software Development PERT Chart
6
Start
Requirements,3
Test plan,2
Design,4
Test data,2
Test drivers, 6
Code, 4
Document, 2
Product test, 4
Finish
PERT chart development step1 and step2
7
Document, 2
Product test, 4
Finish
PERT chart development step3
8
Code, 4
Document, 2
Product test, 4
Finish
PERT chart development step4
9
Design,4
Test data,2
Test drivers, 6
Code, 4
Document, 2
Product test, 4
Finish
PERT chart development steps 5, 3, 4, 5, 3, 4, 5
10
Requirements,3
Test plan,2
Design,4
Test data,2
Test drivers, 6
Code, 4
Document, 2
Product test, 4
Finish
Critical Path Procedure1. Label the Start node (0, 0)
2. For all unlabeled nodes N whose predecessors are all labeled nodes, compute the earliest possible start time as the latest finishing time of all its predecessor nodes
where P(N) is the set of predecessor nodes of N
Compute the corresponding finish time FN=SN+DN ,where DN is the duration of activity N, Label the node N as (SN, FN)
3. Repeat Step 2 until no unlabeled nodes remain.
11
][max)(
iNPi
N FS
Critical path determination after two iterations
12
Start
Requirements,3
Test plan,2
Design,4
Test data,2
Test drivers, 6
Code, 4
Document, 2
Product test, 4
Finish(0, 0)
(0, 3)
(0, 2)
(3, 7)
(3, 5)
(2, 8)
Critical path determination after five iterations
13
Start
Requirements,3
Test plan,2
Design,4
Test data,2
Test drivers, 6
Code, 4
Document, 2
Product test, 4
Finish
(0, 0)
(0, 3)
(0, 2)
(3, 7)
(3, 5)
(2, 8)
(0, 3)
(3, 5)
(0, 0)
(3, 7)
(7, 11)
(7, 11)
(9, 11)
(5, 11)
(11, 15)
(11, 15)
(13, 15)
(7, 9)
(15, 15)
(15, 15)
Latest-Start Procedure1. Underlabel the Finish node F with its start and finish times as
determined from the critical-path procedure, that is (S’F, F’F) = ( SF, FF)
2. For all non-underlabeled nodes N whose successors are all underlabeled nodes, compute the latest possible finish time as the earliest starting time of all its successor nodes.
where S(N) is the set of successor nodes of N.
Compute the corresponding latest-start time
S’N =F’N - DN where DN is the duration of activity N, Underlabel the node as (S’N, F’N) ,Compute the slack time for the activity as
LN =S’N - SN (or LN =F’N - FN)
3. Repeat Step 2 until no non-underlabeled nodes remain.
14
]'[min')(
iNSi
N SF
Shortening the Critical Path
15
Start
Requirements,3
Test plan,2
Design,3
Test data,2
Test drivers, 6
Code, 2
Document, 2
Product test, 4
Finish
(0, 0)
(0, 3)
(0, 2)
(3, 6)
(3, 5)
(2, 8)
(6, 8)
(8, 12)
(6, 8)
(12, 12)
Cost-Schedule Tradespace Analysis • Generally, reducing schedule adds cost
– Pair programming: 60% schedule * 2 people = 120% cost• Increasing schedule may or may not add cost
– Pre-planned smaller team: less communications overhead– Mid-course stretchout: pay longer for tech, admin overhead
• Can often decrease both cost and schedule– Lean, agile, value-based methods; product-line reuse
• Can optimize on schedule via concurrent vs. sequential processes– Sequential; cost-optimized: Schedule = 3 * cube root (effort)
• 27 person-months: Schedule = 3*3=9 months; 3 personnel– Concurrent, schedule-optimized: Schedule = square root (effort)
• 27 person-months: Schedule = 5.5 months; 5.4 personnel
• Can also accelerate agile square root schedule– SERC Expediting SysE study: product, process, people, project, risk
10-22-2013 16
Outline
• Methods for schedule estimation– Size and effort-based: CS 577b interpretation of COCOMO II effort– Plan-based: critical-path analysis– Cost-schedule tradespace analysis
• CORADMO Expedited Software Development Model– RAD: Rapid Application Development– Expedited Schedule Drivers– Relation to RAD Opportunity Tree
• RAD Opportunity Tree elements reorganized around product-process-project-people-risk factors determined in SERC Expediting SE study
• Model calibrated to 12 agile project data points • Case Study: From Plan-Driven to Agile
12-20-2012 17
18
RAD Opportunity TreeAlso in SERC RT-20 Systems 2020 Report, Appendix B
12-20-2012
Figure 3. The RAD Opportunity Tree Business process reengineering Reusing assets Eliminating Tasks Applications generation Design-to-schedule Reducing time per task Tools and automation Work Streamlining (80-20) Increasing parallelism Reducing risks of single-point failures Reducing failures Reducing their effects Reducing backtracking Early error elimination Process anchor points Improving process maturity Collaboration technology Activity network Minimizing task dependencies streamlining Avoiding high fan-in, fan-out Reducing task variance Removing tasks from critical path Increasing effective workweek 24x7 development Nightly builds, testing Weekend warriors Better people and incentives Transition to learning organization
4 Potential Critical Success Factors Areas
Final DatabaseOver 30 Interviews with Gov’t/ Industry Rapid Development
OrganizationsOver 23,500 words from interview notes
Product, Process, People … all in a Project Context
Product Factor Elements
• Product simplicity (of interfaces, legacy migration, -ilities)– Very Low: Extremely complex; Extra High: Extremely simple
• Ability to reuse product elements– Very Low: None; Extra High: 90%
• Ability to defer low-impact aspects– Very Low: Never; Extra High: Anytime
• System definition via models vs. documents – Very low: None; Extra High: 90%
• Technology maturity of key capabilities – Very Low: >0 Level 1-2 or >1 Level 3; Extra High: All >Level 7
12-20-2012 20
Process Factor Elements
• Concurrency of OpCon, Rqts., Architecture, V&V– Very Low: Highly sequential; Extra High: Fully concurrent
• Process streamlining– Very Low: Heavily Bureaucratic; Extra High: Fully streamlined
• General SE tool support (coverage, integration, maturity: CIM)– Very Low: Simple tools, weak CIM; Extra High: Very strong CIM
12-20-2012 21
Project Factor Elements
• Collaboration support– Very Low: Globally distributed; weak communications, data
sharing– Extra High: Largely collocated; very strong communications, data
sharing
• Single-domain models, methods, processes, tools (MMPTs)– Very Low: Simple MMPTs, weak CIM; Extra High: Extensive CIM
• Multi-domain models, methods, processes, tools (MMPTs)– Very Low: Simple MMPTs, weak CIM; Extra High: Extensive CIM
12-20-2012 22
People Factor Elements
• General-SE Knowledge, Skills, and Agility (KSA)– Very Low: Very weak KSA; Extra High: Very strong KSA
• Single-domain Knowledge, Skills, and Agility (KSA)– Very Low: Very weak KSA; Extra High: Very strong KSA
• Multi-domain Knowledge, Skills, and Agility (KSA)– Very Low: Very weak KSA; Extra High: Very strong KSA
• Team compatibility– Very Low: Very difficult interactions– Extra High: Seamless interactions
12-20-2012 23
Risk Acceptance Factor
• Risk Acceptance– Very Low: Highly risk-averse; – Extra High: Strongly risk-accepting
12-20-2012 24
CORADMO-SE Rating Scales, Schedule Multipliers
12-20-2012 25
CORADMO-SE Calibration DataMostly Commercial; Some DoD
12-20-2012 26
Outline• Methods for schedule estimation
– Size and effort-based: CS 577b interpretation of COCOMO II effort– Plan-based: critical-path analysis– Cost-schedule tradespace analysis
• CORADMO Expedited Software Development Model– RAD: Rapid Application Development– Expedited Schedule Drivers– Relation to RAD Opportunity Tree
• RAD Opportunity Tree elements reorganized around product-process-project-people-risk factors determined in SERC Expediting SE study
• Model calibrated to 12 agile project data points • Case Study: From Plan-Driven to Agile
12-20-2012 27
Case Study: From Plan-Driven to Agile
12-20-2012 28
12-20-2012 29
Case Study: From Plan-Driven to AgileInitial Project: Focus on Concurrent SE
Expected schedule reduction of 1.09/0.96 = 0.88 (green arrow)Actual schedule delay of 15% due to side effects (red arrows)Model prediction: 0.88*1.09*1.04*1.06*1.06 = 1.13
12-20-2012 30
Case Study: From Plan-Driven to AgileNext Project: Fix Side Effects; Reduce Bureaucracy
Model estimate: 0.88*(0.92/0.96)*(0.96/1.05) = 0.77 speedupProject results: 0.8 speedupModel tracks project status; identifies further speedup potential
Outline
• Methods for schedule estimation– Size and effort-based: CS 577b interpretation of COCOMO II effort– Plan-based: critical-path analysis– Cost-schedule tradespace analysis
• CORADMO Expedited Software Development Model– RAD: Rapid Application Development– Expedited Schedule Drivers– Relation to RAD Opportunity Tree
• RAD Opportunity Tree elements reorganized around product-process-project-people-risk factors determined in SERC Expediting SE study
• Model calibrated to 12 agile project data points • Case Study: From Plan-Driven to Agile
12-20-2012 31