Thementag 05.05.2015, Technische Schulden 1 | 58
: Kopiert eine
Klicke mit der Maus an die
Projekte. Beratung. Spezialisten.
Technische Schulden:
IKS-Thementag
05.05.2015
Autor: Dr. Reik Oberrath
Risiko und Chance für mehr Softwarequalität
Thementag 05.05.2015, Technische Schulden 2 | 58
: Kopiert eine
Klicke mit der Maus an die
Definition 1
„Technische Schuld oder Technische Schulden (engl. technical debt) 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 WyCash Portfolio Management System.
In: OOPSLA '92 Experience Report. 26. März 1992
“Shipping 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.”
“Shipping 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. Entire engineering organizations can be brought to a stand-still under the debt load…”
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-Right Code
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
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
** Vom Wirtschaftsprüfungsunternehmen Deloitte geschätzt für Sourcecode-Fehlersuche in 2012
siehe http://www.datacenter-insider.de/software-on-premise/anwendungen/articles/459751/index3.html
Thementag 05.05.2015, Technische Schulden 6 | 58
: Kopiert eine
Klicke mit der Maus an die
Strategisches Design
1. Niedrige Zinsen nutzen 2. Aktuelle Marktvorteile nutzen
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 7 | 58
: Kopiert eine
Klicke mit der Maus an die
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
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 8 | 58
: Kopiert eine
Klicke mit der Maus an die
Definition 2
A) Technische Schuld im engeren Sinne ist die Summe aller Defizite einer
Software, für die sich die Akteure bewusst (oder wenigstens halbbewusst)
entschieden haben.
B) Technische Schuld im weiteren Sinne ist die Summe aller Defizite einer
Software, also alles, was dem Clean-Code-Gedanken widerspricht.
Siehe
https://sites.google.com/site/unclebobconsultingllc/a-mess-is-not-a-technical-debt
Siehe
http://www.clean-code-developer.de/
http://www.clean-coding-cosmos.de/
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 9 | 58
: Kopiert eine
Klicke mit der Maus an die
Agenda
Einleitung
Kategorien von Technischen Schulden
Best Practices im Umgang mit Technischen Schulden
Tilgen oder Zinsen zahlen?
Technische Schulden im größeren Kontext
Zusammenfassung
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 10 | 58
: Kopiert eine
Klicke mit der Maus an die
Kategorien von Technischen Schulden
Bewusstseinsarten (Motivation, Einstellung)
Strategiesorten (Ziele, Planung)
Erscheinungsformen (Aussehen, Vorkommen)
Buchhaltungstypen (Schuldenverwaltung, Verantwortliche Rollen)
Thementag 05.05.2015, Technische Schulden 11 | 58
: Kopiert eine
Klicke mit der Maus an die
Bewusstseinsarten (Motivation, Einstellung)
Konsequenzen und Gegenmaßnahmenbewusst?
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.“
Nach http://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 05.05.2015, Technische Schulden 12 | 58
: Kopiert eine
Klicke mit der Maus an die
Bewusstseinsarten (Motivation, Einstellung)
http://martinfowler.com/bliki/TechnicalDebtQuadrant.html
Sorglos
Bedacht
Unachtsam
UmsichtigKurzsichtig
Bewusst
Unbewusst
Weitsichtig
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 13 | 58
: Kopiert eine
Klicke mit der Maus an die
Kategorien von Technischen Schulden
Bewusstseinsarten (Motivation, Einstellung)
Strategiesorten (Ziele, Planung)
Erscheinungsformen (Aussehen, Vorkommen)
Buchhaltungstypen (Schuldenverwaltung, Verantwortliche Rollen)
Thementag 05.05.2015, Technische Schulden 14 | 58
: Kopiert eine
Klicke mit der Maus an die
Strategiesorten (Ziele, Planung)
Taktische Kurzzeit-Schulden
Bewusste Schulden
Strategische Langzeit-Schulden
Unbewusste Schulden
Viele kleine DefiziteEin großes Defizit
Nach
http://www.construx.com/10x_Software_Development/Technical_Debt/
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 15 | 58
: Kopiert eine
Klicke mit der Maus an die
Strategiesorten (Ziele, Planung)
Langzeit-Schulden Kurzzeit-Schulden
Grobgranular
Feingranular
„Wir realisieren kein Continuous
Delivery solange 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 Continuous Integration.“
„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.“
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 16 | 58
: Kopiert eine
Klicke mit der Maus an die
Kategorien von Technischen Schulden
Bewusstseinsarten (Motivation, Einstellung)
Strategiesorten (Ziele, Planung)
Erscheinungsformen (Aussehen, Vorkommen)
Buchhaltungstypen (Schuldenverwaltung, Verantwortliche Rollen)
Thementag 05.05.2015, Technische Schulden 17 | 58
: Kopiert eine
Klicke mit der Maus an die
Erscheinungsformen (Aussehen, Vorkommen)
PersönlicheSchulden
OrganisatorischeSchulden
Prozess-bezogeneSchulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 18 | 58
: Kopiert eine
Klicke mit der Maus an die
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
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 19 | 58
: Kopiert eine
Klicke mit der Maus an die
Erscheinungsformen (Aussehen, Vorkommen)
PersönlicheSchulden
OrganisatorischeSchulden
Prozess-bezogeneSchulden
Test-bezogeneSchulden
PraktischeSchulden
Automations-bezogeneSchulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
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 (Continuous Integration)
Test-bezogene Schulden
z. B. unzureichende Testabdeckung der implementierten Funktionalität
Mehr Informationen dazu unter http://clean-coding-cosmos.de/techdebts-4
Erscheinungsformen (Aussehen, Vorkommen)
PersönlicheSchulden
OrganisatorischeSchulden
Prozess-bezogeneSchulden
Werkzeug-bezogeneSchulden
Test-bezogeneSchulden
PraktischeSchulden
Automations-bezogeneSchulden
Betriebs-bezogeneSchulden
AM-bezogeneSchulden
Fachseite-bezogeneSchulden
Kommunikations-schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 22 | 58
: Kopiert eine
Klicke mit der Maus an die
Kommunikationsschulden
Unzureichende Kommunikation und Zusammenarbeit zwischen den Akteuren
(vor allem zwischen Akteuren verschiedener Phasen im ALM)
Application Lifecycle Management
Anforderungs-analyst
Domänen-Experte
Architekt /Entwickler
Administrator
Kundenakzeptanz-tester
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 23 | 58
: Kopiert eine
Klicke mit der Maus an die
Erscheinungsformen (Aussehen, Vorkommen)
PersönlicheSchulden
OrganisatorischeSchulden
Prozess-bezogeneSchulden
Werkzeug-bezogeneSchulden
Test-bezogeneSchulden
PraktischeSchulden
Automations-bezogeneSchulden
Betriebs-bezogeneSchulden
AM-bezogeneSchulden
Fachseite-bezogeneSchulden
Kommunikations-schulden
Implementierungs-schulden
Architektur-schulden
Produkt-bezogeneSchulden
Produktions-bezogeneSchulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 24 | 58
: Kopiert eine
Klicke mit der Maus an die
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
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
Erscheinungsformen (Aussehen, Vorkommen)
PersönlicheSchulden
OrganisatorischeSchulden
Prozess-bezogeneSchulden
Werkzeug-bezogeneSchulden
Test-bezogeneSchulden
PraktischeSchulden
Automations-bezogeneSchulden
Betriebs-bezogeneSchulden
AM-bezogeneSchulden
Fachseite-bezogeneSchulden
Kommunikations-schulden
Implementierungs-schulden
Architektur-schulden
Produkt-bezogeneSchulden
Produktions-bezogeneSchulden
Hauptverantwortung beim Entwicklungsteam
Verteilte Verantwortung
Thementag 05.05.2015, Technische Schulden 26 | 58
: Kopiert eine
Klicke mit der Maus an die
Kategorien von Technischen Schulden
Bewusstseinsarten (Motivation, Einstellung)
Strategiesorten (Ziele, Planung)
Erscheinungsformen (Aussehen, Vorkommen)
Buchhaltungstypen (Schuldenverwaltung, Verantwortliche Rollen)
Thementag 05.05.2015, Technische Schulden 27 | 58
: Kopiert eine
Klicke mit der Maus an die
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, …)
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
Buchhaltungstypen (verantwortliche Rollen)
Rahmenprozesse
Hauptverantwortung bei Entwicklungsteam
Verteilte Verantwortung
Typ 1a: Produkt
Typ 1b: Teamprozesse
Projektmanager
Scrum-Master
Entwicklungsteam
SW-Architekt
Entwicklungsteam
Techn. Projektleiter
Produktmanager
Product Owner
Gesamtent-
wicklungsleiter
Scrum-Master
Projektmanager
Produktmanager
Typ 2: ALM
Typ 1: Projekt
Thementag 05.05.2015, Technische Schulden 29 | 58
: Kopiert eine
Klicke mit der Maus an die
Agenda
Einleitung
Kategorien von Technischen Schulden
Best Practices im Umgang mit Technischen Schulden
Tilgen oder Zinsen zahlen?
Technische Schulden im größeren Kontext
Zusammenfassung
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 30 | 58
: Kopiert eine
Klicke mit der Maus an die
Best Practice No. 1
Bekannte Probleme in einem Issue Tracker festhalten!
Am besten nach Strategiesorte, Erscheinungsform und Buchhaltungstyp
getrennt!
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 31 | 58
: Kopiert eine
Klicke mit der Maus an die
Best Practices I
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
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
* http://clean-coding-cosmos.de/die-ccd-regeln
Thementag 05.05.2015, Technische Schulden 32 | 58
: Kopiert eine
Klicke mit der Maus an die
Best Practices I
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 Architektur
sauber umsetzen, schlechte
Architektur ändern
(http://aim42.org/)
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
* http://clean-coding-cosmos.de/die-ccd-regeln
Thementag 05.05.2015, Technische Schulden 33 | 58
: Kopiert eine
Klicke mit der Maus an die
Best Practices I
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 Architektur
sauber 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
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 34 | 58
: Kopiert eine
Klicke mit der Maus an die
Best Practices II
Erscheinungs-
form
Buchh.-
Typ
Analyse Gegenmaßnahme
Prozess-
bezogene,
organisa-
torische und
Kommuni-
kations-
Schulden
1b
2
2
Kritische Betrachtung der
Organisationsstruktur und
des Application Lifecycle
Managements (ALM)
Arbeitsabläufe,
Kommunikationswege,
Teamzusammenstellung,
Aufgabenverteilungen, …
ändern
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 35 | 58
: Kopiert eine
Klicke mit der Maus an die
Best Practices II
Erscheinungs-
form
Buchh.-
Typ
Analyse Gegenmaßnahme
Prozess-
bezogene,
organisa-
torische und
Kommuni-
kations-
Schulden
1b
2
2
Kritische Betrachtung der
Organisationsstruktur und
des Application Lifecycle
Managements (ALM)
Arbeitsabläufe,
Kommunikationswege,
Teamzusammenstellung,
Aufgabenverteilungen, …
ändern
Praktische
Schulden
1b Selbstreflexion,
Retrospektive-Meetings
Prozesse verbessern,
Fortbildung
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 36 | 58
: Kopiert eine
Klicke mit der Maus an die
Best Practices II
Erscheinungs-
form
Buchh.-
Typ
Analyse Gegenmaßnahme
Prozess-
bezogene,
organisa-
torische und
Kommuni-
kations-
Schulden
1b
2
2
Kritische Betrachtung der
Organisationsstruktur und
des Application Lifecycle
Managements (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?
Tools mit Lizenzen bei
Bedarf zu Verfügung stellen
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 37 | 58
: Kopiert eine
Klicke mit der Maus an die
Best Practices III
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?
Continuous Integration,
Continuous Delivery
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 38 | 58
: Kopiert eine
Klicke mit der Maus an die
Best Practices III
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?
Continuous Integration,
Continuous Delivery
Test-bezogene
Schulden
1b Wie sieht die Teststrategie
aus? Welche Arten von Tests
gibt es? Wie hoch ist die
Testabdeckung?
Vorgehensweisen wie z.B.
TDD und BDD kultivieren,
für Automation sorgen
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
Best Practices III
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?
Continuous Integration,
Continuous Delivery
Test-bezogene
Schulden
1b Wie sieht die Teststrategie
aus? Welche Arten von Tests
gibt es? Wie hoch ist die
Testabdeckung?
Vorgehensweisen wie z.B.
TDD und BDD kultivieren,
für Automation sorgen
Betriebs- und
Produktions-
bezogene
Schulden
2
1a
Wie gut erfolgt die
Inbetriebnahme? Wie gut
können Fehler in der
Produktion analysiert
werden?
DevOps
(Kommunikation fördern,
gleiche Automationswege
nutzen)
Thementag 05.05.2015, Technische Schulden 40 | 58
: Kopiert eine
Klicke mit der Maus an die
Agenda
Einleitung
Kategorien von Technischen Schulden
Best Practices im Umgang mit Technischen Schulden
Tilgen oder Zinsen zahlen?
Technische Schulden im größeren Kontext
Zusammenfassung
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 41 | 58
: Kopiert eine
Klicke mit der Maus an die
Tilgen oder Schulden zahlen?
Ein Qualitätsmodell:
oder
-=Kosten-
reduktionProduktivitäts-
vorteil
Aufwand für
Qualitätsinvestitionen
-=Kosten-
reduktionNicht-Sanierungs-
kosten
Sanierungs-
kosten
Nach
„Qualitätsinvestitionen statt technischer Schulden“
im OBJEKTspektrum Nr. 5 2014
Release 1 Release 2 Release 3 Release 4
entweder so:
oder so:
Thementag 05.05.2015, Technische Schulden 42 | 58
: Kopiert eine
Klicke mit der Maus an die
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?
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 43 | 58
: Kopiert eine
Klicke mit der Maus an die
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
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 44 | 58
: Kopiert eine
Klicke mit der Maus an die
Tilgungspläne
Release 1 Release 2 Release 3 Release 4
Keine Tilgung
Tilgungsplan A
Tilgungsplan B
+ einfaches Regressions-testen
- Kein funktioneller Fortschritt
Legende
Zinsen zahlen
Neue funktionale Änderungen
Schulden tilgen
+ kontinuierliche Verbesserungder inneren Qualität
- Gefahr als Puffer für funktionale Änderungenzu dienen
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 45 | 58
: Kopiert eine
Klicke mit der Maus an die
Agenda
Einleitung
Kategorien von Technischen Schulden
Best Practices im Umgang mit Technischen Schulden
Tilgen oder Zinsen zahlen?
Technische Schulden im größeren Kontext
Zusammenfassung
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 46 | 58
: Kopiert eine
Klicke mit der Maus an die
Technische
Schulden
Rahmenbedingungen
Zeitd
ruck
Feh
lend
es
Wisse
n
Mangelnde Kommunikation
Technologischer Fortschritt
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
Langfristig denken
ERROR
Thementag 05.05.2015, Technische Schulden 48 | 58
: Kopiert eine
Klicke mit der Maus an die
Langfristiges Risiko ignorieren
Hauptsache
mein
Projekt läuft
gut.
Projekt-Manager
Deliver in time ! Keep to the budget!
Ob Schrott
entsteht,
ist egal.
Assure internal quality !
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 49 | 58
: Kopiert eine
Klicke mit der Maus an die
Wer ist hier der Boss?
Produktmanager Projektmanager
Chance!Risiko!
Kurzfristig
gut!
Langfristig
schlecht!
Time und
Budget!Innere
Qualität!
Technische
Schulden?
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
Thementag 25.11.2014, Technische Schulden 50 | 56
Architektur
DesignTechnologie
Code
Architektur
DesignTechnologie
Code
Funktionalität
Testbarkeit
Wartbarkeit
Usability Zuverlässigkeit
Modifizierbarkeit
PerformanzSicherheit
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
Technische Schulden kurzfristig zurückzahlen
Variante 2(Verdeckter Kredit)
Variante 1(Sichtbarer Kredit)
Release 1 Zeit Release 2
Thementag 05.05.2015, Technische Schulden 52 | 58
: Kopiert eine
Klicke mit der Maus an die
Komplexität beherrschen
Komplexität in der Software
Effizienz in der Softwareentwicklung
Technische Schulden i.w.S.Best Practices
Mittelfristige Kosten:
“…not-quite-right code counts as interest…”
Langfristiges Risiko:
“…can be brought to a stand-still under the debt load…”
Kurzfristige Chance:
“A little debt speeds development..”
Zeitgewinn
Zitate von
Ward Cunningham
1992
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 53 | 58
: Kopiert eine
Klicke mit der Maus an die
Agenda
Einleitung
Kategorien von Technischen Schulden
Best Practices im Umgang mit Technischen Schulden
Tilgen oder Zinsen zahlen?
Technische Schulden im größeren Kontext
Zusammenfassung
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 54 | 58
: Kopiert eine
Klicke mit der Maus an die
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
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 55 | 58
: Kopiert eine
Klicke mit der Maus an die
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
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 56 | 58
: Kopiert eine
Klicke mit der Maus an die
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
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 57 | 58
: Kopiert eine
Klicke mit der Maus an die
Fragen
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
WWW.IKS-GMBH.COM
Thementag 05.05.2015, Technische Schulden 59 | 58
: Kopiert eine
Klicke mit der Maus an die
Projekte. Beratung. Spezialisten.
Top Related