SlideShare une entreprise Scribd logo
1  sur  59
Télécharger pour lire hors ligne
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.

Contenu connexe

Tendances

Unit 1: Apply the Twelve-Factor App to Microservices Architectures
Unit 1: Apply the Twelve-Factor App to Microservices ArchitecturesUnit 1: Apply the Twelve-Factor App to Microservices Architectures
Unit 1: Apply the Twelve-Factor App to Microservices ArchitecturesNGINX, Inc.
 
Microservices - BFF architecture and implementation
Microservices - BFF architecture and implementationMicroservices - BFF architecture and implementation
Microservices - BFF architecture and implementationKnoldus Inc.
 
[락플레이스] RHEL8.4 웨비나 발표자료
[락플레이스] RHEL8.4 웨비나 발표자료 [락플레이스] RHEL8.4 웨비나 발표자료
[락플레이스] RHEL8.4 웨비나 발표자료 rockplace
 
Building .NET Microservices
Building .NET MicroservicesBuilding .NET Microservices
Building .NET MicroservicesVMware Tanzu
 
Agile and Scrum for Executives
Agile and Scrum for ExecutivesAgile and Scrum for Executives
Agile and Scrum for ExecutivesJoanna khoury
 
Domain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and MicroservicesDomain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and MicroservicesRadosław Maziarka
 
Scenarios_and_Architecture_SkillsMatter_April_2022.pdf
Scenarios_and_Architecture_SkillsMatter_April_2022.pdfScenarios_and_Architecture_SkillsMatter_April_2022.pdf
Scenarios_and_Architecture_SkillsMatter_April_2022.pdfChris Richardson
 
Coffee Break NeuVector
Coffee Break NeuVectorCoffee Break NeuVector
Coffee Break NeuVectorSUSE
 
Application performance monitoring with Elastic APM and the ELK stack
Application performance monitoring with Elastic APM and the ELK stackApplication performance monitoring with Elastic APM and the ELK stack
Application performance monitoring with Elastic APM and the ELK stackAlain Lompo
 
Kubernetes
KubernetesKubernetes
Kuberneteserialc_w
 
Why We Need Architects (and Architecture) on Agile Projects
Why We Need Architects (and Architecture) on Agile ProjectsWhy We Need Architects (and Architecture) on Agile Projects
Why We Need Architects (and Architecture) on Agile ProjectsRebecca Wirfs-Brock
 
Room 1 - 5 - Thủy Đặng - Load balancing k8s services on baremetal with Cilium...
Room 1 - 5 - Thủy Đặng - Load balancing k8s services on baremetal with Cilium...Room 1 - 5 - Thủy Đặng - Load balancing k8s services on baremetal with Cilium...
Room 1 - 5 - Thủy Đặng - Load balancing k8s services on baremetal with Cilium...Vietnam Open Infrastructure User Group
 
Scrum In Ten Slides
Scrum In Ten SlidesScrum In Ten Slides
Scrum In Ten Slidespmengal
 
Istio service mesh introduction
Istio service mesh introductionIstio service mesh introduction
Istio service mesh introductionKyohei Mizumoto
 
Microservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, KanbanMicroservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, KanbanAraf Karsh Hamid
 
Data weave 2.0 advanced (recursion, pattern matching)
Data weave 2.0   advanced (recursion, pattern matching)Data weave 2.0   advanced (recursion, pattern matching)
Data weave 2.0 advanced (recursion, pattern matching)ManjuKumara GH
 
Stay ahead of the Threats: Automate and Simplify SecOps to revolutionize the SOC
Stay ahead of the Threats: Automate and Simplify SecOps to revolutionize the SOCStay ahead of the Threats: Automate and Simplify SecOps to revolutionize the SOC
Stay ahead of the Threats: Automate and Simplify SecOps to revolutionize the SOCCristian Garcia G.
 

Tendances (20)

Scrum Basics
Scrum BasicsScrum Basics
Scrum Basics
 
Unit 1: Apply the Twelve-Factor App to Microservices Architectures
Unit 1: Apply the Twelve-Factor App to Microservices ArchitecturesUnit 1: Apply the Twelve-Factor App to Microservices Architectures
Unit 1: Apply the Twelve-Factor App to Microservices Architectures
 
Microservices - BFF architecture and implementation
Microservices - BFF architecture and implementationMicroservices - BFF architecture and implementation
Microservices - BFF architecture and implementation
 
[락플레이스] RHEL8.4 웨비나 발표자료
[락플레이스] RHEL8.4 웨비나 발표자료 [락플레이스] RHEL8.4 웨비나 발표자료
[락플레이스] RHEL8.4 웨비나 발표자료
 
Building .NET Microservices
Building .NET MicroservicesBuilding .NET Microservices
Building .NET Microservices
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
 
Agile and Scrum for Executives
Agile and Scrum for ExecutivesAgile and Scrum for Executives
Agile and Scrum for Executives
 
Domain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and MicroservicesDomain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and Microservices
 
Scenarios_and_Architecture_SkillsMatter_April_2022.pdf
Scenarios_and_Architecture_SkillsMatter_April_2022.pdfScenarios_and_Architecture_SkillsMatter_April_2022.pdf
Scenarios_and_Architecture_SkillsMatter_April_2022.pdf
 
Coffee Break NeuVector
Coffee Break NeuVectorCoffee Break NeuVector
Coffee Break NeuVector
 
Application performance monitoring with Elastic APM and the ELK stack
Application performance monitoring with Elastic APM and the ELK stackApplication performance monitoring with Elastic APM and the ELK stack
Application performance monitoring with Elastic APM and the ELK stack
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Architecture: Microservices
Architecture: MicroservicesArchitecture: Microservices
Architecture: Microservices
 
Why We Need Architects (and Architecture) on Agile Projects
Why We Need Architects (and Architecture) on Agile ProjectsWhy We Need Architects (and Architecture) on Agile Projects
Why We Need Architects (and Architecture) on Agile Projects
 
Room 1 - 5 - Thủy Đặng - Load balancing k8s services on baremetal with Cilium...
Room 1 - 5 - Thủy Đặng - Load balancing k8s services on baremetal with Cilium...Room 1 - 5 - Thủy Đặng - Load balancing k8s services on baremetal with Cilium...
Room 1 - 5 - Thủy Đặng - Load balancing k8s services on baremetal with Cilium...
 
Scrum In Ten Slides
Scrum In Ten SlidesScrum In Ten Slides
Scrum In Ten Slides
 
Istio service mesh introduction
Istio service mesh introductionIstio service mesh introduction
Istio service mesh introduction
 
Microservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, KanbanMicroservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, Kanban
 
Data weave 2.0 advanced (recursion, pattern matching)
Data weave 2.0   advanced (recursion, pattern matching)Data weave 2.0   advanced (recursion, pattern matching)
Data weave 2.0 advanced (recursion, pattern matching)
 
Stay ahead of the Threats: Automate and Simplify SecOps to revolutionize the SOC
Stay ahead of the Threats: Automate and Simplify SecOps to revolutionize the SOCStay ahead of the Threats: Automate and Simplify SecOps to revolutionize the SOC
Stay ahead of the Threats: Automate and Simplify SecOps to revolutionize the SOC
 

En vedette

Langlebige Softwarearchitekturen - Der Umgang mit technischen Schulden
Langlebige Softwarearchitekturen - Der Umgang mit technischen SchuldenLanglebige Softwarearchitekturen - Der Umgang mit technischen Schulden
Langlebige Softwarearchitekturen - Der Umgang mit technischen SchuldenCarola Lilienthal
 

En vedette (20)

Softwarequalität: Einfluss der Architektur
Softwarequalität: Einfluss der ArchitekturSoftwarequalität: Einfluss der Architektur
Softwarequalität: Einfluss der Architektur
 
Einfuehrung in mongo_db_iks
Einfuehrung in mongo_db_iksEinfuehrung in mongo_db_iks
Einfuehrung in mongo_db_iks
 
Mehr Softwarequalität: Qualität als Treiber (IKS-Thementag: 05.05.2015)
Mehr Softwarequalität: Qualität als Treiber (IKS-Thementag: 05.05.2015)Mehr Softwarequalität: Qualität als Treiber (IKS-Thementag: 05.05.2015)
Mehr Softwarequalität: Qualität als Treiber (IKS-Thementag: 05.05.2015)
 
Mehr Softwarequalitä: Usability
Mehr Softwarequalitä: UsabilityMehr Softwarequalitä: Usability
Mehr Softwarequalitä: Usability
 
Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)
Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)
Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)
 
iks auf der Jax 2010: Provisioning unter OSGi für Test und Betrieb
iks auf der Jax 2010: Provisioning unter OSGi für Test und Betrieb iks auf der Jax 2010: Provisioning unter OSGi für Test und Betrieb
iks auf der Jax 2010: Provisioning unter OSGi für Test und Betrieb
 
"RCP-Hilfe-System" - Ein Artikel im Eclipse Magazin 6/2010
"RCP-Hilfe-System" - Ein Artikel im Eclipse Magazin 6/2010"RCP-Hilfe-System" - Ein Artikel im Eclipse Magazin 6/2010
"RCP-Hilfe-System" - Ein Artikel im Eclipse Magazin 6/2010
 
Apps als motor zur digitalen transformation
Apps als motor zur digitalen transformationApps als motor zur digitalen transformation
Apps als motor zur digitalen transformation
 
FAQs zur Technik
FAQs zur TechnikFAQs zur Technik
FAQs zur Technik
 
Test-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetpro
Test-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetproTest-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetpro
Test-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetpro
 
Mehr Softwarequalität: Softwarequalität ist steuerbar
Mehr Softwarequalität: Softwarequalität ist steuerbarMehr Softwarequalität: Softwarequalität ist steuerbar
Mehr Softwarequalität: Softwarequalität ist steuerbar
 
App-Projekte richtig steuern
App-Projekte richtig steuernApp-Projekte richtig steuern
App-Projekte richtig steuern
 
Mehr Softwarequalität: Team-Cleancoding
Mehr Softwarequalität: Team-CleancodingMehr Softwarequalität: Team-Cleancoding
Mehr Softwarequalität: Team-Cleancoding
 
Micro, Nano, Mono - Microservices verständlich erklärt.
Micro, Nano, Mono  - Microservices verständlich erklärt.Micro, Nano, Mono  - Microservices verständlich erklärt.
Micro, Nano, Mono - Microservices verständlich erklärt.
 
Softwarequalität: Definitionen, Grenzen, Wünsche - Vortrag IKS-Meeting im Jan...
Softwarequalität: Definitionen, Grenzen, Wünsche - Vortrag IKS-Meeting im Jan...Softwarequalität: Definitionen, Grenzen, Wünsche - Vortrag IKS-Meeting im Jan...
Softwarequalität: Definitionen, Grenzen, Wünsche - Vortrag IKS-Meeting im Jan...
 
Mehr Softwarequalität: Qualität als Treiber
Mehr Softwarequalität: Qualität als TreiberMehr Softwarequalität: Qualität als Treiber
Mehr Softwarequalität: Qualität als Treiber
 
Agiles Arbeiten - Mythen, Trends und Best Practices
Agiles Arbeiten  - Mythen, Trends und Best PracticesAgiles Arbeiten  - Mythen, Trends und Best Practices
Agiles Arbeiten - Mythen, Trends und Best Practices
 
Ist Ihr Unternehmen reif für Microservices?
Ist Ihr Unternehmen reif für Microservices?Ist Ihr Unternehmen reif für Microservices?
Ist Ihr Unternehmen reif für Microservices?
 
Langlebige architekturen
Langlebige architekturenLanglebige architekturen
Langlebige architekturen
 
Langlebige Softwarearchitekturen - Der Umgang mit technischen Schulden
Langlebige Softwarearchitekturen - Der Umgang mit technischen SchuldenLanglebige Softwarearchitekturen - Der Umgang mit technischen Schulden
Langlebige Softwarearchitekturen - Der Umgang mit technischen Schulden
 

Similaire à Mehr Softwarequalität: Technische Schulden

Lean Development / Standardisierte Software-Entwicklung
Lean Development / Standardisierte Software-EntwicklungLean Development / Standardisierte Software-Entwicklung
Lean Development / Standardisierte Software-EntwicklungSuperB2
 
VMware Site Recovery Manager
VMware Site Recovery ManagerVMware Site Recovery Manager
VMware Site Recovery ManagerinoX-tech GmbH
 
Agilität in der Praxis - FHNW Psychologie kompakt
Agilität in der Praxis - FHNW Psychologie kompaktAgilität in der Praxis - FHNW Psychologie kompakt
Agilität in der Praxis - FHNW Psychologie kompaktJoël Krapf
 
Chapter Zürich Process Discovery.pdf
Chapter Zürich Process Discovery.pdfChapter Zürich Process Discovery.pdf
Chapter Zürich Process Discovery.pdfCristina Vidu
 
Optimierte Vorgehensweisen für Intranet-Projekte [DE]
Optimierte Vorgehensweisen für Intranet-Projekte [DE]Optimierte Vorgehensweisen für Intranet-Projekte [DE]
Optimierte Vorgehensweisen für Intranet-Projekte [DE]Stephan Schillerwein
 
IAK13 Darwin und die Kreativen
IAK13 Darwin und die KreativenIAK13 Darwin und die Kreativen
IAK13 Darwin und die KreativenWebster59
 
Lean development 04
Lean development 04Lean development 04
Lean development 04SuperB2
 
Keynote Fachforum Personal 2018-10-30 Vs fuer scil-aktuell.pdf
Keynote Fachforum Personal 2018-10-30 Vs fuer scil-aktuell.pdfKeynote Fachforum Personal 2018-10-30 Vs fuer scil-aktuell.pdf
Keynote Fachforum Personal 2018-10-30 Vs fuer scil-aktuell.pdfChristoph Meier
 
Large-Scale Product Owner @ XPDays Germany (5.10.2023)
Large-Scale Product Owner @ XPDays Germany (5.10.2023)Large-Scale Product Owner @ XPDays Germany (5.10.2023)
Large-Scale Product Owner @ XPDays Germany (5.10.2023)Pierluigi Pugliese
 
Busines Cases __ tekom-Jahrestagung 2014
Busines Cases __ tekom-Jahrestagung 2014Busines Cases __ tekom-Jahrestagung 2014
Busines Cases __ tekom-Jahrestagung 2014Michael Schaffner
 
Software Asset Management Strategies 2014 Rückblick
Software Asset Management Strategies 2014 RückblickSoftware Asset Management Strategies 2014 Rückblick
Software Asset Management Strategies 2014 RückblickMaria Willamowius
 
Impact Mapping - strategische Steuerung agiler Entwicklung
Impact Mapping - strategische Steuerung agiler EntwicklungImpact Mapping - strategische Steuerung agiler Entwicklung
Impact Mapping - strategische Steuerung agiler EntwicklungChristian Hassa
 
MiPo'11: Reflexive Technologie. Eine neue Logik der Softwareentwicklung (Manf...
MiPo'11: Reflexive Technologie. Eine neue Logik der Softwareentwicklung (Manf...MiPo'11: Reflexive Technologie. Eine neue Logik der Softwareentwicklung (Manf...
MiPo'11: Reflexive Technologie. Eine neue Logik der Softwareentwicklung (Manf...MiPo-Konferenz / Hochschule Aalen
 
Vom Excel-Chaos zum integrierten Projektportfolio
Vom Excel-Chaos zum integrierten ProjektportfolioVom Excel-Chaos zum integrierten Projektportfolio
Vom Excel-Chaos zum integrierten ProjektportfolioDigicomp Academy AG
 

Similaire à Mehr Softwarequalität: Technische Schulden (20)

Lean Development / Standardisierte Software-Entwicklung
Lean Development / Standardisierte Software-EntwicklungLean Development / Standardisierte Software-Entwicklung
Lean Development / Standardisierte Software-Entwicklung
 
VMware Site Recovery Manager
VMware Site Recovery ManagerVMware Site Recovery Manager
VMware Site Recovery Manager
 
Webinare als kommunikationsturbo
Webinare als kommunikationsturboWebinare als kommunikationsturbo
Webinare als kommunikationsturbo
 
Xidra 2016 DevOps
Xidra 2016 DevOpsXidra 2016 DevOps
Xidra 2016 DevOps
 
Agilität in der Praxis - FHNW Psychologie kompakt
Agilität in der Praxis - FHNW Psychologie kompaktAgilität in der Praxis - FHNW Psychologie kompakt
Agilität in der Praxis - FHNW Psychologie kompakt
 
Chapter Zürich Process Discovery.pdf
Chapter Zürich Process Discovery.pdfChapter Zürich Process Discovery.pdf
Chapter Zürich Process Discovery.pdf
 
Optimierte Vorgehensweisen für Intranet-Projekte [DE]
Optimierte Vorgehensweisen für Intranet-Projekte [DE]Optimierte Vorgehensweisen für Intranet-Projekte [DE]
Optimierte Vorgehensweisen für Intranet-Projekte [DE]
 
IAK13 Darwin und die Kreativen
IAK13 Darwin und die KreativenIAK13 Darwin und die Kreativen
IAK13 Darwin und die Kreativen
 
Lean development 04
Lean development 04Lean development 04
Lean development 04
 
Keynote Fachforum Personal 2018-10-30 Vs fuer scil-aktuell.pdf
Keynote Fachforum Personal 2018-10-30 Vs fuer scil-aktuell.pdfKeynote Fachforum Personal 2018-10-30 Vs fuer scil-aktuell.pdf
Keynote Fachforum Personal 2018-10-30 Vs fuer scil-aktuell.pdf
 
DevOps: Change Mindset before Toolset
DevOps: Change Mindset before ToolsetDevOps: Change Mindset before Toolset
DevOps: Change Mindset before Toolset
 
Large-Scale Product Owner @ XPDays Germany (5.10.2023)
Large-Scale Product Owner @ XPDays Germany (5.10.2023)Large-Scale Product Owner @ XPDays Germany (5.10.2023)
Large-Scale Product Owner @ XPDays Germany (5.10.2023)
 
Busines Cases __ tekom-Jahrestagung 2014
Busines Cases __ tekom-Jahrestagung 2014Busines Cases __ tekom-Jahrestagung 2014
Busines Cases __ tekom-Jahrestagung 2014
 
Rückblick Ditm 2013
Rückblick Ditm 2013Rückblick Ditm 2013
Rückblick Ditm 2013
 
Software Asset Management Strategies 2014 Rückblick
Software Asset Management Strategies 2014 RückblickSoftware Asset Management Strategies 2014 Rückblick
Software Asset Management Strategies 2014 Rückblick
 
Rule breakers welcome!
Rule breakers welcome!Rule breakers welcome!
Rule breakers welcome!
 
Impact Mapping - strategische Steuerung agiler Entwicklung
Impact Mapping - strategische Steuerung agiler EntwicklungImpact Mapping - strategische Steuerung agiler Entwicklung
Impact Mapping - strategische Steuerung agiler Entwicklung
 
MiPo'11: Reflexive Technologie. Eine neue Logik der Softwareentwicklung (Manf...
MiPo'11: Reflexive Technologie. Eine neue Logik der Softwareentwicklung (Manf...MiPo'11: Reflexive Technologie. Eine neue Logik der Softwareentwicklung (Manf...
MiPo'11: Reflexive Technologie. Eine neue Logik der Softwareentwicklung (Manf...
 
Bedarfsanalyse und unternehmensübergreifende Logistik
Bedarfsanalyse und unternehmensübergreifende LogistikBedarfsanalyse und unternehmensübergreifende Logistik
Bedarfsanalyse und unternehmensübergreifende Logistik
 
Vom Excel-Chaos zum integrierten Projektportfolio
Vom Excel-Chaos zum integrierten ProjektportfolioVom Excel-Chaos zum integrierten Projektportfolio
Vom Excel-Chaos zum integrierten Projektportfolio
 

Plus de IKS Gesellschaft für Informations- und Kommunikationssysteme mbH

Plus de IKS Gesellschaft für Informations- und Kommunikationssysteme mbH (20)

Es wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingt
Es wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingtEs wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingt
Es wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingt
 
Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...
Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...
Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...
 
Thementag 2023 04 Lindern, heilen oder gar fit machen.pdf
Thementag 2023 04 Lindern, heilen oder gar fit machen.pdfThementag 2023 04 Lindern, heilen oder gar fit machen.pdf
Thementag 2023 04 Lindern, heilen oder gar fit machen.pdf
 
Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...
Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...
Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...
 
Thementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdf
Thementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdfThementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdf
Thementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdf
 
Thementag 2023 03 Einführung in die Softwaremodernisierung.pdf
Thementag 2023 03 Einführung in die Softwaremodernisierung.pdfThementag 2023 03 Einführung in die Softwaremodernisierung.pdf
Thementag 2023 03 Einführung in die Softwaremodernisierung.pdf
 
Thementag 2022 01 Verpassen Sie nicht den Anschluss.pdf
Thementag 2022 01 Verpassen Sie nicht den Anschluss.pdfThementag 2022 01 Verpassen Sie nicht den Anschluss.pdf
Thementag 2022 01 Verpassen Sie nicht den Anschluss.pdf
 
Thementag 2022 04 ML auf die Schiene gebracht.pdf
Thementag 2022 04 ML auf die Schiene gebracht.pdfThementag 2022 04 ML auf die Schiene gebracht.pdf
Thementag 2022 04 ML auf die Schiene gebracht.pdf
 
Thementag 2022 03 Ein Modell ist trainiert - und jetzt.pdf
Thementag 2022 03 Ein Modell ist trainiert - und jetzt.pdfThementag 2022 03 Ein Modell ist trainiert - und jetzt.pdf
Thementag 2022 03 Ein Modell ist trainiert - und jetzt.pdf
 
Thementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdf
Thementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdfThementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdf
Thementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdf
 
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine LearningDaten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
 
Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...
Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...
Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...
 
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
 
Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?
 
Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...
Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...
Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...
 
Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...
Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...
Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...
 
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine LearningDaten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
 
Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?
 
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine LearningDaten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
 
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
 

Mehr Softwarequalität: Technische Schulden

  • 1. 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
  • 2. 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
  • 3. Auf der Baustelle arbeiten Schick machen Refactoring First Time Code Not-Quite-RightCode Auf der Baustelle arbeiten Clean Code
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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.“
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. Thementag 25.11.2014, Technische Schulden 17| 56 Erscheinungsformen (Aussehen, Vorkommen) Persönliche Schulden Organisatorische Schulden Prozess-bezogene Schulden
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. 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
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. 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
  • 31. 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
  • 32. 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
  • 33. 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
  • 34. 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
  • 35. 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
  • 36. 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
  • 37. 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
  • 38. 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
  • 39. 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
  • 40. 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
  • 41. 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:
  • 42. 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
  • 43. 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
  • 44. 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
  • 45. 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
  • 46. 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
  • 47. Thementag 25.11.2014, Technische Schulden 47| 56 Langfristig denken ERROR
  • 48. 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
  • 49. 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
  • 50. 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
  • 51. 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
  • 52. 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
  • 53. 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
  • 54. 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
  • 55. 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
  • 56. 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
  • 59. Thementag 25.11.2014, Technische Schulden 59| 56 Projekte. Beratung. Spezialisten.