17
University of Southern California Center for Systems and Software Engineering Incremental Development Productivity Decline (IDPD) in Software Development Center for Software and Systems Engineering, Annual Research Review March 2012 Ramin Moazeni– Ph.D. Student Computer Science Department Viterbi School of Engineering University of Southern California 1

Incremental Development Productivity Decline (IDPD)

Embed Size (px)

Citation preview

Page 1: Incremental Development Productivity Decline (IDPD)

University of Southern California

Center for Systems and Software Engineering

Incremental Development Productivity Decline (IDPD) in

Software Development

Center for Software and Systems Engineering, Annual Research Review

March 2012

Ramin Moazeni– Ph.D. StudentComputer Science DepartmentViterbi School of Engineering

University of Southern California

1

Page 2: Incremental Development Productivity Decline (IDPD)

University of Southern California

Center for Systems and Software Engineering

Outline

• Incremental Development Productivity Decline (IDPD)– Overview– Relevant Examples– Cost Drivers– Effect on number of increments

2

Page 3: Incremental Development Productivity Decline (IDPD)

University of Southern California

Center for Systems and Software Engineering

Incremental Development Productivity Decline (IDPD)

• Overview– The “Incremental Productivity Decline” (IDPD) factor represents the

percentage of decline in software producibility from one increment to the next.

– The decline is due to factors such as previous-increment breakage and usage feedback, increased integration and testing effort.

– Another source of productivity decline is that maintenance of reused previous build software is not based on equivalent lines of software credited during the previous build, but on the full amount of reused software.

• Build 1: 200 KSLOC new, 200K Reused@20% yields a 240 K ESLOC “count” for estimation models.

• Build 2: there are 400 KSLOC of Build 1 to maintain and integrate– Such phenomena may cause the IDPD factor to be higher for some

builds and lower for others.3

Page 4: Incremental Development Productivity Decline (IDPD)

University of Southern California

Center for Systems and Software Engineering

Incremental Development Productivity Decline (IDPD)

• Example: Site Defense BMD Software– 5 builds, 7 years, $100M– Build 1 productivity over 300 SLOC/person month– Build 5 productivity under 150 SLOC/person month

• Including Build 1-4 breakage, integration, rework• 318% change in requirements across all builds• A factor of 2 decrease across 4 builds corresponds to an

average build to build IDPD factor of 20% productivity decrease per build

– Similar IDPD factors have been found for: • Large commercial software such as multi-year slippage in

delivery of MS Word for Windows and Windows Vista.

4

Page 5: Incremental Development Productivity Decline (IDPD)

University of Southern California

Center for Systems and Software Engineering

Quality Management Platform (QMP) Project

• QMP Project Information:– Web-based application– System is to facilitate the process improvement initiatives in

many small and medium software organizations– 6 builds, 6 years, different increment duration– Size after 6th build: 548 KSLOC mostly in Java– Average staff on project: ~20

5

Page 6: Incremental Development Productivity Decline (IDPD)

University of Southern California

Center for Systems and Software Engineering

Quality Management Platform (QMP) Project

• Data Collection– Most data come from release documentation, build reports,

and project member interviews/surveys– Data include product size, effort by engineering phase, effort

by engineering activities, defects by phase, requirements changes, project schedule, COCOMO II driver ratings (rated by project developers and organization experts)

– Data collection challenges:• Incomplete and inconsistency data• Different data format, depends on who filled the data report• No system architecture documents available

6

Page 7: Incremental Development Productivity Decline (IDPD)

University of Southern California

Center for Systems and Software Engineering

Quality Management Platform (QMP) Project Data Analysis – Productivity Trends

Productivity Trend

9.61

7.05

2.86

4.46

6.53

4.01

0.00

2.00

4.00

6.00

8.00

10.00

12.00

0 1 2 3 4 5 6 7

Builds

Productivity Linear (Productivity)

• The slope of the trend line is -0.76 SLOC/PH per build• Across the five builds, this corresponds to a 14% average

decline in productivity per build. This is smaller than the 20% Incremental Development Productivity Decline (IDPD) factor observed for a large defense program

• Most likely because the project is considerably smaller in system size and complexity

BuildSize

(KSLOC)Effort (PH)

Productivity (SLOC/PH)

Productivity Variance

1 69.12 7195 9.61 0.0%

2 64 9080 7.05 -26.6%

3 19 6647 2.86 -59.4%

4 39.2 8787.5 4.46 56.1%

5 207 31684.5 6.53 46.5%

6 65 16215.1 4.01 -38.6%

Table 1

7

Page 8: Incremental Development Productivity Decline (IDPD)

University of Southern California

Center for Systems and Software Engineering

Causes of IDPD FactorExplorations of the IDPD factors on several projects, the following sources of variation were identified:

Higher IDPD (Less Productive) Lower IDPD (More Productive)Effort to maintain previous increment; bug fixing, COTS upgrades, interface changes

Next increment requires previous increment modification

Next increment spun out to more platforms

Next increment has more previous increments to integrate/interact with

Next increment touches less of the previous increment

Staff turn over reduces experience Current staff more experienced, productive

Next increment software more complex Next increment software less complex

Previous increment incompletely developed, tested, integrated

Previous increment did much of the next increment’s requirements, architecture 8

Page 9: Incremental Development Productivity Decline (IDPD)

University of Southern California

Center for Systems and Software Engineering

Software Categories & IDPD Factor• Categorization of different type of software with different

productivity curves through multiple build cycles, require different IDPD factors applicable to each class of software.

Software Category Impact on IDPD FactorNon-Deployable Throw-away code. Low Build-Build integration. High

reuse. IDPD factor lowest than any type of deployable/operational software

Infrastructure Software Often the most difficult software. Developed early on in the program. IDPD factor likely to be the highest.

Application Software Builds upon Infrastructure software. Productivity can be increasing, or at least “flat”

Platform Software Developed by HW manufacturers. Single vendor, experienced staff in a single controlled environment. Integration effort is primarily with HW.IDPD will be lower due to the benefits mentioned above.

Firmware (Single Build) IDPD factor not applicable. Single build increment.

9

Page 10: Incremental Development Productivity Decline (IDPD)

University of Southern California

Center for Systems and Software Engineering

IDPD Model & Data Definition• Based on analysis of the IDPD effects, the next increment’s ESLOC,

IDPD factor, and software effort can be estimated– KSLOC (I) in the existing increments 1 through I

• The fraction F of these are going to be modified– The previous increments (I) would then be considered as reused software and

their equivalent lines of code calculated as• EAF (I+1): EAF factor for the next increment’s development EAF (I+1)

would be the EAF (I) adjusted by the product of Delphi-TBD effort multipliers for the following IDPD factors: 

IDPD Drivers DescriptionRCPLX Complexity of Increment I+1 relative to

complexity of existing software

IPCON Staff turnover from previous increment’s staff

PRELY Previous increments’ required reliability

IRESL Architecture and risk resolution (RESL) rating of I+1 relative to RESL of 1..I

10

Page 11: Incremental Development Productivity Decline (IDPD)

University of Southern California

Center for Systems and Software Engineering

IDPD Model & Data Definition - 2

• The total EKSLOC(I+1) = EKSLOC (I) + EKSLOC (I+1 Added) and the EAF (I+1) factor would be used in the standard COCOMO II equations to compute PM (I+1).

• The standalone PM for Increment I+1, SPM (I+1), would be

calculated from EKSLOC (I+1 Added) and EAF (I), using the standard COCOMO II equations.

• The IDPD (I+1) factor would then be  

IDPD(I+1) = SPM (I+1) / PM (I+1)

11

EKSLOC (I) = KSLOC (I) * (0.4*DM + 0.3*CM + 0.3*IM)

Page 12: Incremental Development Productivity Decline (IDPD)

University of Southern California

Center for Systems and Software Engineering

Data Collection• Collect data of completed Incremental projects from industry• Inclusion Criteria:

– Starting and ending dates are clear– Has at least two increments of significant capability that have been

integrated with other software (from other sources) and shown to work in operationally-relevant situations

– Has well-substantiated sizing and effort data by increment– Less than an order of magnitude difference in size or effort per increment– Realistic reuse factors for COTS and modified code– Uniformly code-counted source code– Effort pertaining just to increment deliverables

12

Page 13: Incremental Development Productivity Decline (IDPD)

University of Southern California

Center for Systems and Software Engineering

Data Collection - 2• Metrics

Metric DescriptionProduct Name of software product

Build Build number. A software product that has multiple builds (increments)

Effort Total time in person-hours

New SLOC SLOC count of new modules

Reused SLOC SLOC count of reused modules

COTS SLOC SOLC count of COTS modules

CM The percentage of modified code

DM The percentage of design modified

IM The percentage of implementation and test needed for the reused/COTS modules

SU Software Understanding

UNFM Programmer Unfamiliarity

Cost drivers Rating levels for 22 cost drivers13

Page 14: Incremental Development Productivity Decline (IDPD)

University of Southern California

Center for Systems and Software Engineering

Preliminary Results - 1• Delphi Results

– 2 rounds of Delphi at CSSE and ISCAS

IDPD Factor Productivity Range

Variance

RCPLX 1.79 0.098

IPCON 1.77 0.066

PRELY 1.49 0.029

IRESL 1.53 0.029

14

Page 15: Incremental Development Productivity Decline (IDPD)

University of Southern California

Center for Systems and Software Engineering

Preliminary Results - 2• IDPD Driver ratings

VL L N H VH

PRELY 0.972 0.986 1 1.008 1.025

RCPLX 0.985 0.904 1 0.783 0.732

IPCON 0.841 0.900 1 0.951 1.052

IRESL 1.065 1.046 1 0.988 0.933

15

Page 16: Incremental Development Productivity Decline (IDPD)

University of Southern California

Center for Systems and Software Engineering

Preliminary Results - 3• Relative Impact of Cost drivers on Effort: Productivity Ranges

16

Page 17: Incremental Development Productivity Decline (IDPD)

University of Southern California

Center for Systems and Software Engineering

Question?

17