Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Rembrandt Tower, 14th floorAmstelplein 11096 HA [email protected]
June 5, 2012
What Is the Value of Your Software?
3rd International Workshop on Managing Technical Debt - Zurich, 2012
Jelle de Groot, Ariadi Nugroho, Thomas Back and Joost Visser
I 13
Outline
BackgroundApproachExploratory StudyConclusion
2
Framing the notion of software valueI 13
Background
3
Cost to produce or replace
Produce
Transaction Price
Exchange Use
Future Benefits
Reliability: produce with stable quality
Conformance: to laws and
regulations
Optimization: more efficient
production
Innovation: new products or
servicesBased on actual software development expenses in
the past
Based on market average prices for software components and
development resources
Custom software assets are not commodities
traded on a competitive market
Value
Software value = Software production value
I 13
Background
Issues related to software value•Firms invest heavily on software, but often unsure of its value•Accounting practice tends to over estimate software value
4
How can we determine software value more objectively?Value
Technical debt as a component of software value•Technical quality affects software value•Poorly written code reduces value
I 13
Approach
5
Value = Area Value = Area - Debt
Debt
Time
Cost
Technical debt
Interest
Maintenance
Optimal maintenance
Impairment based on technical debt
I 13
Approach
Measuring technical debt•Based on SIG quality model of software maintainability•Quality gap to the “ideal” level determines debt•Debt estimate is based on more than 900 system snapshots
6
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%
Rework Fraction (RF)SIG Quality Model
I 13
Approach
Proposed variants in measuring software value • V1: Subtracts repair cost (technical debt) from rebuild value• V2: Exclude parts that require rework from valuation• V3: Subtracts extra maintenance cost (interest) from rebuild value
7
V1: Fix the problem V3: Operate with higher costV2: Replace problematic parts
Applying the proposed valuation methods to 367 systems
ABAP COBOL C++ C# Java Mixed PL/SQL0
20
40
60
80
100
120
140
Frequency
Technology
I 13
Exploratory Study
8
Metrics Median
Size (KLOC) 77.0
Quality (star rating) 3.0
Rebuild value (MY) 7.8
Rework Fraction (%) 35.0
Repair effort (MY) 1.9
Descriptive Statistics
Comparison of three valuation modelsI 13
Explorative Study
9
0
2
4
6
8
10
Model 1 Model 2 Model 3
7.026.967.8
Average Software Value Across Models
Euro
s per
LOC The three valuation models
give similar values around €7 per LOC
Software value across different technologiesI 13
Explorative Study
10
C# and Java systems have the highest value. ABAP systems have the lowest value.
ABAP
0
5
10
15
20
Software Value per Line of Code - Model 1
COBOL C++ C# Java Mixed PL/SQLTechnology
EU
RO
S /
LOC
-5
0
5
10
15
ABAP COBOL C++ C# Java Mixed PL/SQLTechnology
EU
RO
S /
LOC
Software Value per Line of Code - Model 2
-5
0
5
10
15
Software Value per Line of Code - Model 3
EU
RO
S /
LOC
ABAP COBOL C++ C# Java Mixed PL/SQL
Technology
Technical debt across different technologies
I 13
Explorative Study
11
Java systems have the lowest technical debt averaging €1.6 per LOC
0
5
10
15
20
Technical Debt per Line of Code
ABAP COBOL C++ C# Java Mixed PL/SQLTechnology
EU
RO
S /
LOC
Conclusion•The notion of technical debt can be used to estimate the value of software that takes into account technical quality•No significant difference in the results given by the proposed valuation models (RE-based, RF-based, Interest-based)•C# systems have the highest value averaging €10 per LOC
Future Work•Compare results with traditional valuation approaches•Devise a method to estimate business value of software
I 13
Conclusion and Future Work
12
I 1313
I 13
Estimating Rework Fraction
Rework fraction is determined based on more than 900 system14
MonitorSnapshots S1Snapshots S2Snapshots S3Snapshots S3
Risk Profile
1-star2-star3-star4-star5-star
Moderate High Very High
31% 8% 4%16% 5% 4%13% 3% 0%10% 1% 0%7% 0% 0%
Rework Fraction
1-star2-star3-star4-star5-star
1-star 2-star 3-star 4-star 5-star
X 21% X 38% 17% X 43% 22% 5% X50% 29% 12% 7% X
[UI, US, UC, MC]
[UI, US, UC, MC]
1
2
3
For each quality leap:
RF = MAX(UI,US,UC,MC,Dup)
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%
Rework Fraction (RF)