31
Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-2012 1

Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

Embed Size (px)

Citation preview

Page 1: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

Schedule Estimation and Improvement

Barry Boehm, USC-CSSECS 577a, Fall 2014

12-20-2012 1

Page 2: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

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

Page 3: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

©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

Page 4: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

©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

Page 5: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

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

Page 6: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

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

Page 7: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

PERT chart development step1 and step2

7

Document, 2

Product test, 4

Finish

Page 8: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

PERT chart development step3

8

Code, 4

Document, 2

Product test, 4

Finish

Page 9: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

PERT chart development step4

9

Design,4

Test data,2

Test drivers, 6

Code, 4

Document, 2

Product test, 4

Finish

Page 10: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

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

Page 11: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

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

Page 12: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

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)

Page 13: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

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)

Page 14: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

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

Page 15: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

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)

Page 16: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

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

Page 17: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

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

Page 18: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

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

Page 19: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

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

Page 20: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

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

Page 21: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

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

Page 22: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

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

Page 23: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

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

Page 24: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

Risk Acceptance Factor

• Risk Acceptance– Very Low: Highly risk-averse; – Extra High: Strongly risk-accepting

12-20-2012 24

Page 25: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

CORADMO-SE Rating Scales, Schedule Multipliers

12-20-2012 25

Page 26: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

CORADMO-SE Calibration DataMostly Commercial; Some DoD

12-20-2012 26

Page 27: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

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

Page 28: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

Case Study: From Plan-Driven to Agile

12-20-2012 28

Page 29: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

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

Page 30: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

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

Page 31: Schedule Estimation and Improvement Barry Boehm, USC-CSSE CS 577a, Fall 2014 12-20-20121

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