Thementag 25.11.2014, Technische Schulden 
1| 56 
Projekte. Beratung. Spezialisten. 
Technische SchuldenRisiko und Chance für mehr Softwarequalität 
IKS-Thementag 
25.11.2014 
Autor:Dr. Reik Oberrath
Thementag 25.11.2014, Technische Schulden 
2| 56 
Definition 1 
„Technische Schuld oder Technische Schulden (engl. technicaldebt) ist eine in der Informatik gebräuchliche Metapher für die möglichen Konsequenzen schlechter technischer Umsetzung von Software… 
Der Begriff … wird von Informatikern … verwendet, um Managern … klarzumachen, dass die Hintanstellung von Maßnahmen zur Sicherung … technischer Qualität die Softwareentwicklung … verlangsamt…“ 
http://de.wikipedia.org/wiki/Technische_Schuld 
“Shipping first time code is like going into debt. A little debt speeds development so long as it is paid back…” 
Ward Cunningham: The WyCashPortfolio Management System. 
In: OOPSLA '92 Experience Report. 26. März 1992 
first time code is like going into debt. A little debt speeds development so long as it is paid back… Every minute spent on not-quite-right code counts as interest on that debt.” 
debt. Entire engineering organizations can be brought to a stand-still under the debt load…” 
Begrüßung | Einleitung| Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
Auf der Baustelle arbeiten 
Schick machen 
Refactoring 
First Time Code 
Not-Quite-RightCode 
Auf der Baustelle arbeiten 
Clean Code
Ward Cunningham: 
“A little debt speeds development..” 
Altlasten als langfristige Kostentreiber 
Zeit 
Summe 
realisierter 
Feature 
Amortisierungsgrenze 
Mit Refactoring 
Mit Technischen Schulden 
Nach http://martinfowler.com/bliki/DesignStaminaHypothesis.html 
Ward Cunningham: 
“…stand-still under the debt load…” 
Verlorene 
Ressourcen
Thementag 25.11.2014, Technische Schulden 
5| 56 
Grundidee 
“Shipping first time code” Schulden 
“It is paid back”Tilgung 
“Every minute spent on not-quite-right code” Zinsen 
“Stand-still under the debt load”… Bankrott 
Bildnachweis: 
http://www.wissen.de/redewendung/ein-klotz-am-bein-sein-2013-05-17 
500 Mrd$ * 
* Vom Marktforschungsunternehmen Gartner geschätzt für aktuellen den globalen IT-Altlastenberg 
siehe http://www.datacenter-insider.de/software-on-premise/anwendungen/articles/459751/index3.html 
** Vom Wirtschaftsprüfungsunternehmen Deloittegeschätzt für Sourcecode-Fehlersuche in 2012
Thementag 25.11.2014, Technische Schulden 
6| 56 
Strategisches Design 
1. Niedrige Zinsen nutzen 
2. Aktuelle Marktvorteile nutzen 
Begrüßung | Einleitung| Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 7 | 56 
Grenzen der Metapher 
Schuldenfreie Softwareentwicklung gibt es nicht 
Bei wem macht man Technische Schulden? Wer ist die Bank? 
Technische Schulden erlöschen nach dem Betrieb der Software 
Technische Schulden werden nicht in vielen kleinen verbindlichen Raten 
zurückgezahlt 
Viele Technische Schulden entstehen unbewusst, echte Schulden aber i.d.R. 
halbbewusst oder ganz bewusst 
Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder 
Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 
8| 56 
Definition 2 
B) Technische Schuld im weiteren Sinneist die Summe aller Defizite einer Software, also alles, was dem Clean-Code-Gedanken widerspricht. 
Siehehttp://www.clean-code-developer.de/ http://www.clean-coding-cosmos.de/ 
A) Technische Schuld im engeren Sinneist die Summe aller Defizite einer Software, für die sich die Akteure bewusst (oder wenigstens halbbewusst) entschieden haben. 
Siehe 
https://sites.google.com/site/unclebobconsultingllc/a-mess-is-not-a-technical-debt 
Begrüßung | Einleitung| Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 9 | 56 
Einleitung 
Kategorien von Technischen Schulden 
Best-Practices im Umgang mit Technischen Schulden 
Tilgen oder Zinsen zahlen? 
Technische Schulden im größeren Kontext 
Zusammenfassung 
Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder 
Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 
10| 56 
Kategorien von Technischen Schulden 
1.Bewusstseinsarten (Motivation, Einstellung) 
2.Strategiesorten (Ziele, Planung) 
3.Erscheinungsformen (Aussehen, Vorkommen) 
4.Buchhaltungstypen (Schuldenverwaltung, verantwortliche Rollen) 
Begrüßung | Einleitung | Mögliche Kategorisierungen| Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 
11| 56 
Bewusstseinsarten (Motivation, Einstellung) 
Konsequenzen und Gegenmaßnahmen 
bewusst? 
Nein 
Ja 
Schulden bewusst? 
Nein 
Ja 
„Was ist das Problem?“ 
Erst im Nachhinein: 
„Ach so, wenn wir das vorher gewusst hätten, hätten wir die Chance gehabt, das sauber zu erledigen.“ 
Nachhttp://martinfowler.com/bliki/TechnicalDebtQuadrant.html 
„Wir verzichten auf die saubere Lösung. Die entstehenden Probleme sind bekannt und werden beherrscht.Wir müssen jetzt liefern.“ 
„Ok, sauber geht anders, aber über eine saubere Lösung machen wir uns jetzt keine Gedanken. Wir müssen jetzt liefern.“
Thementag 25.11.2014, Technische Schulden 
12| 56 
Bewusstseinsarten (Motivation, Einstellung) 
http://martinfowler.com/bliki/TechnicalDebtQuadrant.html 
Sorglos 
Bedacht 
Unachtsam 
Umsichtig 
Kurzsichtig 
Bewusst 
Unbewusst 
Weitsichtig 
Begrüßung | Einleitung | Mögliche Kategorisierungen| Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 
13| 56 
Kategorien von Technischen Schulden 
1.Bewusstseinsarten (Motivation, Einstellung) 
2.Strategiesorten (Ziele, Planung) 
3.Erscheinungsformen (Aussehen, Vorkommen) 
4.Buchhaltungstypen (Schuldenverwaltung, verantwortliche Rollen) 
Begrüßung | Einleitung | Mögliche Kategorisierungen| Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 
14| 56 
Strategiesorten (Ziele, Planung) 
Nach 
http://www.construx.com/10x_Software_Development/Technical_Debt/ 
Taktische Kurzzeit-Schulden 
Bewusste Schulden 
Strategische Langzeit-Schulden 
Unbewusste Schulden 
Viele kleine Defizite 
Ein großes Defizit 
Begrüßung | Einleitung | Mögliche Kategorisierungen| Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 
15| 56 
Strategiesorten (Ziele, Planung) 
Langzeit-Schulden 
Kurzzeit-Schulden 
Grobgranular 
Feingranular 
„Wir realisieren kein ContinuousDeliverysolange der Kunde mit der Auslieferungsdauer zufrieden ist“ 
„Wir testen jetzt noch un- regelmäßig und erkennen viele Fehler zu spät. Ab der über- nächsten Auslieferung nutzen wir ContinuousIntegration.“ 
„Solange wir keine größeren Probleme mit der alten Technologie bekommen, stellen wir unsere Komponenten nicht um.“ 
„Unser Sourcecode-Analysetool (Sonar) meldet über 100 Probleme in unseren Sourcen. Nach der übernächsten Auslieferung müssen die behoben werden.“ 
Begrüßung | Einleitung | Mögliche Kategorisierungen| Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 
16| 56 
Kategorien von Technischen Schulden 
1.Bewusstseinsarten (Motivation, Einstellung) 
2.Strategiesorten (Ziele, Planung) 
3.Erscheinungsformen (Aussehen, Vorkommen) 
4.Buchhaltungstypen (Schuldenverwaltung, verantwortliche Rollen) 
Begrüßung | Einleitung | Mögliche Kategorisierungen| Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 
17| 56 
Erscheinungsformen (Aussehen, Vorkommen) 
Persönliche 
Schulden 
Organisatorische 
Schulden 
Prozess-bezogene 
Schulden
Thementag 25.11.2014, Technische Schulden 
18| 56 
Persönliche Schulden 
z. B. mangelnde Motivation der Akteure Neues zu lernen, auszuprobieren und sich an Neues anzupassen 
Organisatorische Schulden 
z. B. veraltete hierarchische Organisationsstrukturen (Gesetz von Conway) 
Prozess-bezogenen Schulden 
z. B. Anwendung von veralteten Vorgehensmodellen 
Mehr Informationen dazu unter http://clean-coding-cosmos.de/techdebts-4 
Begrüßung | Einleitung | Mögliche Kategorisierungen| Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 
19| 56 
Erscheinungsformen (Aussehen, Vorkommen) 
Persönliche 
Schulden 
Organisatorische 
Schulden 
Prozess-bezogene 
Schulden 
Werkzeug-bezogene 
Schulden 
Test-bezogene 
Schulden 
Praktische 
Schulden 
Automations-bezogene 
Schulden
Thementag 25.11.2014, Technische Schulden 
20| 56 
Praktische Schulden 
z. B. nicht aus gemachten Fehlern lernen 
Werkzeug-bezogene Schulden 
z. B. zu großer Wildwuchs an eingesetzten Werkzeugen 
Automations-bezogene Schulden 
z. B. keine automatische Testausführung (ContinuousIntegration) 
Test-bezogene Schulden 
z. B. unzureichende Testabdeckung der implementierten Funktionalität 
Mehr Informationen dazu unter http://clean-coding-cosmos.de/techdebts-4
Thementag 25.11.2014, Technische Schulden 
21| 56 
Erscheinungsformen (Aussehen, Vorkommen) 
Persönliche 
Schulden 
Organisatorische 
Schulden 
Prozess-bezogene 
Schulden 
Werkzeug-bezogene 
Schulden 
Test-bezogene 
Schulden 
Praktische 
Schulden 
Automations-bezogene 
Schulden 
Betriebs-bezogene 
Schulden 
AM-bezogene 
Schulden 
Fachseite- 
bezogene 
Schulden 
Kommunikations- 
schulden
Thementag 25.11.2014, Technische Schulden 
22| 56 
Kommunikationsschulden 
Unzureichende Kommunikation und Zusammenarbeit zwischen den Akteuren (vor allem zwischen Akteuren verschiedener Phasen im ALM) 
ApplicationLifecycleManagement 
Anforderungs- 
analyst 
Domänen- 
Experte 
Architekt / 
Entwickler 
Administrator 
Kundenakzeptanz- 
tester 
Begrüßung | Einleitung | Mögliche Kategorisierungen| Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 
23| 56 
Erscheinungsformen (Aussehen, Vorkommen) 
Persönliche 
Schulden 
Organisatorische 
Schulden 
Prozess-bezogene 
Schulden 
Werkzeug-bezogene 
Schulden 
Test-bezogene 
Schulden 
Praktische 
Schulden 
Automations-bezogene 
Schulden 
Betriebs-bezogene 
Schulden 
AM-bezogene 
Schulden 
Fachseite- 
bezogene 
Schulden 
Kommunikations- 
schulden 
Implementierungs- 
schulden 
Architektur- 
schulden 
Produkt-bezogene 
Schulden 
Produktions-bezogene 
Schulden
Thementag 25.11.2014, Technische Schulden 
24| 56 
Produktions-bezogene Schulden 
z. B. mangelnde Analysierbarkeit (Logging, Protokollierung, Monitoring) 
Architekturschulden 
z. B. mangelnde Berücksichtigung nicht-funktionaler Qualitätskriterien 
Implementierungsschulden 
z. B. Code-Vervielfachungen 
Mehr Informationen dazu unter http://clean-coding-cosmos.de/techdebts-4 
Begrüßung | Einleitung | Mögliche Kategorisierungen| Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 
25| 56 
Erscheinungsformen (Aussehen, Vorkommen) 
Persönliche 
Schulden 
Organisatorische 
Schulden 
Prozess-bezogene 
Schulden 
Werkzeug-bezogene 
Schulden 
Test-bezogene 
Schulden 
Praktische 
Schulden 
Automations-bezogene 
Schulden 
Betriebs-bezogene 
Schulden 
AM-bezogene 
Schulden 
Fachseite- 
bezogene 
Schulden 
Kommunikations- 
schulden 
Implementierungs- 
schulden 
Architektur- 
schulden 
Produkt-bezogene 
Schulden 
Produktions-bezogene 
Schulden 
Hauptverantwortung beim Entwicklungsteam 
Verteilte Verantwortung
Thementag 25.11.2014, Technische Schulden 
26| 56 
Kategorien von Technischen Schulden 
1.Bewusstseinsarten (Motivation, Einstellung) 
2.Strategiesorten (Ziele, Planung) 
3.Erscheinungsformen (Aussehen, Vorkommen) 
4.Buchhaltungstypen (Schuldenverwaltung, verantwortliche Rollen) 
Begrüßung | Einleitung | Mögliche Kategorisierungen| Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 27 | 56 
Buchhaltungstypen (Schuldenverwaltung) 
Produkt-bezogene „Schuldenbücher“: 
Liste von TODOs und FIXMEs im SourceCode (Code-Tagging-System) 
Ergebnisse von Sourcecode-Analysetools (z. B. Sonar) 
Architekturdokumentation (Beschreibung von Schwächen und Risiken) 
Prozess-bezogene „Schuldenbücher“: 
„Projektdokumentation“ (Projekt-Handbuch, Retrospektive-Bericht) 
Dokumentation der „ALM-Architektur“ (Leitfaden für die 
Unternehmenskultur, Beschreibung der Konzernstruktur) 
Schuldenkonto: 
Issue Tracker (Jira, Bugzilla, …) 
Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder 
Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 
28| 56 
Buchhaltungstypen (verantwortliche Rollen) 
Typ 1: Projekt 
Typ 2: ALM 
Rahmenprozesse 
Hauptverantwortung bei Entwicklungsteam 
Verteilte Verantwortung 
Typ 1a: Produkt 
Typ 1b: Teamprozesse 
Projektmanager 
Scrum-Master 
Entwicklungsteam 
SW-Architekt 
Entwicklungsteam 
Techn. Projektleiter 
Produktmanager 
ProductOwner 
Gesamtent- wicklungsleiter 
Scrum-Master 
Projektmanager 
Produktmanager 
Begrüßung | Einleitung | Mögliche Kategorisierungen| Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 29 | 56 
Einleitung 
Kategorien von Technischen Schulden 
Best-Practices im Umgang mit Technischen Schulden 
Tilgen oder Zinsen zahlen? 
Technische Schulden im größeren Kontext 
Zusammenfassung 
Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder 
Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 
30| 56 
Best PractiseNo. 1 
Bekannte Probleme in einem IssueTrackerfesthalten! 
Am besten nach Strategiesorte, Erscheinungsform und Buchhaltungstyp getrennt! 
Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices| Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 
31| 56 
Best PractisesI 
Erscheinungs- form 
Buchh.- 
Typ 
Analyse 
Gegenmaßnahme 
Implemen- tierung 
1a 
Codereviews,Sourcecode- Analysetool (z.B. Sonar) 
-> Metriken 
Analysierte Probleme ausbauen, prophylaktisch: Clean Code Developer Prinzipien anwenden 
*http://clean-coding-cosmos.de/die-ccd-regeln 
Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices| Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 
32| 56 
Best PractisesI 
Erscheinungs- form 
Buchh.- 
Typ 
Analyse 
Gegenmaßnahme 
Implemen- tierung 
1a 
Codereviews,Sourcecode- Analysetool (z.B. Sonar) 
-> Metriken 
Analysierte Probleme ausbauen, prophylaktisch: Clean Code Developer Prinzipien anwenden 
Architektur 
1a 
Gute Architektur- Dokumentation (arc42) 
(http://www.arc42.de), 
ATAM 
Entworfene Architektursauber umsetzen, schlechte Architektur ändern (http://aim42.org) 
*http://clean-coding-cosmos.de/die-ccd-regeln 
Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices| Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 
33| 56 
Best PractisesI 
Erscheinungs- form 
Buchh.- 
Typ 
Analyse 
Gegenmaßnahme 
Implemen- tierung 
1a 
Codereviews,Sourcecode- Analysetool (z.B. Sonar) 
-> Metriken 
Analysierte Probleme ausbauen, prophylaktisch: Clean Code Developer Prinzipien anwenden 
Architektur 
1a 
Gute Architektur- Dokumentation (arc42) 
(http://www.arc42.de), 
ATAM 
Entworfene Architektursauber umsetzen, schlechte Architektur ändern (http://aim42.org) 
Persönliche 
Schulden 
alle 
Selbstreflexion 
Motivation fördern (Fortbildungen, Teamstimmung) 
*http://clean-coding-cosmos.de/die-ccd-regeln 
Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices| Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 
34| 56 
Best PractisesII 
Erscheinungs- form 
Buchh.- 
Typ 
Analyse 
Gegenmaßnahme 
Prozess- bezogene, organisa- torischeund Kommuni- kations- 
Schulden 
1b 
2 
2 
Kritische Betrachtungder Organisationsstruktur und des ApplicationLifecycleManagements (ALM) 
Arbeitsabläufe, Kommunikationswege, Teamzusammenstellung, 
Aufgabenverteilungen, … ändern 
Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices| Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 
35| 56 
Best PractisesII 
Erscheinungs- form 
Buchh.- 
Typ 
Analyse 
Gegenmaßnahme 
Prozess- bezogene, organisa- torischeund Kommuni- kations- 
Schulden 
1b 
2 
2 
Kritische Betrachtungder Organisationsstruktur und des ApplicationLifecycleManagements (ALM) 
Arbeitsabläufe, Kommunikationswege, Teamzusammenstellung, 
Aufgabenverteilungen, … ändern 
Praktische Schulden 
1b 
Selbstreflexion, Retrospektive-Meetings 
Prozesse verbessern, Fortbildung 
Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices| Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 
36| 56 
Best PractisesII 
Erscheinungs- form 
Buchh.- 
Typ 
Analyse 
Gegenmaßnahme 
Prozess- bezogene, organisa- torischeund Kommuni- kations- 
Schulden 
1b 
2 
2 
Kritische Betrachtungder Organisationsstruktur und des ApplicationLifecycleManagements (ALM) 
Arbeitsabläufe, Kommunikationswege, Teamzusammenstellung, 
Aufgabenverteilungen, … ändern 
Praktische Schulden 
1b 
Selbstreflexion, Retrospektive-Meetings 
Prozesse verbessern, Fortbildung 
Werkzeug- bezogene 
Schulden 
1b 
oder 
2 
Welche Tools haben wir, 
welche werden vermisst, 
und welche gibt es überhaupt noch? 
Toolsmit Lizenzen bei Bedarf zu Verfügung stellen 
Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices| Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 
37| 56 
Best PractisesIII 
Erscheinungs- form 
Buchh.- 
Typ 
Analyse 
Gegenmaßnahme 
Automations- bezogene 
Schulden 
1b 
Ist die Kompilierung, Packetierung, Qualitäts- sicherung,der Bau des Release Kanditdaten, das Deployment, die Installation automatisiert? 
ContinuousIntegration, 
ContinuousDelivery 
Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices| Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 
38| 56 
Best PractisesIII 
Erscheinungs- form 
Buchh.- 
Typ 
Analyse 
Gegenmaßnahme 
Automations- bezogene 
Schulden 
1b 
Ist die Kompilierung, Packetierung, Qualitäts- sicherung,der Bau des Release Kanditdaten, das Deployment, die Installation automatisiert? 
ContinuousIntegration, 
ContinuousDelivery 
Test-bezogene 
Schulden 
1b 
Wie sieht die Teststrategie aus? Welche Arten von Tests gibt es? Wie hoch ist die Testabdeckung? 
Vorgehensweisenwie z.B. TDD und BDD kultivieren, 
für Automation sorgen 
Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices| Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 
39| 56 
Best PractisesIII 
Erscheinungs- form 
Buchh.- 
Typ 
Analyse 
Gegenmaßnahme 
Automations- bezogene 
Schulden 
1b 
Ist die Kompilierung, Packetierung, Qualitäts- sicherung,der Bau des Release Kanditdaten, das Deployment, die Installation automatisiert? 
ContinuousIntegration, 
ContinuousDelivery 
Test-bezogene 
Schulden 
1b 
Wie sieht die Teststrategie aus? Welche Arten von Tests gibt es? Wie hoch ist die Testabdeckung? 
Vorgehensweisenwie z.B. TDD und BDD kultivieren, 
für Automation sorgen 
Betriebs-und 
Produktions- 
bezogene 
Schulden 
2 
1a 
Wie gut erfolgtdie Inbetrieb-nahme? Wie gut können Fehler in der Produktion analysiert werden? 
DevOps 
(Kommunikation fördern, gleiche Automationswege nutzen) 
Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices| Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 40 | 56 
Einleitung 
Kategorien von Technischen Schulden 
Best-Practices im Umgang mit Technischen Schulden 
Tilgen oder Zinsen zahlen? 
Technische Schulden im größeren Kontext 
Zusammenfassung 
Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder 
Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 
41| 56 
Tilgen oder Schulden zahlen? 
Ein Qualitätsmodell: 
oder 
- 
= 
Kosten- 
reduktion 
Produktivitäts- 
vorteil 
Aufwand für 
Qualitätsinvestitionen 
- 
= 
Kosten- 
reduktion 
Nicht-Sanierungs- 
kosten 
Sanierungs- 
kosten 
Nach 
„Qualitätsinvestitionen statt technischer Schulden“ 
im OBJEKTspektrumNr. 5 2014 
Release 1 
Release 2 
Release 3 
Release 4 
entweder so: 
oder so:
Thementag 25.11.2014, Technische Schulden 42 | 56 
Tilgen oder Schulden zahlen? 
Es geht um das „Mindset Qualitätsinvestitionen“ 
„… es geht … nicht um stundengenaues Schätzen von Aufwänden“ 
„Meistens“ reicht es, wenn „Kosten und Nutzen … mit einer 
Ordinalskala (gering < normal < hoch < sehr hoch) geschätzt 
werden“ 
„In vielen Situationen reichen drei Fragen aus, um die Maßnahmen 
… zu bestimmen:“ 
1. Welche Systemkomponenten werden oft geändert und wie ist 
deren innere Qualität (i. Q.)? 
2. Welche Maßnahmen zur Verbesserung der i. Q. bestehen …? 
3. Welcher Nutzen steht diesen Investitionen … gegenüber? 
Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder 
Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 
43| 56 
Tilgen oder Schulden zahlen? 
Schuldenberge bestaunen hilft alleine nicht weiter! 
Deshalb die Empfehlung: 
1.Technische Schulden bewusst machen und festhalten 
2.Entscheiden mit welchen Qualitätsinvestitionen der größte Mehrwert erzielt werden kann und Ressourcen zur Realisierung bereitstellen 
3. Umsetzung veranlassen und Ergebnisse von den Verantwortlichen einfordern 
Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen?| Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 
44| 56 
Tilgungspläne 
Release 1 
Release 2 
Release 3 
Release 4 
Keine Tilgung 
Tilgungsplan A 
Tilgungsplan B 
+ einfaches Regressions- 
testen 
-Kein funktioneller 
Fortschritt 
+ kontinuierliche Verbesserung 
der inneren Qualität 
-Gefahr als Puffer für 
funktionale Änderungen 
zu dienen 
Legende 
Zinsen zahlen 
Neue funktionale Änderungen 
Schulden tilgen 
Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen?| Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 45 | 56 
Einleitung 
Kategorien von Technischen Schulden 
Best-Practices im Umgang mit Technischen Schulden 
Tilgen oder Zinsen zahlen? 
Technische Schulden im größeren Kontext 
Zusammenfassung 
Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder 
Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 
46| 56 
Rahmenbedingungen 
Technische 
Schulden 
Zeitdruck 
Fehlendes Wissen 
Mangelnde Kommunikation 
Technologischer Fortschritt 
Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext| Schlussteil
Thementag 25.11.2014, Technische Schulden 
47| 56 
Langfristig denken 
ERROR
Thementag 25.11.2014, Technische Schulden 
48| 56 
Langfristiges Risiko ignorieren 
Hauptsache mein Projekt läuft gut. 
Projekt-Manager 
Deliverin time! 
Keep tothebudget! 
Ob Schrott entsteht, ist egal. 
Assureinternalquality! 
Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext| Schlussteil
Thementag 25.11.2014, Technische Schulden 
49| 56 
Wer ist hier der Boss? 
Produktmanager 
Projektmanager 
Chance! 
Risiko! 
Kurzfristig gut! 
Langfristig schlecht! 
Time und Budget! 
Innere 
Qualität! 
Technische 
Schulden? 
Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext| Schlussteil
Thementag 25.11.2014, Technische Schulden 
50| 56 
Architektur 
Design 
Technologie 
Code 
Architektur 
Design 
Technologie 
Code 
Funktionalität 
Testbarkeit 
Wartbarkeit 
Usability 
Zuverlässigkeit 
Modifizierbarkeit 
Performanz 
Sicherheit 
Quelle : http://www.dadalos-d.org/frieden/images/eisberg-modell.jpg 
Release- management 
Deployment 
Ressourceneffizienz 
Kompatibilität 
Portabilität 
Äußere Qualität 
Innere 
Qualität
Thementag 25.11.2014, Technische Schulden 
51| 56 
Technische Schulden kurzfristig zurückzahlen 
Zeit 
Variante 2 
(Verdeckter Kredit) 
Variante 1 
(Sichtbarer Kredit) 
Release 1 
Release 2
Thementag 25.11.2014, Technische Schulden 
52| 56 
Komplexität 
in der Software 
Effizienz in der 
Softwareentwicklung 
Technische Schulden i.w.S. 
Best Practises 
MittelfristigeKosten: 
“…not-quite-right code counts as interest…” 
LangfristigesRisiko: 
“…can be brought to a stand-still under the debt load…” 
KurzfristigeChance: 
“A little debt speeds development..” 
Zeitgewinn 
Komplexität beherrschen 
Zitatevon 
Ward Cunningham 
1992 
Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext| Schlussteil
Thementag 25.11.2014, Technische Schulden 53 | 56 
Einleitung 
Kategorien von Technischen Schulden 
Best-Practices im Umgang mit Technischen Schulden 
Tilgen oder Zinsen zahlen? 
Technische Schulden im größeren Kontext 
Zusammenfassung 
Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder 
Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 54 | 56 
Zusammenfassung 
Die Metapher „Technische Schulden“ ist und bleibt trotz ihrer Grenzen gut 
Sie ist hilfreich das Problem „schlechter technischer Umsetzung“ zu 
veranschaulichen und zu kommunizieren 
Es gibt Schulden am Produkt, am Teamprozess und am ALM, für die 
unterschiedliche Rollen verantwortlich sind 
Es gibt unbewusste, halbbewusste und bewusste Schulden 
Bewusste Schulden können gezielt verwaltet werden 
Unbewusste und halbbewusste Schulden bringen ein unbekanntes oder 
schwer abschätzbares Risiko mit sich 
Manche Technische Schulden stellen eine große reale Gefahr für Projekte 
und noch mehr für Produkte dar 
Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder 
Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 55 | 56 
Fazit 
Schulden-Management: 
Schulden bewusst machen und festhalten (Issue Tracker) 
Mit gezielten Qualitätsinvestitionen risikoreiche Schulden abbauen 
Schulden-Prophylaxe: 
Langfristig denken und Schulden vermeiden (nur Notfall-Option) 
Projektmanager auf messbare innere Qualität verpflichten 
Doppelt und dreifach prüfen, ob ein möglicher Nutzen mögliche Risiken 
den verschiedenen Stakeholdern (Produktmanager) wert sind 
Knowhow der Mitarbeiter und Technologien in der Software nicht zu sehr 
veralten lassen 
Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder 
Schulden zahlen? | Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 56 | 56 
Weiterführende Literatur 
http://martinfowler.com/bliki/TechnicalDebtQuadrant.html 
http://www.clean-code-developer.de 
http://www.clean-coding-cosmos.de 
https://sites.google.com/site/unclebobconsultingllc/a-mess-is-not-a-technical-debt 
http://www.construx.com/10x_Software_Development/Technical_Debt/ 
http://de.slideshare.net/jeffsch/beyond-technical-debt 
http://martinfowler.com/bliki/DesignStaminaHypothesis.html 
http://www.datacenter-insider.de/software-on-premise/ 
anwendungen/articles/459751/index3.html 
http://jaxenter.de/artikel/Umgang-mit-technischen-Schulden-166985 
http://clean-coding-cosmos.de/techdebts-1 
Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder 
Schulden zahlen? | Im größeren Kontext | Schlussteil
Fragen
WWW.IKS-GMBH.COM
Thementag 25.11.2014, Technische Schulden 
59| 56 
Projekte. Beratung. Spezialisten.

Mehr Softwarequalität: Technische Schulden

  • 1.
    Thementag 25.11.2014, TechnischeSchulden 1| 56 Projekte. Beratung. Spezialisten. Technische SchuldenRisiko und Chance für mehr Softwarequalität IKS-Thementag 25.11.2014 Autor:Dr. Reik Oberrath
  • 2.
    Thementag 25.11.2014, TechnischeSchulden 2| 56 Definition 1 „Technische Schuld oder Technische Schulden (engl. technicaldebt) ist eine in der Informatik gebräuchliche Metapher für die möglichen Konsequenzen schlechter technischer Umsetzung von Software… Der Begriff … wird von Informatikern … verwendet, um Managern … klarzumachen, dass die Hintanstellung von Maßnahmen zur Sicherung … technischer Qualität die Softwareentwicklung … verlangsamt…“ http://de.wikipedia.org/wiki/Technische_Schuld “Shipping first time code is like going into debt. A little debt speeds development so long as it is paid back…” Ward Cunningham: The WyCashPortfolio Management System. In: OOPSLA '92 Experience Report. 26. März 1992 first time code is like going into debt. A little debt speeds development so long as it is paid back… Every minute spent on not-quite-right code counts as interest on that debt.” debt. Entire engineering organizations can be brought to a stand-still under the debt load…” Begrüßung | Einleitung| Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 3.
    Auf der Baustellearbeiten Schick machen Refactoring First Time Code Not-Quite-RightCode Auf der Baustelle arbeiten Clean Code
  • 4.
    Ward Cunningham: “Alittle debt speeds development..” Altlasten als langfristige Kostentreiber Zeit Summe realisierter Feature Amortisierungsgrenze Mit Refactoring Mit Technischen Schulden Nach http://martinfowler.com/bliki/DesignStaminaHypothesis.html Ward Cunningham: “…stand-still under the debt load…” Verlorene Ressourcen
  • 5.
    Thementag 25.11.2014, TechnischeSchulden 5| 56 Grundidee “Shipping first time code” Schulden “It is paid back”Tilgung “Every minute spent on not-quite-right code” Zinsen “Stand-still under the debt load”… Bankrott Bildnachweis: http://www.wissen.de/redewendung/ein-klotz-am-bein-sein-2013-05-17 500 Mrd$ * * Vom Marktforschungsunternehmen Gartner geschätzt für aktuellen den globalen IT-Altlastenberg siehe http://www.datacenter-insider.de/software-on-premise/anwendungen/articles/459751/index3.html ** Vom Wirtschaftsprüfungsunternehmen Deloittegeschätzt für Sourcecode-Fehlersuche in 2012
  • 6.
    Thementag 25.11.2014, TechnischeSchulden 6| 56 Strategisches Design 1. Niedrige Zinsen nutzen 2. Aktuelle Marktvorteile nutzen Begrüßung | Einleitung| Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 7.
    Thementag 25.11.2014, TechnischeSchulden 7 | 56 Grenzen der Metapher Schuldenfreie Softwareentwicklung gibt es nicht Bei wem macht man Technische Schulden? Wer ist die Bank? Technische Schulden erlöschen nach dem Betrieb der Software Technische Schulden werden nicht in vielen kleinen verbindlichen Raten zurückgezahlt Viele Technische Schulden entstehen unbewusst, echte Schulden aber i.d.R. halbbewusst oder ganz bewusst Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 8.
    Thementag 25.11.2014, TechnischeSchulden 8| 56 Definition 2 B) Technische Schuld im weiteren Sinneist die Summe aller Defizite einer Software, also alles, was dem Clean-Code-Gedanken widerspricht. Siehehttp://www.clean-code-developer.de/ http://www.clean-coding-cosmos.de/ A) Technische Schuld im engeren Sinneist die Summe aller Defizite einer Software, für die sich die Akteure bewusst (oder wenigstens halbbewusst) entschieden haben. Siehe https://sites.google.com/site/unclebobconsultingllc/a-mess-is-not-a-technical-debt Begrüßung | Einleitung| Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 9.
    Thementag 25.11.2014, TechnischeSchulden 9 | 56 Einleitung Kategorien von Technischen Schulden Best-Practices im Umgang mit Technischen Schulden Tilgen oder Zinsen zahlen? Technische Schulden im größeren Kontext Zusammenfassung Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 10.
    Thementag 25.11.2014, TechnischeSchulden 10| 56 Kategorien von Technischen Schulden 1.Bewusstseinsarten (Motivation, Einstellung) 2.Strategiesorten (Ziele, Planung) 3.Erscheinungsformen (Aussehen, Vorkommen) 4.Buchhaltungstypen (Schuldenverwaltung, verantwortliche Rollen) Begrüßung | Einleitung | Mögliche Kategorisierungen| Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 11.
    Thementag 25.11.2014, TechnischeSchulden 11| 56 Bewusstseinsarten (Motivation, Einstellung) Konsequenzen und Gegenmaßnahmen bewusst? Nein Ja Schulden bewusst? Nein Ja „Was ist das Problem?“ Erst im Nachhinein: „Ach so, wenn wir das vorher gewusst hätten, hätten wir die Chance gehabt, das sauber zu erledigen.“ Nachhttp://martinfowler.com/bliki/TechnicalDebtQuadrant.html „Wir verzichten auf die saubere Lösung. Die entstehenden Probleme sind bekannt und werden beherrscht.Wir müssen jetzt liefern.“ „Ok, sauber geht anders, aber über eine saubere Lösung machen wir uns jetzt keine Gedanken. Wir müssen jetzt liefern.“
  • 12.
    Thementag 25.11.2014, TechnischeSchulden 12| 56 Bewusstseinsarten (Motivation, Einstellung) http://martinfowler.com/bliki/TechnicalDebtQuadrant.html Sorglos Bedacht Unachtsam Umsichtig Kurzsichtig Bewusst Unbewusst Weitsichtig Begrüßung | Einleitung | Mögliche Kategorisierungen| Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 13.
    Thementag 25.11.2014, TechnischeSchulden 13| 56 Kategorien von Technischen Schulden 1.Bewusstseinsarten (Motivation, Einstellung) 2.Strategiesorten (Ziele, Planung) 3.Erscheinungsformen (Aussehen, Vorkommen) 4.Buchhaltungstypen (Schuldenverwaltung, verantwortliche Rollen) Begrüßung | Einleitung | Mögliche Kategorisierungen| Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 14.
    Thementag 25.11.2014, TechnischeSchulden 14| 56 Strategiesorten (Ziele, Planung) Nach http://www.construx.com/10x_Software_Development/Technical_Debt/ Taktische Kurzzeit-Schulden Bewusste Schulden Strategische Langzeit-Schulden Unbewusste Schulden Viele kleine Defizite Ein großes Defizit Begrüßung | Einleitung | Mögliche Kategorisierungen| Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 15.
    Thementag 25.11.2014, TechnischeSchulden 15| 56 Strategiesorten (Ziele, Planung) Langzeit-Schulden Kurzzeit-Schulden Grobgranular Feingranular „Wir realisieren kein ContinuousDeliverysolange der Kunde mit der Auslieferungsdauer zufrieden ist“ „Wir testen jetzt noch un- regelmäßig und erkennen viele Fehler zu spät. Ab der über- nächsten Auslieferung nutzen wir ContinuousIntegration.“ „Solange wir keine größeren Probleme mit der alten Technologie bekommen, stellen wir unsere Komponenten nicht um.“ „Unser Sourcecode-Analysetool (Sonar) meldet über 100 Probleme in unseren Sourcen. Nach der übernächsten Auslieferung müssen die behoben werden.“ Begrüßung | Einleitung | Mögliche Kategorisierungen| Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 16.
    Thementag 25.11.2014, TechnischeSchulden 16| 56 Kategorien von Technischen Schulden 1.Bewusstseinsarten (Motivation, Einstellung) 2.Strategiesorten (Ziele, Planung) 3.Erscheinungsformen (Aussehen, Vorkommen) 4.Buchhaltungstypen (Schuldenverwaltung, verantwortliche Rollen) Begrüßung | Einleitung | Mögliche Kategorisierungen| Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 17.
    Thementag 25.11.2014, TechnischeSchulden 17| 56 Erscheinungsformen (Aussehen, Vorkommen) Persönliche Schulden Organisatorische Schulden Prozess-bezogene Schulden
  • 18.
    Thementag 25.11.2014, TechnischeSchulden 18| 56 Persönliche Schulden z. B. mangelnde Motivation der Akteure Neues zu lernen, auszuprobieren und sich an Neues anzupassen Organisatorische Schulden z. B. veraltete hierarchische Organisationsstrukturen (Gesetz von Conway) Prozess-bezogenen Schulden z. B. Anwendung von veralteten Vorgehensmodellen Mehr Informationen dazu unter http://clean-coding-cosmos.de/techdebts-4 Begrüßung | Einleitung | Mögliche Kategorisierungen| Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 19.
    Thementag 25.11.2014, TechnischeSchulden 19| 56 Erscheinungsformen (Aussehen, Vorkommen) Persönliche Schulden Organisatorische Schulden Prozess-bezogene Schulden Werkzeug-bezogene Schulden Test-bezogene Schulden Praktische Schulden Automations-bezogene Schulden
  • 20.
    Thementag 25.11.2014, TechnischeSchulden 20| 56 Praktische Schulden z. B. nicht aus gemachten Fehlern lernen Werkzeug-bezogene Schulden z. B. zu großer Wildwuchs an eingesetzten Werkzeugen Automations-bezogene Schulden z. B. keine automatische Testausführung (ContinuousIntegration) Test-bezogene Schulden z. B. unzureichende Testabdeckung der implementierten Funktionalität Mehr Informationen dazu unter http://clean-coding-cosmos.de/techdebts-4
  • 21.
    Thementag 25.11.2014, TechnischeSchulden 21| 56 Erscheinungsformen (Aussehen, Vorkommen) Persönliche Schulden Organisatorische Schulden Prozess-bezogene Schulden Werkzeug-bezogene Schulden Test-bezogene Schulden Praktische Schulden Automations-bezogene Schulden Betriebs-bezogene Schulden AM-bezogene Schulden Fachseite- bezogene Schulden Kommunikations- schulden
  • 22.
    Thementag 25.11.2014, TechnischeSchulden 22| 56 Kommunikationsschulden Unzureichende Kommunikation und Zusammenarbeit zwischen den Akteuren (vor allem zwischen Akteuren verschiedener Phasen im ALM) ApplicationLifecycleManagement Anforderungs- analyst Domänen- Experte Architekt / Entwickler Administrator Kundenakzeptanz- tester Begrüßung | Einleitung | Mögliche Kategorisierungen| Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 23.
    Thementag 25.11.2014, TechnischeSchulden 23| 56 Erscheinungsformen (Aussehen, Vorkommen) Persönliche Schulden Organisatorische Schulden Prozess-bezogene Schulden Werkzeug-bezogene Schulden Test-bezogene Schulden Praktische Schulden Automations-bezogene Schulden Betriebs-bezogene Schulden AM-bezogene Schulden Fachseite- bezogene Schulden Kommunikations- schulden Implementierungs- schulden Architektur- schulden Produkt-bezogene Schulden Produktions-bezogene Schulden
  • 24.
    Thementag 25.11.2014, TechnischeSchulden 24| 56 Produktions-bezogene Schulden z. B. mangelnde Analysierbarkeit (Logging, Protokollierung, Monitoring) Architekturschulden z. B. mangelnde Berücksichtigung nicht-funktionaler Qualitätskriterien Implementierungsschulden z. B. Code-Vervielfachungen Mehr Informationen dazu unter http://clean-coding-cosmos.de/techdebts-4 Begrüßung | Einleitung | Mögliche Kategorisierungen| Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 25.
    Thementag 25.11.2014, TechnischeSchulden 25| 56 Erscheinungsformen (Aussehen, Vorkommen) Persönliche Schulden Organisatorische Schulden Prozess-bezogene Schulden Werkzeug-bezogene Schulden Test-bezogene Schulden Praktische Schulden Automations-bezogene Schulden Betriebs-bezogene Schulden AM-bezogene Schulden Fachseite- bezogene Schulden Kommunikations- schulden Implementierungs- schulden Architektur- schulden Produkt-bezogene Schulden Produktions-bezogene Schulden Hauptverantwortung beim Entwicklungsteam Verteilte Verantwortung
  • 26.
    Thementag 25.11.2014, TechnischeSchulden 26| 56 Kategorien von Technischen Schulden 1.Bewusstseinsarten (Motivation, Einstellung) 2.Strategiesorten (Ziele, Planung) 3.Erscheinungsformen (Aussehen, Vorkommen) 4.Buchhaltungstypen (Schuldenverwaltung, verantwortliche Rollen) Begrüßung | Einleitung | Mögliche Kategorisierungen| Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 27.
    Thementag 25.11.2014, TechnischeSchulden 27 | 56 Buchhaltungstypen (Schuldenverwaltung) Produkt-bezogene „Schuldenbücher“: Liste von TODOs und FIXMEs im SourceCode (Code-Tagging-System) Ergebnisse von Sourcecode-Analysetools (z. B. Sonar) Architekturdokumentation (Beschreibung von Schwächen und Risiken) Prozess-bezogene „Schuldenbücher“: „Projektdokumentation“ (Projekt-Handbuch, Retrospektive-Bericht) Dokumentation der „ALM-Architektur“ (Leitfaden für die Unternehmenskultur, Beschreibung der Konzernstruktur) Schuldenkonto: Issue Tracker (Jira, Bugzilla, …) Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 28.
    Thementag 25.11.2014, TechnischeSchulden 28| 56 Buchhaltungstypen (verantwortliche Rollen) Typ 1: Projekt Typ 2: ALM Rahmenprozesse Hauptverantwortung bei Entwicklungsteam Verteilte Verantwortung Typ 1a: Produkt Typ 1b: Teamprozesse Projektmanager Scrum-Master Entwicklungsteam SW-Architekt Entwicklungsteam Techn. Projektleiter Produktmanager ProductOwner Gesamtent- wicklungsleiter Scrum-Master Projektmanager Produktmanager Begrüßung | Einleitung | Mögliche Kategorisierungen| Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 29.
    Thementag 25.11.2014, TechnischeSchulden 29 | 56 Einleitung Kategorien von Technischen Schulden Best-Practices im Umgang mit Technischen Schulden Tilgen oder Zinsen zahlen? Technische Schulden im größeren Kontext Zusammenfassung Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 30.
    Thementag 25.11.2014, TechnischeSchulden 30| 56 Best PractiseNo. 1 Bekannte Probleme in einem IssueTrackerfesthalten! Am besten nach Strategiesorte, Erscheinungsform und Buchhaltungstyp getrennt! Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices| Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 31.
    Thementag 25.11.2014, TechnischeSchulden 31| 56 Best PractisesI Erscheinungs- form Buchh.- Typ Analyse Gegenmaßnahme Implemen- tierung 1a Codereviews,Sourcecode- Analysetool (z.B. Sonar) -> Metriken Analysierte Probleme ausbauen, prophylaktisch: Clean Code Developer Prinzipien anwenden *http://clean-coding-cosmos.de/die-ccd-regeln Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices| Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 32.
    Thementag 25.11.2014, TechnischeSchulden 32| 56 Best PractisesI Erscheinungs- form Buchh.- Typ Analyse Gegenmaßnahme Implemen- tierung 1a Codereviews,Sourcecode- Analysetool (z.B. Sonar) -> Metriken Analysierte Probleme ausbauen, prophylaktisch: Clean Code Developer Prinzipien anwenden Architektur 1a Gute Architektur- Dokumentation (arc42) (http://www.arc42.de), ATAM Entworfene Architektursauber umsetzen, schlechte Architektur ändern (http://aim42.org) *http://clean-coding-cosmos.de/die-ccd-regeln Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices| Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 33.
    Thementag 25.11.2014, TechnischeSchulden 33| 56 Best PractisesI Erscheinungs- form Buchh.- Typ Analyse Gegenmaßnahme Implemen- tierung 1a Codereviews,Sourcecode- Analysetool (z.B. Sonar) -> Metriken Analysierte Probleme ausbauen, prophylaktisch: Clean Code Developer Prinzipien anwenden Architektur 1a Gute Architektur- Dokumentation (arc42) (http://www.arc42.de), ATAM Entworfene Architektursauber umsetzen, schlechte Architektur ändern (http://aim42.org) Persönliche Schulden alle Selbstreflexion Motivation fördern (Fortbildungen, Teamstimmung) *http://clean-coding-cosmos.de/die-ccd-regeln Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices| Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 34.
    Thementag 25.11.2014, TechnischeSchulden 34| 56 Best PractisesII Erscheinungs- form Buchh.- Typ Analyse Gegenmaßnahme Prozess- bezogene, organisa- torischeund Kommuni- kations- Schulden 1b 2 2 Kritische Betrachtungder Organisationsstruktur und des ApplicationLifecycleManagements (ALM) Arbeitsabläufe, Kommunikationswege, Teamzusammenstellung, Aufgabenverteilungen, … ändern Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices| Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 35.
    Thementag 25.11.2014, TechnischeSchulden 35| 56 Best PractisesII Erscheinungs- form Buchh.- Typ Analyse Gegenmaßnahme Prozess- bezogene, organisa- torischeund Kommuni- kations- Schulden 1b 2 2 Kritische Betrachtungder Organisationsstruktur und des ApplicationLifecycleManagements (ALM) Arbeitsabläufe, Kommunikationswege, Teamzusammenstellung, Aufgabenverteilungen, … ändern Praktische Schulden 1b Selbstreflexion, Retrospektive-Meetings Prozesse verbessern, Fortbildung Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices| Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 36.
    Thementag 25.11.2014, TechnischeSchulden 36| 56 Best PractisesII Erscheinungs- form Buchh.- Typ Analyse Gegenmaßnahme Prozess- bezogene, organisa- torischeund Kommuni- kations- Schulden 1b 2 2 Kritische Betrachtungder Organisationsstruktur und des ApplicationLifecycleManagements (ALM) Arbeitsabläufe, Kommunikationswege, Teamzusammenstellung, Aufgabenverteilungen, … ändern Praktische Schulden 1b Selbstreflexion, Retrospektive-Meetings Prozesse verbessern, Fortbildung Werkzeug- bezogene Schulden 1b oder 2 Welche Tools haben wir, welche werden vermisst, und welche gibt es überhaupt noch? Toolsmit Lizenzen bei Bedarf zu Verfügung stellen Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices| Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 37.
    Thementag 25.11.2014, TechnischeSchulden 37| 56 Best PractisesIII Erscheinungs- form Buchh.- Typ Analyse Gegenmaßnahme Automations- bezogene Schulden 1b Ist die Kompilierung, Packetierung, Qualitäts- sicherung,der Bau des Release Kanditdaten, das Deployment, die Installation automatisiert? ContinuousIntegration, ContinuousDelivery Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices| Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 38.
    Thementag 25.11.2014, TechnischeSchulden 38| 56 Best PractisesIII Erscheinungs- form Buchh.- Typ Analyse Gegenmaßnahme Automations- bezogene Schulden 1b Ist die Kompilierung, Packetierung, Qualitäts- sicherung,der Bau des Release Kanditdaten, das Deployment, die Installation automatisiert? ContinuousIntegration, ContinuousDelivery Test-bezogene Schulden 1b Wie sieht die Teststrategie aus? Welche Arten von Tests gibt es? Wie hoch ist die Testabdeckung? Vorgehensweisenwie z.B. TDD und BDD kultivieren, für Automation sorgen Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices| Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 39.
    Thementag 25.11.2014, TechnischeSchulden 39| 56 Best PractisesIII Erscheinungs- form Buchh.- Typ Analyse Gegenmaßnahme Automations- bezogene Schulden 1b Ist die Kompilierung, Packetierung, Qualitäts- sicherung,der Bau des Release Kanditdaten, das Deployment, die Installation automatisiert? ContinuousIntegration, ContinuousDelivery Test-bezogene Schulden 1b Wie sieht die Teststrategie aus? Welche Arten von Tests gibt es? Wie hoch ist die Testabdeckung? Vorgehensweisenwie z.B. TDD und BDD kultivieren, für Automation sorgen Betriebs-und Produktions- bezogene Schulden 2 1a Wie gut erfolgtdie Inbetrieb-nahme? Wie gut können Fehler in der Produktion analysiert werden? DevOps (Kommunikation fördern, gleiche Automationswege nutzen) Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices| Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 40.
    Thementag 25.11.2014, TechnischeSchulden 40 | 56 Einleitung Kategorien von Technischen Schulden Best-Practices im Umgang mit Technischen Schulden Tilgen oder Zinsen zahlen? Technische Schulden im größeren Kontext Zusammenfassung Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 41.
    Thementag 25.11.2014, TechnischeSchulden 41| 56 Tilgen oder Schulden zahlen? Ein Qualitätsmodell: oder - = Kosten- reduktion Produktivitäts- vorteil Aufwand für Qualitätsinvestitionen - = Kosten- reduktion Nicht-Sanierungs- kosten Sanierungs- kosten Nach „Qualitätsinvestitionen statt technischer Schulden“ im OBJEKTspektrumNr. 5 2014 Release 1 Release 2 Release 3 Release 4 entweder so: oder so:
  • 42.
    Thementag 25.11.2014, TechnischeSchulden 42 | 56 Tilgen oder Schulden zahlen? Es geht um das „Mindset Qualitätsinvestitionen“ „… es geht … nicht um stundengenaues Schätzen von Aufwänden“ „Meistens“ reicht es, wenn „Kosten und Nutzen … mit einer Ordinalskala (gering < normal < hoch < sehr hoch) geschätzt werden“ „In vielen Situationen reichen drei Fragen aus, um die Maßnahmen … zu bestimmen:“ 1. Welche Systemkomponenten werden oft geändert und wie ist deren innere Qualität (i. Q.)? 2. Welche Maßnahmen zur Verbesserung der i. Q. bestehen …? 3. Welcher Nutzen steht diesen Investitionen … gegenüber? Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 43.
    Thementag 25.11.2014, TechnischeSchulden 43| 56 Tilgen oder Schulden zahlen? Schuldenberge bestaunen hilft alleine nicht weiter! Deshalb die Empfehlung: 1.Technische Schulden bewusst machen und festhalten 2.Entscheiden mit welchen Qualitätsinvestitionen der größte Mehrwert erzielt werden kann und Ressourcen zur Realisierung bereitstellen 3. Umsetzung veranlassen und Ergebnisse von den Verantwortlichen einfordern Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen?| Im größeren Kontext | Schlussteil
  • 44.
    Thementag 25.11.2014, TechnischeSchulden 44| 56 Tilgungspläne Release 1 Release 2 Release 3 Release 4 Keine Tilgung Tilgungsplan A Tilgungsplan B + einfaches Regressions- testen -Kein funktioneller Fortschritt + kontinuierliche Verbesserung der inneren Qualität -Gefahr als Puffer für funktionale Änderungen zu dienen Legende Zinsen zahlen Neue funktionale Änderungen Schulden tilgen Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen?| Im größeren Kontext | Schlussteil
  • 45.
    Thementag 25.11.2014, TechnischeSchulden 45 | 56 Einleitung Kategorien von Technischen Schulden Best-Practices im Umgang mit Technischen Schulden Tilgen oder Zinsen zahlen? Technische Schulden im größeren Kontext Zusammenfassung Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 46.
    Thementag 25.11.2014, TechnischeSchulden 46| 56 Rahmenbedingungen Technische Schulden Zeitdruck Fehlendes Wissen Mangelnde Kommunikation Technologischer Fortschritt Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext| Schlussteil
  • 47.
    Thementag 25.11.2014, TechnischeSchulden 47| 56 Langfristig denken ERROR
  • 48.
    Thementag 25.11.2014, TechnischeSchulden 48| 56 Langfristiges Risiko ignorieren Hauptsache mein Projekt läuft gut. Projekt-Manager Deliverin time! Keep tothebudget! Ob Schrott entsteht, ist egal. Assureinternalquality! Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext| Schlussteil
  • 49.
    Thementag 25.11.2014, TechnischeSchulden 49| 56 Wer ist hier der Boss? Produktmanager Projektmanager Chance! Risiko! Kurzfristig gut! Langfristig schlecht! Time und Budget! Innere Qualität! Technische Schulden? Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext| Schlussteil
  • 50.
    Thementag 25.11.2014, TechnischeSchulden 50| 56 Architektur Design Technologie Code Architektur Design Technologie Code Funktionalität Testbarkeit Wartbarkeit Usability Zuverlässigkeit Modifizierbarkeit Performanz Sicherheit Quelle : http://www.dadalos-d.org/frieden/images/eisberg-modell.jpg Release- management Deployment Ressourceneffizienz Kompatibilität Portabilität Äußere Qualität Innere Qualität
  • 51.
    Thementag 25.11.2014, TechnischeSchulden 51| 56 Technische Schulden kurzfristig zurückzahlen Zeit Variante 2 (Verdeckter Kredit) Variante 1 (Sichtbarer Kredit) Release 1 Release 2
  • 52.
    Thementag 25.11.2014, TechnischeSchulden 52| 56 Komplexität in der Software Effizienz in der Softwareentwicklung Technische Schulden i.w.S. Best Practises MittelfristigeKosten: “…not-quite-right code counts as interest…” LangfristigesRisiko: “…can be brought to a stand-still under the debt load…” KurzfristigeChance: “A little debt speeds development..” Zeitgewinn Komplexität beherrschen Zitatevon Ward Cunningham 1992 Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext| Schlussteil
  • 53.
    Thementag 25.11.2014, TechnischeSchulden 53 | 56 Einleitung Kategorien von Technischen Schulden Best-Practices im Umgang mit Technischen Schulden Tilgen oder Zinsen zahlen? Technische Schulden im größeren Kontext Zusammenfassung Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 54.
    Thementag 25.11.2014, TechnischeSchulden 54 | 56 Zusammenfassung Die Metapher „Technische Schulden“ ist und bleibt trotz ihrer Grenzen gut Sie ist hilfreich das Problem „schlechter technischer Umsetzung“ zu veranschaulichen und zu kommunizieren Es gibt Schulden am Produkt, am Teamprozess und am ALM, für die unterschiedliche Rollen verantwortlich sind Es gibt unbewusste, halbbewusste und bewusste Schulden Bewusste Schulden können gezielt verwaltet werden Unbewusste und halbbewusste Schulden bringen ein unbekanntes oder schwer abschätzbares Risiko mit sich Manche Technische Schulden stellen eine große reale Gefahr für Projekte und noch mehr für Produkte dar Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 55.
    Thementag 25.11.2014, TechnischeSchulden 55 | 56 Fazit Schulden-Management: Schulden bewusst machen und festhalten (Issue Tracker) Mit gezielten Qualitätsinvestitionen risikoreiche Schulden abbauen Schulden-Prophylaxe: Langfristig denken und Schulden vermeiden (nur Notfall-Option) Projektmanager auf messbare innere Qualität verpflichten Doppelt und dreifach prüfen, ob ein möglicher Nutzen mögliche Risiken den verschiedenen Stakeholdern (Produktmanager) wert sind Knowhow der Mitarbeiter und Technologien in der Software nicht zu sehr veralten lassen Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 56.
    Thementag 25.11.2014, TechnischeSchulden 56 | 56 Weiterführende Literatur http://martinfowler.com/bliki/TechnicalDebtQuadrant.html http://www.clean-code-developer.de http://www.clean-coding-cosmos.de https://sites.google.com/site/unclebobconsultingllc/a-mess-is-not-a-technical-debt http://www.construx.com/10x_Software_Development/Technical_Debt/ http://de.slideshare.net/jeffsch/beyond-technical-debt http://martinfowler.com/bliki/DesignStaminaHypothesis.html http://www.datacenter-insider.de/software-on-premise/ anwendungen/articles/459751/index3.html http://jaxenter.de/artikel/Umgang-mit-technischen-Schulden-166985 http://clean-coding-cosmos.de/techdebts-1 Begrüßung | Einleitung | Mögliche Kategorisierungen | Best-Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 57.
  • 58.
  • 59.
    Thementag 25.11.2014, TechnischeSchulden 59| 56 Projekte. Beratung. Spezialisten.