Kosten technischer Qualität in der Softwareentwicklung

Sebastian Dietrich
Sebastian DietrichIT-Trainer, Berater, Scrum-Master, Architekt und Entwickler.
Kosten Technischer Qualität

In der Softwareentwicklung

e-movimento Software Design & Beratung GmbH
1030 Wien ● Marxergasse 7/26 ► www.e-movimento.com
Vorstellung
 Name: DI Sebastian Dietrich
 Tätigkeiten:
 Java-Softwareentwickler & Softwarearchitekt
 Teamleiter & Scrum-Master
 Berater, Trainer

 Überzeugungen & Leidenschaften:
 Technische Qualität & Produktivität
 Praxiserfahrung & theoretischer Background
 Agile Softwareentwicklung, Java, Android, Wikipedia

 Kontakt:
 mailto://Sebastian.Dietrich@e-movimento.com
 http://managing-java.blogspot.co.at
 http://de.wikipedia.org/wiki/Benutzer:Sebastian.Dietrich
2

► www.e-movimento.com, Sebastian Dietrich
Technische Qualität in der Softwareentwicklung
Was ist das?
 Definition:
 Teilaspekt von Softwarequalität
 Zur Erfüllung nicht-funktionaler Anforderungen wie Konformität,
Verständlichkeit, Analysierbarkeit, Modifizierbarkeit, Wartbarkeit,
Anpassbarkeit, Prüfbarkeit (ISO/IEC 9126)

 Beispiel:
public void setEmail(String email) {
this.email = email;
}

3

► www.e-movimento.com, Sebastian Dietrich
Technische Qualität in der Softwareentwicklung
Was ist das?
 Definition:
 Teilaspekt von Softwarequalität
 Zur Erfüllung nicht-funktionaler Anforderungen wie Konformität,
Verständlichkeit, Analysierbarkeit, Modifizierbarkeit,
Anpassbarkeit, Prüfbarkeit (ISO/IEC 9126)

 Beispiel:
/**
* Sets the email to the given value.
*
* @param email the email to set.
* must not be null and a valid email
*/
public void setEmail(String email) {
this.email = email;
}
4

► www.e-movimento.com, Sebastian Dietrich
Technische Qualität in der Softwareentwicklung
Was ist das?
 Definition:
 Teilaspekt von Softwarequalität
 Zur Erfüllung nicht-funktionaler Anforderungen wie Konformität,
Verständlichkeit, Analysierbarkeit, Modifizierbarkeit, Anpassbarkeit,
Prüfbarkeit (ISO/IEC 9126)

 Beispiel:
public void setEmail(String email) {
if (email == null)
throw new IllegalArgumentException(„null“);
if (!Pattern.matches("[a-z0-9!#$% … @ … (?:[a-z … “)
throw new IllegalArgumentException(„invalid“);
this.email = email;
}

5

► www.e-movimento.com, Sebastian Dietrich
Technische Qualität in der Softwareentwicklung
Was ist das?
 Definition:
 Teilaspekt von Softwarequalität
 Zur Erfüllung nicht-funktionaler Anforderungen wie Konformität,
Verständlichkeit, Analysierbarkeit, Modifizierbarkeit, Anpassbarkeit,
Prüfbarkeit (ISO/IEC 9126)

 Beispiel:
public void setEmail(@Email String email) {
this.email = email;
}

6

► www.e-movimento.com, Sebastian Dietrich
Technische Qualität in der Softwareentwicklung
Weitere Beispiele
Code-Smells & Programmierungs-Anti-Pattern:

7

► www.e-movimento.com, Sebastian Dietrich
Technische Qualität in der Softwareentwicklung
Literatur

8

► www.e-movimento.com, Sebastian Dietrich
Technische Qualität in der Softwareentwicklung
Management Sicht

9

► www.e-movimento.com, Sebastian Dietrich
Goldene Wasserhähne
Kosten – Nutzen Rechnung
Kosten
€ 2.035,- (Messing)
€ 3.035,- (vergoldet)
€ 13.820,- (Vollgold)

10

Nutzen
Hübscher
Weniger Fehler
Schnellerer Einbau
Bessere Wasserqualität
Schnelleres Händewaschen
Glückliche Installateure
Geringere Wartungskosten
…

► www.e-movimento.com, Sebastian Dietrich
Technische Qualität in der Softwareentwicklung
Kosten – Nutzen Rechnung?
Kosten
viel (keine Smells)
viel mehr (keine Anti-Pattern)

Nutzen
Hübscherer Code
Weniger Bugs

ungeheuer viel (beides nicht) Schnellere Implementierung
Bessere Produktqualität
Produktivere Software
Glückliche Entwickler
Geringere Wartungskosten
…

11

► www.e-movimento.com, Sebastian Dietrich
Technische Qualität in der Softwareentwicklung
Kosten – Nutzen Rechnung?
Kosten
viel (keine Smells)
viel mehr (keine Anti-Pattern)

Nutzen
Hübscherer Code
Weniger Bugs

ungeheuer viel (beides nicht) Schnellere Implementierung
Bessere Produktqualität
Produktivere Software
Glückliche Entwickler
Geringere Wartungskosten
…

12

► www.e-movimento.com, Sebastian Dietrich
Technische Qualität in der Softwareentwicklung
Kosten – Nutzen Rechnung
Kosten

Nutzen

1. Höhere Produktivität?

13

► www.e-movimento.com, Sebastian Dietrich
Höhere Produktivität in der Softwareentwicklung?
Hypothese

Ziel:

Höhere technische Qualität

Maßnahmen:

(automatisierte) Reviews &
Qualitätsverbesserungen

Entwicklungskosten

Höhere technische Qualität

Ergebnis:
Höhere Produktivität
In der Softwareentwicklung

14

► www.e-movimento.com, Sebastian Dietrich
Höhere Produktivität in der Softwareentwicklung
Studien
 Höhere technische Qualität kombiniert mit
Prozessverbesserungsmaßnahmen führen zu einer
Produktivitätssteigerung um 170% [Ireland 95]
 Hohe technische Qualität führt zu höherer Produktivität
(>50%), weniger Abbrüchen (> 50%) und weniger Fehlern
bei Fehlerkorrekturen [Petermair 08]

15

► www.e-movimento.com, Sebastian Dietrich
Höhere Produktivität in der Softwareentwicklung?
Erkenntnis

Ziel:

Höhere technische Qualität

Maßnahmen:

(automatisierte) Reviews &
Qualitätsverbesserungen

Entwicklungskosten

Höhere technische Qualität

Ergebnis:

min.50%
Höhere Produktivität
In der Softwareentwicklung

16

► www.e-movimento.com, Sebastian Dietrich
Technische Qualität in der Softwareentwicklung
Kosten – Nutzen Rechnung
Kosten

Nutzen

1. Höhere Produktivität 
2. Weniger Bugs?

17

► www.e-movimento.com, Sebastian Dietrich
Weniger Bugs durch technische Qualität?
Hypothese

Ziel:

Höhere technische Qualität

Maßnahmen:

(automatisierte) Reviews &
Qualitätsverbesserungen

Entwicklungskosten

Höhere technische Qualität

Ergebnis:
Weniger Bugs
(nach Entwicklung)

18

► www.e-movimento.com, Sebastian Dietrich
Weniger Bugs durch technische Qualität?
Frage
Frage: Was sollte sich ein Projektleiter wünschen, um
möglichst wenig Bugs zu bekommen?
a) Die bestmöglichsten klassischen Tests?
(Systemtests, Funktionstests)

b) Die bestmöglichsten Entwicklertests?
(Unittests, Integrationstests)

c) Die bestmöglichsten Reviews?
(Design Reviews und Code Inspections)

Zusatzfragen:
Welche der Testarten kann Fehler vermeiden?
Und welche Testart findet am meisten Fehler?

19

► www.e-movimento.com, Sebastian Dietrich
Weniger Bugs durch technische Qualität?
Antwort
90%

% gefundene Fehler je Tätigkeit

50%
40%

30%
20%

Klassische
Tests

60%

Entwickler
Tests

70%

Reviews

80%

10%
0%

[Jones 02]
20

► www.e-movimento.com, Sebastian Dietrich
Weniger Bugs durch technische Qualität?
Weitere Studien
 80-90% aller Bugs können mittels Code-Inspections
gefunden werden. [Fagan 76]
 Code-Inspections bei Motorolas Iridium Projekt
entdeckten 80% der Fehler, Reviews 60% der Fehler
[Brown 99]
 Bei Bell Northern Research fand man heraus, dass Fehler
durch Code-Ispections 2-4 mal schneller gefunden
werden können als durch Tests [Russell 91]
 Teams mit geringem Qualitätsfocus produzieren 200 mal
mehr Bugs (6 pro function point) als Teams mit hohem
Qualitätsfocus (3 Bugs pro 100 function points) [Jones 00]

21

► www.e-movimento.com, Sebastian Dietrich
Weniger Bugs durch technische Qualität?
Fehlervermeidung durch technische Qualität:
 Reviews erkennen:
 Doppelten Code (z.B. via CPD oder Simian)
Erfahrung aus Assessments: 1% - 24% (7% median)
 Redundanter Code (z.B. via Dead Code Detector)
Erfahrung aus Assessments: 1% - 5% (3% median)
 Toter Code (= ausgeführter Code dessen Ergebnis nie verwendet
wird)
 Unerreichbarer Code (= kann im Programmablauf nie erreicht
werden)

 Wartbarkeit, Verständlichkeit, Analysierbarkeit, Modifizierbarkeit
 weitere Faktoren die Fehler vermeiden

d.h. Technische Qualität  min. 10% Fehler vermieden

22

► www.e-movimento.com, Sebastian Dietrich
Weniger Bugs durch technische Qualität?
Erkentnis:

Ziel:

Höhere technische Qualität

Maßnahmen:

(automatisierte) Reviews &
Qualitätsverbesserungen

Höhere technische Qualität

Ergebnis:

Entwicklungskosten

30%
bis
85%

min.10%
Weniger Bugs
(nach Entwicklung)

23

► www.e-movimento.com, Sebastian Dietrich
Technische Qualität in der Softwareentwicklung
Kosten – Nutzen Rechnung
Kosten

Nutzen

1. Höhere Produktivität 
2. Weniger Bugs 
3. Weniger Entstehungskosten?

24

► www.e-movimento.com, Sebastian Dietrich
Weniger Entstehungskosten durch techn. Qualität?
Hypothese
Ziel:

Höhere technische Qualität

Entwicklungskosten

Höhere technische Qualität

Höhere Produktivität
In der Softwareentwicklung

Weniger Bugs
(nach Entwicklung)

Maßnahmen:

(automatisierte) Reviews &
Qualitätsverbesserungen

Weniger
Entstehungskosten

Ergebnis:

Weniger Testaufwand

25

Weniger Bugfixingaufwand
► www.e-movimento.com, Sebastian Dietrich
Weniger Entstehungskosten durch techn. Qualität?
Weniger Testaufwand?
 Frage:
„Um wieviel weniger Testfälle benötige ich, wenn ich mir
deutlich (40%-95%) weniger Bugs erwarte?“
 Antwort:
„Da man nicht weiss, wo die Bugs liegen braucht man
exakt gleichviele Testfälle“
 Frage:
„Was kann man sich überhaupt ersparen, wenn weniger
Bugs gefunden werden?“

26

► www.e-movimento.com, Sebastian Dietrich
Weniger Entstehungskosten durch techn. Qualität?
Weniger Testaufwand
Test

~1 Fehler / Testfall

Gefundene
Fehler

0,5 – 0,8 neue Fehler je Fix

Solange bis
Akzeptanzkriterien
erfüllt

Fehlerbehebung

~1 PT / Fehler
= x10 wie während
Entwicklung

[Jones 86], [Jones 96a], [Jones 96b], [Shull 02], [McConnell 04], [Fagan 76], [Gilb 93]

 Antwort:
„Man spart sich Regressionstest-Durchgänge“ (ca. 10%)
„Man spart sich Fehlerbehebungsaufwände“ (40%-95%
weniger Fehler  36%-85,5% weniger Aufwand)
27

► www.e-movimento.com, Sebastian Dietrich
Weniger Entstehungskosten durch techn. Qualität?
Review und Qualitätsverbesserungsaufwand
 Reviewkosten:
 Können (falsch gemacht) explodieren
(bis 15% der Entwicklungsaufwände [Humphrey 89]).
 Richtig ist:
 Großteil der Reviews automatisieren (insbesondere
Architektureinhaltung, Design, Unit-Testqualität)
 Reviews in den Build als „Quality Gate“ einbauen (fail fast)
 Manuelle Reviews durch Techniken wie DoD, Collective Code
Ownership, PairProgramming, TDD, BDD, … umsetzen

 Eigene Erfahrung: +5% des Entwicklungsaufwandes

 Qualitätsverbesserungsaufwand:
 Im Nachhinein deutlich teurer als mittels Quality Gates
 Eigene Erfahrung: +100% im Nachhinein, +5% sofort

28

► www.e-movimento.com, Sebastian Dietrich
Qualitätsverbesserungsaufwand
Verbesserungen im Nachhinein
 Verbesserungen im Nachhinein
 Wenige Tage bis Jahre nach Entstehen der Qualitätsmängel
 Sauteuer (bis 100% der Entwicklungskosten)
 will keiner zahlen

 Lösung: Limbo mit Softwarequalität
1. Quality Gates (= Limbostange) einführen
(Build bricht, wenn nicht eingehalten)
2. Quality Gates auf aktuelle Qualität setzen
 Build bricht bei Verschlechterungen
 Verschlechterungen sofort ausbessern
3. Sobald (zufällig, nebenbei) Qualität besser
 Quality Gate sofort anpassen

 Erfahrungswerte:
1 Entwickler verbessert 10 KLOC/Jahr um 50% „nebenbei“
29

► www.e-movimento.com, Sebastian Dietrich
Weniger Entstehungskosten durch techn. Qualität?
Kosten - Nutzenrechnung

Entwicklung
Test

 Rechnung:
5% Mehraufwand durch Reviews
5%-100% Mehraufwand durch Qualitätsverbesserung
50%-170% höhere Entwicklerproduktivität
10% weniger Testaufwand
36%-85,5% weniger Fehlerbehebungsaufwand
===================================
19% geringere bis 245,5% höhere Produktivität in Entwicklung
10% höhere Produktivität im Test
 Typisches Softwareentwicklungsprojekt (1.000 PT):
500PT Entwicklung, 400PT Test, 100PT Fehlerbehebung
 204 – 595 PT Entwicklung
74 PT Mehraufwand bis
360
PT Test
395 PT Minderaufwand
41 – 119 PT Fehlerbehebung
+7 bis -253%

30

► www.e-movimento.com, Sebastian Dietrich
Weniger Entstehungskosten durch techn. Qualität?
Studien
 Reviews und Inspections alleine reduzieren die
Softwareentstehungskosten / Dauer um bis zu 30% [Jones 00]
 Code-Inspections führen zu einer Aufwandsreduktion von bis zu 25%
[Fagan 86]
 Fehlerbehebungsaufwände machen bis zu 90% der
Entwicklungsaufwände aus [Jones 00]
 Focus auf technische Qualität bringt ein 2- bis 4-fache Steigerung der
Entwicklungsproduktivität (bei schlechten Teams bis 10-fach)
[Anderson 10]
 Bei AT&T führten Reviews zu einer 10-fachen Verbesserung der
Qualität und 14% höheren Produktivität. [Humphrey 89]
 IBM berichtet, dass jede Stunde Inspections 20 Stunden Test spart
[Holland 99]

31

► www.e-movimento.com, Sebastian Dietrich
Weniger Entstehungskosten durch techn. Qualität?
Erkenntnis:
Ziel:

Höhere technische Qualität

10%-105%

Maßnahmen:

(automatisierte) Reviews &
Qualitätsverbesserungen

Entwicklungskosten

50%-170%
Höhere technische Qualität

Höhere Produktivität
In der Softwareentwicklung

+7% bis -253%

Ergebnis:

Mehr/Weniger
Entstehungskosten

Weniger Bugs
(nach Entwicklung)

ca.10%
Weniger Testaufwand

32

36%-85%
Weniger Bugfixingaufwand

46% 95%

► www.e-movimento.com, Sebastian Dietrich
Technische Qualität in der Softwareentwicklung
Kosten – Nutzen Rechnung
Kosten

1.
2.
3.
4.

33

Nutzen

Höhere Produktivität 
Weniger Bugs 
Weniger Entstehungskosten
Deutlich geringere
Gesamtkosten?
► www.e-movimento.com, Sebastian Dietrich
Deutlich geringere Gesamtkosten durch techn. QS?
Überlegung
 Ziele der Technischen Qualität:
 Erfüllung nicht-funktionaler Anforderungen wie Konformität,
Verständlichkeit, Analysierbarkeit, Modifizierbarkeit,
Wartbarkeit, Anpassbarkeit, Prüfbarkeit (ISO/IEC 9126)

 Aufgaben während der Wartung:
 Code verstehen, analysieren, modifizieren, anpassen,
überprüfen
  Technische Qualität reduziert insbesondere
Wartungsaufwände

 Wartungskosten:
 Traditionell der größte Teil des Software Lebenszyklus
 Steigt stetig (70er Jahre 35%-60%, 2000er Jahre 80%90%) ([Macario et al. 03], [M.M. Lehman 80])
34

► www.e-movimento.com, Sebastian Dietrich
Deutlich geringere Gesamtkosten durch techn. QS?
Hypothese
Ziel:
Maßnahmen:

Höhere technische Qualität

(automatisierte) Reviews &
Qualitätsverbesserungen

Entwicklungskosten
Höhere Produktivität
In der Softwareentwicklung

Höhere technische Qualität
Weniger Wartungsaufwand

Ergebnis:
Weniger Bugs
(nach Entwicklung)

Weniger Testaufwand
35

Deutlich geringere
Gesamtkosten

Weniger Bugfixingaufwand
► www.e-movimento.com, Sebastian Dietrich
Höhere Wartbarkeit
Studien
 Alleine der Einsatz von Komplexitätsmetriken und die Verbesserung
der damit aufgezeigten Codeteile führen zu ca. 20 % höherer
Produktivität in der Softwarewartung. [Jones 00]
 HPs Programm zur Verbesserung der technischen Qualität brachte
ein ROI von 10 : 1. HP ersparte sich damit geschätzte $21.4 Millionen
pro Jahr. [Grady 94]
 Reviews von 2.5 Mio LOC (real-time-code bei Bell) reduzierte den
Wartungsaufwand im Schnitt um 33 Stunden je gefundenem Defect
[Russell 91]
 IBM berichtet, dass jede Stunde für Reviews im Schnitt 82 Stunden
Wartungsaufwand reduziert [Holland 99]
 Bei Imperial Chemical Industries wurden ca. 400 gereviewte
Programme mit anderen ca. 400 nicht gereviewten Programmen
verglichen. Qualitätsverbesserte Programme kosten in der Wartung
nur 1/10tel von Programme ohne Qualitätsoptimierungen [Gilb 93]
36

► www.e-movimento.com, Sebastian Dietrich
Deutlich geringere Gesamtkosten durch techn. QS?

Software
wartung

Software Software
test
entwicklung

Kosten - Nutzenrechnung
19% geringere bis 245% höhere Produktivität

10% höhere Produktivität

20% - 1000% höhere Produktivität

 Typisches Softwareentwicklungsprojekt (66% Wartung):
500PT Entwicklung, 400 Test, 100 Fehlerbehebung, 2000 Wartung
 204 – 595 PT Entwicklung
360
PT Test
326 – 2195 PT Minderaufwand
41 – 119 PT Fehlerbehebung
11% – 73% Minderaufwand
200 – 1600 PT Wartung
37

► www.e-movimento.com, Sebastian Dietrich
Deutlich geringere Gesamtkosten durch techn. QS?
Erkenntnis:
Ziel:
Maßnahmen:

Höhere technische Qualität

Entwicklungskosten
(automatisierte) Reviews &
Qualitätsverbesserungen

Höhere technische Qualität

50%-170%
Höhere Produktivität
In der Softwareentwicklung

min. 20%
Weniger Wartungsaufwand

Ergebnis:
Weniger Bugs
(nach Entwicklung)

ca.10%
Weniger Testaufwand
38

10%-105%

11%-73%
Deutlich geringere
Gesamtkosten

36%-85%
Weniger Bugfixingaufwand

46% 95%

► www.e-movimento.com, Sebastian Dietrich
Technische Qualität in der Softwareentwicklung
Kosten – Nutzen Rechnung: Fazit
Kosten
Gratis
Amortisiert sich bereits
während der Entwicklung

Nutzen
Flexibel für Änderungen
Deutlich weniger Bugs
(min. 40% weniger)
Schnellere Fertigstellung
(bis zu 250% schneller)
Geringere Wartungskosten
(min 20% geringer)
Geringere Gesamtkosten
(min 11% geringer)
Glückliche Entwickler
Glückliche Endkunden

39

► www.e-movimento.com, Sebastian Dietrich
Technische Qualität in der Softwareentwicklung
Kosten – Nutzen Rechnung: Fazit

40

► www.e-movimento.com, Sebastian Dietrich
Technische Qualität in der Softwareentwicklung
Literatur
 Wikipedia:
 Codequalität @ Wikipedia: https://de.wikipedia.org/wiki/Codequalität
 Code-Smells@ Wikipedia:
https://de.wikipedia.org/wiki/Smell_(Programmierung)
 Programmierungs Anti-Pattern @ Wikipedia:
https://de.wikipedia.org/wiki/Anti-Pattern#Programmierungs-Anti-Pattern

 Literatur:






The Clean Coder @ Amazon: http://bit.ly/cleancoder
Clean Code @ Amazon: http://bit.ly/cleancodecmartin
Refactoring @ Amazon: http://bit.ly/refactoring_fowler
Code Complete @ Amazon: http://bit.ly/codecomplete
The Pragmatic Programmer @ Amazon:
http://bit.ly/pragmaticprogrammer
 Limbo mit Softwarequalität: http://managingjava.blogspot.co.at/2012/05/limbo-mit-softwarequalitat.html
41

► www.e-movimento.com, Sebastian Dietrich
Technische Qualität in der Softwareentwicklung
Referenzierte Studien
 [Ireland 95] – Blake Ireland, Ed Wojtaszek, Dan Nash, Ray Dion, Tom Haley:
„Raytheon Electronic Systems Experience in Software Process
Improvement“, Software Engineering Institute, November 1995, CMU/SEI-95TR-017
 [Petermair 08] - Patrick Petermair: „Auswirkung von Codequalität auf die
Produktivität in Softwareprojekten“ – FH Campus Wien 2008/09
 [Jones 02] – Capers Jones 2002:
http://www.cs.nyu.edu/artg/Producing_Production_Quality_Software/Fall2005
/lectures/SOFTWARE_QUALITY_IN_2002_CAPERS_JONES.pdf
~ 12.000 Projekte, 600 Unternehmen, 24 Länder
 [Fagan 76] M.E. Fagan (1976). "Design and Code inspections to reduce
errors in program development". IBM Systems Journal 15 (3): pp. 182–211.
 [Brown 99]: Brown, Norm. "High-Leverage Best Practices: What Hot
Companies Are Doing to Stay Ahead," Cutter IT Journal, Vol. 12, No. 9
(September 1999), pp. 4-9.
 [Russell 91]: Russell, Glen W. "Experience with Inspection in Ultralarge-Scale
Developments," IEEE Software, Vol. 8, No. 1 (January 1991), pp. 25-31.
42

► www.e-movimento.com, Sebastian Dietrich
Technische Qualität in der Softwareentwicklung
Referenzierte Studien cont.
 [Jones 00]: Capers Jones: Software Assessments, Benchmarks, and Best
Practices. Addison-Wesley, 11. Mai 2000, ISBN 978-0201485424
 [Jones 96] Applied Software Measurement, Capers Jones, 1996
 [Jones 86] Programming Productivity, Capers Jones, 1986
 [Jones 96] Software Defect-Removal Efficiency, Capers Jones, 1996
 [Shull 02] What We Have Learned About Fighting Defects, Shull et al 2002
 [McConnell 04] Code Complete, Steve McConnell 2004
 [Gilb 93] Tom Gilb, Dorothy Graham, Susannah Finzi „Software Inspection“,
Addison-Wesley: Trevor Reeve, Case Study Chapter
 [Humphrey 89]: Watts S. Humphrey: Managing the software process,
Addison-Wesley 1989, ISBN:0-201-18095-2
 [Anderson 10]: David J. Anderson: Kanban. Blue Hole Press, 2000, ISBN
978-0-984521401
 [Holland 99]: Holland, Dick. "Document Inspection as an Agent of
Change," Software Quality Professional, Vol. 2, No. 1 (December 1999), pp.
22-33.
43

► www.e-movimento.com, Sebastian Dietrich
Vielen Dank für Ihre Aufmerksamkeit!

QA
&

[Sebastian Dietrich]
Sebastian.Dietrich@e-movimento.com
http://managing-java.blogspot.com

44

► www.e-movimento.com, Sebastian Dietrich
1 von 44

Recomendados

Mastering architecture, design- and code-quality von
Mastering architecture, design- and code-qualityMastering architecture, design- and code-quality
Mastering architecture, design- and code-qualitySebastian Dietrich
2.4K views24 Folien
Test-Alternativen von
Test-AlternativenTest-Alternativen
Test-AlternativenSebastian Dietrich
148 views16 Folien
Der Agile Qualitätsbaukasten - PHP Unconference 2014 von
Der Agile Qualitätsbaukasten - PHP Unconference 2014Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014WebcsonsultsEU
1.9K views25 Folien
Testen mit, durch und in Scrum von
Testen mit, durch und in ScrumTesten mit, durch und in Scrum
Testen mit, durch und in ScrumFrank Düsterbeck
3.4K views68 Folien
Integration agiler und klassischer Vorgehensweisen (Embedded-Meets-Agile 18.2... von
Integration agiler und klassischer Vorgehensweisen (Embedded-Meets-Agile 18.2...Integration agiler und klassischer Vorgehensweisen (Embedded-Meets-Agile 18.2...
Integration agiler und klassischer Vorgehensweisen (Embedded-Meets-Agile 18.2...Joachim Baumann
3K views20 Folien
Codeception VisualCeption von
Codeception VisualCeptionCodeception VisualCeption
Codeception VisualCeptionSebastian Neubert
1.6K views42 Folien

Más contenido relacionado

Was ist angesagt?

Qz Req Eng Ebert Rudorfer 2011 V3 von
Qz Req Eng Ebert Rudorfer 2011 V3Qz Req Eng Ebert Rudorfer 2011 V3
Qz Req Eng Ebert Rudorfer 2011 V3Arnold Rudorfer
810 views13 Folien
Advanced Continuous Integration von
Advanced Continuous IntegrationAdvanced Continuous Integration
Advanced Continuous IntegrationOPITZ CONSULTING Deutschland
3.5K views48 Folien
The new job of qa was ein quality engineer zukünftig können muss von
The new job of qa   was ein quality engineer zukünftig können mussThe new job of qa   was ein quality engineer zukünftig können muss
The new job of qa was ein quality engineer zukünftig können mussraezz
1.3K views34 Folien

Was ist angesagt?(10)

The new job of qa was ein quality engineer zukünftig können muss von raezz
The new job of qa   was ein quality engineer zukünftig können mussThe new job of qa   was ein quality engineer zukünftig können muss
The new job of qa was ein quality engineer zukünftig können muss
raezz1.3K views
Agiles Testen von oose
Agiles TestenAgiles Testen
Agiles Testen
oose5.9K views
Die unendliche User Story - agiles Anforderungsmanagement von Thomas Moedl
Die unendliche User Story - agiles AnforderungsmanagementDie unendliche User Story - agiles Anforderungsmanagement
Die unendliche User Story - agiles Anforderungsmanagement
Thomas Moedl6K views

Destacado

Carpetatextiles von
CarpetatextilesCarpetatextiles
Carpetatextilesamandaru
404 views30 Folien
SEOGuardian - Muebles de Baño Online en España - 6 meses después von
SEOGuardian - Muebles de Baño Online en España - 6 meses despuésSEOGuardian - Muebles de Baño Online en España - 6 meses después
SEOGuardian - Muebles de Baño Online en España - 6 meses despuésBint
531 views16 Folien
Garbikariak von
GarbikariakGarbikariak
Garbikariaklahmakii
437 views9 Folien
Oklahoma Native Plant Society Newsletter - Summer 2012 von
Oklahoma Native Plant Society Newsletter - Summer 2012Oklahoma Native Plant Society Newsletter - Summer 2012
Oklahoma Native Plant Society Newsletter - Summer 2012Fulvia52x
1.8K views8 Folien
Caso2 ana von
Caso2 anaCaso2 ana
Caso2 anaAna Martín
594 views39 Folien

Destacado(20)

Carpetatextiles von amandaru
CarpetatextilesCarpetatextiles
Carpetatextiles
amandaru404 views
SEOGuardian - Muebles de Baño Online en España - 6 meses después von Bint
SEOGuardian - Muebles de Baño Online en España - 6 meses despuésSEOGuardian - Muebles de Baño Online en España - 6 meses después
SEOGuardian - Muebles de Baño Online en España - 6 meses después
Bint531 views
Garbikariak von lahmakii
GarbikariakGarbikariak
Garbikariak
lahmakii437 views
Oklahoma Native Plant Society Newsletter - Summer 2012 von Fulvia52x
Oklahoma Native Plant Society Newsletter - Summer 2012Oklahoma Native Plant Society Newsletter - Summer 2012
Oklahoma Native Plant Society Newsletter - Summer 2012
Fulvia52x1.8K views
Fault-tolerance on the Cheap: Making Systems That (Probably) Won't Fall Over von Brian Troutwine
Fault-tolerance on the Cheap: Making Systems That (Probably) Won't Fall Over Fault-tolerance on the Cheap: Making Systems That (Probably) Won't Fall Over
Fault-tolerance on the Cheap: Making Systems That (Probably) Won't Fall Over
Brian Troutwine2.4K views
Teatro de la sensación taller de protocolo social-saber ser saber estar von Miguel Muñoz de Morales
Teatro de la sensación taller de protocolo social-saber ser saber estarTeatro de la sensación taller de protocolo social-saber ser saber estar
Teatro de la sensación taller de protocolo social-saber ser saber estar
Luis albarracin base de datos 2 parte von Luis Albarracin
Luis albarracin base de datos 2 parteLuis albarracin base de datos 2 parte
Luis albarracin base de datos 2 parte
Luis Albarracin384 views
Content Marketing. Gli errori da non ripetere su internet. Dieci storie dal v... von Stefano Labate
Content Marketing. Gli errori da non ripetere su internet. Dieci storie dal v...Content Marketing. Gli errori da non ripetere su internet. Dieci storie dal v...
Content Marketing. Gli errori da non ripetere su internet. Dieci storie dal v...
Stefano Labate1.1K views
Tratamiento intratimpanico acufeno crónico en pacientes con DM2 von Marcial Hayakawa
Tratamiento intratimpanico acufeno crónico en pacientes con DM2Tratamiento intratimpanico acufeno crónico en pacientes con DM2
Tratamiento intratimpanico acufeno crónico en pacientes con DM2
Marcial Hayakawa3.5K views
Bulls Eye: Targeting Your Website and Email in Blackbaud NetCommunity von Blackbaud
Bulls Eye: Targeting Your Website and Email in Blackbaud NetCommunityBulls Eye: Targeting Your Website and Email in Blackbaud NetCommunity
Bulls Eye: Targeting Your Website and Email in Blackbaud NetCommunity
Blackbaud872 views
USECON RoX2016: Künstliche Intelligenz - Joy of Use von USECON
USECON RoX2016: Künstliche Intelligenz - Joy of UseUSECON RoX2016: Künstliche Intelligenz - Joy of Use
USECON RoX2016: Künstliche Intelligenz - Joy of Use
USECON361 views
Sustainable Socio-Economic Development – The Role of Gold, and Gold Mining von World Gold Council
Sustainable Socio-Economic Development – The Role of Gold, and Gold MiningSustainable Socio-Economic Development – The Role of Gold, and Gold Mining
Sustainable Socio-Economic Development – The Role of Gold, and Gold Mining
World Gold Council746 views
Arte japones von UANE
Arte japonesArte japones
Arte japones
UANE7K views
Six Concepts of Geography von Paul Wozney
Six Concepts of GeographySix Concepts of Geography
Six Concepts of Geography
Paul Wozney61.1K views

Similar a Kosten technischer Qualität in der Softwareentwicklung

Einführung in die Software-Qualitätssicherung von
Einführung in die Software-QualitätssicherungEinführung in die Software-Qualitätssicherung
Einführung in die Software-QualitätssicherungChristian Baranowski
1.6K views35 Folien
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte von
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteAgil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteQAware GmbH
881 views19 Folien
T-Systems: DevTestOps - das Geheimnis bestet App-Performance von
T-Systems: DevTestOps - das Geheimnis bestet App-PerformanceT-Systems: DevTestOps - das Geheimnis bestet App-Performance
T-Systems: DevTestOps - das Geheimnis bestet App-PerformanceDynatrace
3.8K views70 Folien
Traceability von Software Anforderungen von
Traceability von Software AnforderungenTraceability von Software Anforderungen
Traceability von Software AnforderungenMarkus Unterauer
1.2K views22 Folien
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ... von
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...DevDay Dresden
466 views46 Folien
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte von
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteAgil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteQAware GmbH
776 views20 Folien

Similar a Kosten technischer Qualität in der Softwareentwicklung(20)

Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte von QAware GmbH
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteAgil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
QAware GmbH881 views
T-Systems: DevTestOps - das Geheimnis bestet App-Performance von Dynatrace
T-Systems: DevTestOps - das Geheimnis bestet App-PerformanceT-Systems: DevTestOps - das Geheimnis bestet App-Performance
T-Systems: DevTestOps - das Geheimnis bestet App-Performance
Dynatrace3.8K views
Traceability von Software Anforderungen von Markus Unterauer
Traceability von Software AnforderungenTraceability von Software Anforderungen
Traceability von Software Anforderungen
Markus Unterauer1.2K views
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ... von DevDay Dresden
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...
DevDay Dresden466 views
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte von QAware GmbH
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteAgil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
QAware GmbH776 views
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe... von Nico Orschel
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...
Nico Orschel1.3K views
Universität Zürich - erfolgreiches Testing von IBM Switzerland
Universität Zürich - erfolgreiches TestingUniversität Zürich - erfolgreiches Testing
Universität Zürich - erfolgreiches Testing
IBM Switzerland725 views
BizDataX Testdatenmanagement Konzepte von Dragan Kinkela
BizDataX Testdatenmanagement KonzepteBizDataX Testdatenmanagement Konzepte
BizDataX Testdatenmanagement Konzepte
Dragan Kinkela705 views
Zinit.leistungen.webentwicklung.v1.0.de von Zinit Solutions
Zinit.leistungen.webentwicklung.v1.0.deZinit.leistungen.webentwicklung.v1.0.de
Zinit.leistungen.webentwicklung.v1.0.de
Zinit Solutions468 views
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools von Andreas Schreiber
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-ToolsSoftware-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Andreas Schreiber2.8K views
Michael Jäger (Techsoft), Dipl.-Ing. Bernd Kuntze (Franz Haas Waffel- und Kek... von Praxistage
Michael Jäger (Techsoft), Dipl.-Ing. Bernd Kuntze (Franz Haas Waffel- und Kek...Michael Jäger (Techsoft), Dipl.-Ing. Bernd Kuntze (Franz Haas Waffel- und Kek...
Michael Jäger (Techsoft), Dipl.-Ing. Bernd Kuntze (Franz Haas Waffel- und Kek...
Praxistage39 views
Softwarequalität – Schlagwort oder Realität ? von Ernest Wallmueller
Softwarequalität – Schlagwort oder Realität ?Softwarequalität – Schlagwort oder Realität ?
Softwarequalität – Schlagwort oder Realität ?
Ernest Wallmueller11.1K views
Automatisierte GUI-Tests mit Selenium von Benjamin Schmid
Automatisierte GUI-Tests mit SeleniumAutomatisierte GUI-Tests mit Selenium
Automatisierte GUI-Tests mit Selenium
Benjamin Schmid2.6K views

Kosten technischer Qualität in der Softwareentwicklung

  • 1. Kosten Technischer Qualität In der Softwareentwicklung e-movimento Software Design & Beratung GmbH 1030 Wien ● Marxergasse 7/26 ► www.e-movimento.com
  • 2. Vorstellung  Name: DI Sebastian Dietrich  Tätigkeiten:  Java-Softwareentwickler & Softwarearchitekt  Teamleiter & Scrum-Master  Berater, Trainer  Überzeugungen & Leidenschaften:  Technische Qualität & Produktivität  Praxiserfahrung & theoretischer Background  Agile Softwareentwicklung, Java, Android, Wikipedia  Kontakt:  mailto://Sebastian.Dietrich@e-movimento.com  http://managing-java.blogspot.co.at  http://de.wikipedia.org/wiki/Benutzer:Sebastian.Dietrich 2 ► www.e-movimento.com, Sebastian Dietrich
  • 3. Technische Qualität in der Softwareentwicklung Was ist das?  Definition:  Teilaspekt von Softwarequalität  Zur Erfüllung nicht-funktionaler Anforderungen wie Konformität, Verständlichkeit, Analysierbarkeit, Modifizierbarkeit, Wartbarkeit, Anpassbarkeit, Prüfbarkeit (ISO/IEC 9126)  Beispiel: public void setEmail(String email) { this.email = email; } 3 ► www.e-movimento.com, Sebastian Dietrich
  • 4. Technische Qualität in der Softwareentwicklung Was ist das?  Definition:  Teilaspekt von Softwarequalität  Zur Erfüllung nicht-funktionaler Anforderungen wie Konformität, Verständlichkeit, Analysierbarkeit, Modifizierbarkeit, Anpassbarkeit, Prüfbarkeit (ISO/IEC 9126)  Beispiel: /** * Sets the email to the given value. * * @param email the email to set. * must not be null and a valid email */ public void setEmail(String email) { this.email = email; } 4 ► www.e-movimento.com, Sebastian Dietrich
  • 5. Technische Qualität in der Softwareentwicklung Was ist das?  Definition:  Teilaspekt von Softwarequalität  Zur Erfüllung nicht-funktionaler Anforderungen wie Konformität, Verständlichkeit, Analysierbarkeit, Modifizierbarkeit, Anpassbarkeit, Prüfbarkeit (ISO/IEC 9126)  Beispiel: public void setEmail(String email) { if (email == null) throw new IllegalArgumentException(„null“); if (!Pattern.matches("[a-z0-9!#$% … @ … (?:[a-z … “) throw new IllegalArgumentException(„invalid“); this.email = email; } 5 ► www.e-movimento.com, Sebastian Dietrich
  • 6. Technische Qualität in der Softwareentwicklung Was ist das?  Definition:  Teilaspekt von Softwarequalität  Zur Erfüllung nicht-funktionaler Anforderungen wie Konformität, Verständlichkeit, Analysierbarkeit, Modifizierbarkeit, Anpassbarkeit, Prüfbarkeit (ISO/IEC 9126)  Beispiel: public void setEmail(@Email String email) { this.email = email; } 6 ► www.e-movimento.com, Sebastian Dietrich
  • 7. Technische Qualität in der Softwareentwicklung Weitere Beispiele Code-Smells & Programmierungs-Anti-Pattern: 7 ► www.e-movimento.com, Sebastian Dietrich
  • 8. Technische Qualität in der Softwareentwicklung Literatur 8 ► www.e-movimento.com, Sebastian Dietrich
  • 9. Technische Qualität in der Softwareentwicklung Management Sicht 9 ► www.e-movimento.com, Sebastian Dietrich
  • 10. Goldene Wasserhähne Kosten – Nutzen Rechnung Kosten € 2.035,- (Messing) € 3.035,- (vergoldet) € 13.820,- (Vollgold) 10 Nutzen Hübscher Weniger Fehler Schnellerer Einbau Bessere Wasserqualität Schnelleres Händewaschen Glückliche Installateure Geringere Wartungskosten … ► www.e-movimento.com, Sebastian Dietrich
  • 11. Technische Qualität in der Softwareentwicklung Kosten – Nutzen Rechnung? Kosten viel (keine Smells) viel mehr (keine Anti-Pattern) Nutzen Hübscherer Code Weniger Bugs ungeheuer viel (beides nicht) Schnellere Implementierung Bessere Produktqualität Produktivere Software Glückliche Entwickler Geringere Wartungskosten … 11 ► www.e-movimento.com, Sebastian Dietrich
  • 12. Technische Qualität in der Softwareentwicklung Kosten – Nutzen Rechnung? Kosten viel (keine Smells) viel mehr (keine Anti-Pattern) Nutzen Hübscherer Code Weniger Bugs ungeheuer viel (beides nicht) Schnellere Implementierung Bessere Produktqualität Produktivere Software Glückliche Entwickler Geringere Wartungskosten … 12 ► www.e-movimento.com, Sebastian Dietrich
  • 13. Technische Qualität in der Softwareentwicklung Kosten – Nutzen Rechnung Kosten Nutzen 1. Höhere Produktivität? 13 ► www.e-movimento.com, Sebastian Dietrich
  • 14. Höhere Produktivität in der Softwareentwicklung? Hypothese Ziel: Höhere technische Qualität Maßnahmen: (automatisierte) Reviews & Qualitätsverbesserungen Entwicklungskosten Höhere technische Qualität Ergebnis: Höhere Produktivität In der Softwareentwicklung 14 ► www.e-movimento.com, Sebastian Dietrich
  • 15. Höhere Produktivität in der Softwareentwicklung Studien  Höhere technische Qualität kombiniert mit Prozessverbesserungsmaßnahmen führen zu einer Produktivitätssteigerung um 170% [Ireland 95]  Hohe technische Qualität führt zu höherer Produktivität (>50%), weniger Abbrüchen (> 50%) und weniger Fehlern bei Fehlerkorrekturen [Petermair 08] 15 ► www.e-movimento.com, Sebastian Dietrich
  • 16. Höhere Produktivität in der Softwareentwicklung? Erkenntnis Ziel: Höhere technische Qualität Maßnahmen: (automatisierte) Reviews & Qualitätsverbesserungen Entwicklungskosten Höhere technische Qualität Ergebnis: min.50% Höhere Produktivität In der Softwareentwicklung 16 ► www.e-movimento.com, Sebastian Dietrich
  • 17. Technische Qualität in der Softwareentwicklung Kosten – Nutzen Rechnung Kosten Nutzen 1. Höhere Produktivität  2. Weniger Bugs? 17 ► www.e-movimento.com, Sebastian Dietrich
  • 18. Weniger Bugs durch technische Qualität? Hypothese Ziel: Höhere technische Qualität Maßnahmen: (automatisierte) Reviews & Qualitätsverbesserungen Entwicklungskosten Höhere technische Qualität Ergebnis: Weniger Bugs (nach Entwicklung) 18 ► www.e-movimento.com, Sebastian Dietrich
  • 19. Weniger Bugs durch technische Qualität? Frage Frage: Was sollte sich ein Projektleiter wünschen, um möglichst wenig Bugs zu bekommen? a) Die bestmöglichsten klassischen Tests? (Systemtests, Funktionstests) b) Die bestmöglichsten Entwicklertests? (Unittests, Integrationstests) c) Die bestmöglichsten Reviews? (Design Reviews und Code Inspections) Zusatzfragen: Welche der Testarten kann Fehler vermeiden? Und welche Testart findet am meisten Fehler? 19 ► www.e-movimento.com, Sebastian Dietrich
  • 20. Weniger Bugs durch technische Qualität? Antwort 90% % gefundene Fehler je Tätigkeit 50% 40% 30% 20% Klassische Tests 60% Entwickler Tests 70% Reviews 80% 10% 0% [Jones 02] 20 ► www.e-movimento.com, Sebastian Dietrich
  • 21. Weniger Bugs durch technische Qualität? Weitere Studien  80-90% aller Bugs können mittels Code-Inspections gefunden werden. [Fagan 76]  Code-Inspections bei Motorolas Iridium Projekt entdeckten 80% der Fehler, Reviews 60% der Fehler [Brown 99]  Bei Bell Northern Research fand man heraus, dass Fehler durch Code-Ispections 2-4 mal schneller gefunden werden können als durch Tests [Russell 91]  Teams mit geringem Qualitätsfocus produzieren 200 mal mehr Bugs (6 pro function point) als Teams mit hohem Qualitätsfocus (3 Bugs pro 100 function points) [Jones 00] 21 ► www.e-movimento.com, Sebastian Dietrich
  • 22. Weniger Bugs durch technische Qualität? Fehlervermeidung durch technische Qualität:  Reviews erkennen:  Doppelten Code (z.B. via CPD oder Simian) Erfahrung aus Assessments: 1% - 24% (7% median)  Redundanter Code (z.B. via Dead Code Detector) Erfahrung aus Assessments: 1% - 5% (3% median)  Toter Code (= ausgeführter Code dessen Ergebnis nie verwendet wird)  Unerreichbarer Code (= kann im Programmablauf nie erreicht werden)  Wartbarkeit, Verständlichkeit, Analysierbarkeit, Modifizierbarkeit  weitere Faktoren die Fehler vermeiden d.h. Technische Qualität  min. 10% Fehler vermieden 22 ► www.e-movimento.com, Sebastian Dietrich
  • 23. Weniger Bugs durch technische Qualität? Erkentnis: Ziel: Höhere technische Qualität Maßnahmen: (automatisierte) Reviews & Qualitätsverbesserungen Höhere technische Qualität Ergebnis: Entwicklungskosten 30% bis 85% min.10% Weniger Bugs (nach Entwicklung) 23 ► www.e-movimento.com, Sebastian Dietrich
  • 24. Technische Qualität in der Softwareentwicklung Kosten – Nutzen Rechnung Kosten Nutzen 1. Höhere Produktivität  2. Weniger Bugs  3. Weniger Entstehungskosten? 24 ► www.e-movimento.com, Sebastian Dietrich
  • 25. Weniger Entstehungskosten durch techn. Qualität? Hypothese Ziel: Höhere technische Qualität Entwicklungskosten Höhere technische Qualität Höhere Produktivität In der Softwareentwicklung Weniger Bugs (nach Entwicklung) Maßnahmen: (automatisierte) Reviews & Qualitätsverbesserungen Weniger Entstehungskosten Ergebnis: Weniger Testaufwand 25 Weniger Bugfixingaufwand ► www.e-movimento.com, Sebastian Dietrich
  • 26. Weniger Entstehungskosten durch techn. Qualität? Weniger Testaufwand?  Frage: „Um wieviel weniger Testfälle benötige ich, wenn ich mir deutlich (40%-95%) weniger Bugs erwarte?“  Antwort: „Da man nicht weiss, wo die Bugs liegen braucht man exakt gleichviele Testfälle“  Frage: „Was kann man sich überhaupt ersparen, wenn weniger Bugs gefunden werden?“ 26 ► www.e-movimento.com, Sebastian Dietrich
  • 27. Weniger Entstehungskosten durch techn. Qualität? Weniger Testaufwand Test ~1 Fehler / Testfall Gefundene Fehler 0,5 – 0,8 neue Fehler je Fix Solange bis Akzeptanzkriterien erfüllt Fehlerbehebung ~1 PT / Fehler = x10 wie während Entwicklung [Jones 86], [Jones 96a], [Jones 96b], [Shull 02], [McConnell 04], [Fagan 76], [Gilb 93]  Antwort: „Man spart sich Regressionstest-Durchgänge“ (ca. 10%) „Man spart sich Fehlerbehebungsaufwände“ (40%-95% weniger Fehler  36%-85,5% weniger Aufwand) 27 ► www.e-movimento.com, Sebastian Dietrich
  • 28. Weniger Entstehungskosten durch techn. Qualität? Review und Qualitätsverbesserungsaufwand  Reviewkosten:  Können (falsch gemacht) explodieren (bis 15% der Entwicklungsaufwände [Humphrey 89]).  Richtig ist:  Großteil der Reviews automatisieren (insbesondere Architektureinhaltung, Design, Unit-Testqualität)  Reviews in den Build als „Quality Gate“ einbauen (fail fast)  Manuelle Reviews durch Techniken wie DoD, Collective Code Ownership, PairProgramming, TDD, BDD, … umsetzen  Eigene Erfahrung: +5% des Entwicklungsaufwandes  Qualitätsverbesserungsaufwand:  Im Nachhinein deutlich teurer als mittels Quality Gates  Eigene Erfahrung: +100% im Nachhinein, +5% sofort 28 ► www.e-movimento.com, Sebastian Dietrich
  • 29. Qualitätsverbesserungsaufwand Verbesserungen im Nachhinein  Verbesserungen im Nachhinein  Wenige Tage bis Jahre nach Entstehen der Qualitätsmängel  Sauteuer (bis 100% der Entwicklungskosten)  will keiner zahlen  Lösung: Limbo mit Softwarequalität 1. Quality Gates (= Limbostange) einführen (Build bricht, wenn nicht eingehalten) 2. Quality Gates auf aktuelle Qualität setzen  Build bricht bei Verschlechterungen  Verschlechterungen sofort ausbessern 3. Sobald (zufällig, nebenbei) Qualität besser  Quality Gate sofort anpassen  Erfahrungswerte: 1 Entwickler verbessert 10 KLOC/Jahr um 50% „nebenbei“ 29 ► www.e-movimento.com, Sebastian Dietrich
  • 30. Weniger Entstehungskosten durch techn. Qualität? Kosten - Nutzenrechnung Entwicklung Test  Rechnung: 5% Mehraufwand durch Reviews 5%-100% Mehraufwand durch Qualitätsverbesserung 50%-170% höhere Entwicklerproduktivität 10% weniger Testaufwand 36%-85,5% weniger Fehlerbehebungsaufwand =================================== 19% geringere bis 245,5% höhere Produktivität in Entwicklung 10% höhere Produktivität im Test  Typisches Softwareentwicklungsprojekt (1.000 PT): 500PT Entwicklung, 400PT Test, 100PT Fehlerbehebung  204 – 595 PT Entwicklung 74 PT Mehraufwand bis 360 PT Test 395 PT Minderaufwand 41 – 119 PT Fehlerbehebung +7 bis -253% 30 ► www.e-movimento.com, Sebastian Dietrich
  • 31. Weniger Entstehungskosten durch techn. Qualität? Studien  Reviews und Inspections alleine reduzieren die Softwareentstehungskosten / Dauer um bis zu 30% [Jones 00]  Code-Inspections führen zu einer Aufwandsreduktion von bis zu 25% [Fagan 86]  Fehlerbehebungsaufwände machen bis zu 90% der Entwicklungsaufwände aus [Jones 00]  Focus auf technische Qualität bringt ein 2- bis 4-fache Steigerung der Entwicklungsproduktivität (bei schlechten Teams bis 10-fach) [Anderson 10]  Bei AT&T führten Reviews zu einer 10-fachen Verbesserung der Qualität und 14% höheren Produktivität. [Humphrey 89]  IBM berichtet, dass jede Stunde Inspections 20 Stunden Test spart [Holland 99] 31 ► www.e-movimento.com, Sebastian Dietrich
  • 32. Weniger Entstehungskosten durch techn. Qualität? Erkenntnis: Ziel: Höhere technische Qualität 10%-105% Maßnahmen: (automatisierte) Reviews & Qualitätsverbesserungen Entwicklungskosten 50%-170% Höhere technische Qualität Höhere Produktivität In der Softwareentwicklung +7% bis -253% Ergebnis: Mehr/Weniger Entstehungskosten Weniger Bugs (nach Entwicklung) ca.10% Weniger Testaufwand 32 36%-85% Weniger Bugfixingaufwand 46% 95% ► www.e-movimento.com, Sebastian Dietrich
  • 33. Technische Qualität in der Softwareentwicklung Kosten – Nutzen Rechnung Kosten 1. 2. 3. 4. 33 Nutzen Höhere Produktivität  Weniger Bugs  Weniger Entstehungskosten Deutlich geringere Gesamtkosten? ► www.e-movimento.com, Sebastian Dietrich
  • 34. Deutlich geringere Gesamtkosten durch techn. QS? Überlegung  Ziele der Technischen Qualität:  Erfüllung nicht-funktionaler Anforderungen wie Konformität, Verständlichkeit, Analysierbarkeit, Modifizierbarkeit, Wartbarkeit, Anpassbarkeit, Prüfbarkeit (ISO/IEC 9126)  Aufgaben während der Wartung:  Code verstehen, analysieren, modifizieren, anpassen, überprüfen   Technische Qualität reduziert insbesondere Wartungsaufwände  Wartungskosten:  Traditionell der größte Teil des Software Lebenszyklus  Steigt stetig (70er Jahre 35%-60%, 2000er Jahre 80%90%) ([Macario et al. 03], [M.M. Lehman 80]) 34 ► www.e-movimento.com, Sebastian Dietrich
  • 35. Deutlich geringere Gesamtkosten durch techn. QS? Hypothese Ziel: Maßnahmen: Höhere technische Qualität (automatisierte) Reviews & Qualitätsverbesserungen Entwicklungskosten Höhere Produktivität In der Softwareentwicklung Höhere technische Qualität Weniger Wartungsaufwand Ergebnis: Weniger Bugs (nach Entwicklung) Weniger Testaufwand 35 Deutlich geringere Gesamtkosten Weniger Bugfixingaufwand ► www.e-movimento.com, Sebastian Dietrich
  • 36. Höhere Wartbarkeit Studien  Alleine der Einsatz von Komplexitätsmetriken und die Verbesserung der damit aufgezeigten Codeteile führen zu ca. 20 % höherer Produktivität in der Softwarewartung. [Jones 00]  HPs Programm zur Verbesserung der technischen Qualität brachte ein ROI von 10 : 1. HP ersparte sich damit geschätzte $21.4 Millionen pro Jahr. [Grady 94]  Reviews von 2.5 Mio LOC (real-time-code bei Bell) reduzierte den Wartungsaufwand im Schnitt um 33 Stunden je gefundenem Defect [Russell 91]  IBM berichtet, dass jede Stunde für Reviews im Schnitt 82 Stunden Wartungsaufwand reduziert [Holland 99]  Bei Imperial Chemical Industries wurden ca. 400 gereviewte Programme mit anderen ca. 400 nicht gereviewten Programmen verglichen. Qualitätsverbesserte Programme kosten in der Wartung nur 1/10tel von Programme ohne Qualitätsoptimierungen [Gilb 93] 36 ► www.e-movimento.com, Sebastian Dietrich
  • 37. Deutlich geringere Gesamtkosten durch techn. QS? Software wartung Software Software test entwicklung Kosten - Nutzenrechnung 19% geringere bis 245% höhere Produktivität 10% höhere Produktivität 20% - 1000% höhere Produktivität  Typisches Softwareentwicklungsprojekt (66% Wartung): 500PT Entwicklung, 400 Test, 100 Fehlerbehebung, 2000 Wartung  204 – 595 PT Entwicklung 360 PT Test 326 – 2195 PT Minderaufwand 41 – 119 PT Fehlerbehebung 11% – 73% Minderaufwand 200 – 1600 PT Wartung 37 ► www.e-movimento.com, Sebastian Dietrich
  • 38. Deutlich geringere Gesamtkosten durch techn. QS? Erkenntnis: Ziel: Maßnahmen: Höhere technische Qualität Entwicklungskosten (automatisierte) Reviews & Qualitätsverbesserungen Höhere technische Qualität 50%-170% Höhere Produktivität In der Softwareentwicklung min. 20% Weniger Wartungsaufwand Ergebnis: Weniger Bugs (nach Entwicklung) ca.10% Weniger Testaufwand 38 10%-105% 11%-73% Deutlich geringere Gesamtkosten 36%-85% Weniger Bugfixingaufwand 46% 95% ► www.e-movimento.com, Sebastian Dietrich
  • 39. Technische Qualität in der Softwareentwicklung Kosten – Nutzen Rechnung: Fazit Kosten Gratis Amortisiert sich bereits während der Entwicklung Nutzen Flexibel für Änderungen Deutlich weniger Bugs (min. 40% weniger) Schnellere Fertigstellung (bis zu 250% schneller) Geringere Wartungskosten (min 20% geringer) Geringere Gesamtkosten (min 11% geringer) Glückliche Entwickler Glückliche Endkunden 39 ► www.e-movimento.com, Sebastian Dietrich
  • 40. Technische Qualität in der Softwareentwicklung Kosten – Nutzen Rechnung: Fazit 40 ► www.e-movimento.com, Sebastian Dietrich
  • 41. Technische Qualität in der Softwareentwicklung Literatur  Wikipedia:  Codequalität @ Wikipedia: https://de.wikipedia.org/wiki/Codequalität  Code-Smells@ Wikipedia: https://de.wikipedia.org/wiki/Smell_(Programmierung)  Programmierungs Anti-Pattern @ Wikipedia: https://de.wikipedia.org/wiki/Anti-Pattern#Programmierungs-Anti-Pattern  Literatur:      The Clean Coder @ Amazon: http://bit.ly/cleancoder Clean Code @ Amazon: http://bit.ly/cleancodecmartin Refactoring @ Amazon: http://bit.ly/refactoring_fowler Code Complete @ Amazon: http://bit.ly/codecomplete The Pragmatic Programmer @ Amazon: http://bit.ly/pragmaticprogrammer  Limbo mit Softwarequalität: http://managingjava.blogspot.co.at/2012/05/limbo-mit-softwarequalitat.html 41 ► www.e-movimento.com, Sebastian Dietrich
  • 42. Technische Qualität in der Softwareentwicklung Referenzierte Studien  [Ireland 95] – Blake Ireland, Ed Wojtaszek, Dan Nash, Ray Dion, Tom Haley: „Raytheon Electronic Systems Experience in Software Process Improvement“, Software Engineering Institute, November 1995, CMU/SEI-95TR-017  [Petermair 08] - Patrick Petermair: „Auswirkung von Codequalität auf die Produktivität in Softwareprojekten“ – FH Campus Wien 2008/09  [Jones 02] – Capers Jones 2002: http://www.cs.nyu.edu/artg/Producing_Production_Quality_Software/Fall2005 /lectures/SOFTWARE_QUALITY_IN_2002_CAPERS_JONES.pdf ~ 12.000 Projekte, 600 Unternehmen, 24 Länder  [Fagan 76] M.E. Fagan (1976). "Design and Code inspections to reduce errors in program development". IBM Systems Journal 15 (3): pp. 182–211.  [Brown 99]: Brown, Norm. "High-Leverage Best Practices: What Hot Companies Are Doing to Stay Ahead," Cutter IT Journal, Vol. 12, No. 9 (September 1999), pp. 4-9.  [Russell 91]: Russell, Glen W. "Experience with Inspection in Ultralarge-Scale Developments," IEEE Software, Vol. 8, No. 1 (January 1991), pp. 25-31. 42 ► www.e-movimento.com, Sebastian Dietrich
  • 43. Technische Qualität in der Softwareentwicklung Referenzierte Studien cont.  [Jones 00]: Capers Jones: Software Assessments, Benchmarks, and Best Practices. Addison-Wesley, 11. Mai 2000, ISBN 978-0201485424  [Jones 96] Applied Software Measurement, Capers Jones, 1996  [Jones 86] Programming Productivity, Capers Jones, 1986  [Jones 96] Software Defect-Removal Efficiency, Capers Jones, 1996  [Shull 02] What We Have Learned About Fighting Defects, Shull et al 2002  [McConnell 04] Code Complete, Steve McConnell 2004  [Gilb 93] Tom Gilb, Dorothy Graham, Susannah Finzi „Software Inspection“, Addison-Wesley: Trevor Reeve, Case Study Chapter  [Humphrey 89]: Watts S. Humphrey: Managing the software process, Addison-Wesley 1989, ISBN:0-201-18095-2  [Anderson 10]: David J. Anderson: Kanban. Blue Hole Press, 2000, ISBN 978-0-984521401  [Holland 99]: Holland, Dick. "Document Inspection as an Agent of Change," Software Quality Professional, Vol. 2, No. 1 (December 1999), pp. 22-33. 43 ► www.e-movimento.com, Sebastian Dietrich
  • 44. Vielen Dank für Ihre Aufmerksamkeit! QA & [Sebastian Dietrich] Sebastian.Dietrich@e-movimento.com http://managing-java.blogspot.com 44 ► www.e-movimento.com, Sebastian Dietrich