An Empirical Model of Technical Debt and Interest Ariadi Nugroho

advertisement

An Empirical Model of Technical Debt and Interest

Ariadi Nugroho , Joost Visser and Tobias Kuipers

2nd International Workshop on Managing Technical Debt - Hawaii, 2011

23 May 2011

Rembrandt Tower, 14th floor

Amstelplein 1

1096 HA Amsterdam info@sig.eu

www.sig.eu

Background

2 I 7

Poor Quality Growing Problems

SIG Quality Model

..

?

How much should I invest?

When does it pay back?

Would I better-off doing nothing?

Do I have enough resource for maintenance?

Technical Debt Model

Estimate the Cost of Quality (CoC) in software systems

• Repair cost model

• Maintenance cost model

Growing debt

Growing debt

Maintenance

3 I 7

Interest

Debt = repair cost to achieve "ideal" quality level

Optimal maintenance

Time

Technical Debt

Time

Interest

Repair Cost Model

4 I 7

Estimate the effort to improve software quality

Quality assessment is based on SIG’s quality model

Aspects accounted for in the model:

• Rework Fraction (RF)

• Rebuild Value (RV)

• Refactoring Adjustment (RA)

Rework Fraction (RF)

RE man !

months

= RF percent

* RV man !

months

* RA percent

1-star 2-star 3-star 4-star 5-star

1-star

2-star 60%

3-star 100% 40%

4-star 135% 75% 35%

5-star 175% 115% 75% 40%

Maintenance Cost Model

Estimate yearly effort spent on software maintenance

Aspects accounted for in the model:

• Estimated Maintenance Size (EMS)

• Rebuild Value (RV)

• Quality Level Adjustment (QF)

5 I 7

Applying Technical Debt Model

6 I 7

System X

Language

Java

Size

125.3 KLOC

EMS

13%

RA

20%

&"!#

%"!#

$"!#

!"!#

)"!#

("!#

'"!#

,"!#

+"!#

*"!#

$#

1$-)2+-3-*&4#5*%&#6&78)95%,&:(;$#3-(-*%&

<-6-$$-=&>-;)5$&!"#$%&'>!/&

?@@A&.)35*B&#*&()5*%-*)*@-&'?CD/&

E*-+#"&$-;)5$&0F&'>!F/&

%# &# '# (#

0-)$&

)# *# +# ,# $!#

QL

3 to 4

Repair Cost: 4 MY (EUR 400K)

Positive ROI in 7th year (16%)

Positive NPV in 7th year: EUR 24K

-../#01#21#

3.45607.#

3.892:;#

+,&#"'-.)/'"0&$.1)

&$"!#

&!"!#

%$"!#

%!"!#

$"!#

!"!#

%# &# '# (# $#

*&"')

)# *# +# ,# %!#

Download