Technische Schulden Adobe Acrobat PDF Datei, 2 MB

Projekte. Beratung. Spezialisten.
Technische Schulden:
Risiko und Chance für mehr Softwarequalität
IKS-Thementag
Autor:
Dr. Reik Oberrath
05.05.2015
Thementag 05.05.2015, Technische Schulden
1 | 56
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
going
into
debt.
A little
debtdebt
speeds
development
so long
“Shippingfirst
firsttime
timecode
codeis islike
like
going
into
debt.
A little
speeds
development
so as
like
going
into
debt.
it
is paid
long
as itback…”
is paid back… Every minute
minute spent
spent on
on not-quite-right
not-quite-right code counts as interest
on that debt.” Entire engineering organizations can be brought to a stand-still under
the debt load…”
Ward Cunningham: The WyCash Portfolio Management System.
In: OOPSLA '92 Experience Report. 26. März 1992
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
2 | 56
Auf der Baustelle
arbeiten
Schick machen
Auf der Baustelle
arbeiten
Refactoring
First Time Code
Not-Quite-Right Code
Clean Code
Altlasten als langfristige Kostentreiber
Mit Refactoring
Summe
realisierter
Feature
Verlorene
Ressourcen
Mit Technischen Schulden
Amortisierungsgrenze
Ward Cunningham:
“A little debt speeds development..”
Zeit
Ward Cunningham:
“…stand-still under the debt load…”
Nach http://martinfowler.com/bliki/DesignStaminaHypothesis.html
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
500 Mrd $ *
Bildnachweis:
http://www.wissen.de/redewendung/ein-klotz-am-bein-sein-2013-05-17
* 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
Strategisches Design
1. Niedrige Zinsen nutzen
2. Aktuelle Marktvorteile nutzen
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
6 | 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
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
7 | 56
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.
Siehe
https://sites.google.com/site/unclebobconsultingllc/a-mess-is-not-a-technical-debt
B) Technische Schuld im weiteren Sinne ist die Summe aller Defizite einer
Software, also alles, was dem Clean-Code-Gedanken widerspricht.
Siehe
http://www.clean-code-developer.de/
http://www.clean-coding-cosmos.de/
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
8 | 56
Agenda
Einleitung
Kategorien von Technischen Schulden
Best Practices im Umgang mit Technischen Schulden
Tilgen oder Zinsen zahlen?
Technische Schulden im größeren Kontext
Zusammenfassung
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
9 | 56
Kategorien von Technischen Schulden
1.
2.
3.
4.
Bewusstseinsarten (Motivation, Einstellung)
Strategiesorten (Ziele, Planung)
Erscheinungsformen (Aussehen, Vorkommen)
Buchhaltungstypen (Schuldenverwaltung, verantwortliche Rollen)
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
10 | 56
Bewusstseinsarten (Motivation, Einstellung)
Konsequenzen und Gegenmaßnahmen
bewusst?
Nein
„Ok, sauber geht anders,
aber über eine saubere
Lösung machen wir uns
jetzt keine Gedanken. Wir
müssen jetzt liefern.“
Schulden bewusst?
Ja
„Wir verzichten auf die
saubere Lösung. Die
entstehenden Probleme
sind bekannt und werden
beherrscht. Wir müssen
jetzt liefern.“
Ja
Nein
Erst im Nachhinein:
„Was ist das
Problem?“
„Ach so, wenn wir das vorher
gewusst hätten, hätten wir
die Chance gehabt, das
sauber zu erledigen.“
Thementag 05.05.2015, Technische Schulden
Nach http://martinfowler.com/bliki/TechnicalDebtQuadrant.html
11 | 56
Bewusstseinsarten (Motivation, Einstellung)
Sorglos Kurzsichtig
Umsichtig Weitsichtig
Bedacht Bewusst
Unachtsam Unbewusst
http://martinfowler.com/bliki/TechnicalDebtQuadrant.html
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
12 | 56
Kategorien von Technischen Schulden
1.
2.
3.
4.
Bewusstseinsarten (Motivation, Einstellung)
Strategiesorten (Ziele, Planung)
Erscheinungsformen (Aussehen, Vorkommen)
Buchhaltungstypen (Schuldenverwaltung, verantwortliche Rollen)
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
13 | 56
Strategiesorten (Ziele, Planung)
Ein großes Defizit
Viele kleine Defizite
Strategische Langzeit-Schulden
Unbewusste Schulden
Taktische Kurzzeit-Schulden
Bewusste Schulden
Nach
http://www.construx.com/10x_Software_Development/Technical_Debt/
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
14 | 56
Strategiesorten (Ziele, Planung)
Langzeit-Schulden
Kurzzeit-Schulden
Grobgranular
„Wir realisieren kein Continuous
Delivery solange der Kunde mit
der Auslieferungsdauer
zufrieden ist“
„Wir testen jetzt noch unregelmäßig und erkennen viele
Fehler zu spät. Ab der übernächsten Auslieferung nutzen
wir Continuous Integration.“
Feingranular
„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.“
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
15 | 56
Kategorien von Technischen Schulden
1.
2.
3.
4.
Bewusstseinsarten (Motivation, Einstellung)
Strategiesorten (Ziele, Planung)
Erscheinungsformen (Aussehen, Vorkommen)
Buchhaltungstypen (Schuldenverwaltung, verantwortliche Rollen)
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
16 | 56
Erscheinungsformen (Aussehen, Vorkommen)
Organisatorische
Schulden
Prozess-bezogene
Schulden
Persönliche
Schulden
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
17 | 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
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
18 | 56
Erscheinungsformen (Aussehen, Vorkommen)
Test-bezogene
Schulden
Automations-bezogene
Schulden
Praktische
Schulden
Organisatorische
Schulden
Prozess-bezogene
Schulden
Persönliche
Schulden
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
19 | 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 (Continuous Integration)
Test-bezogene Schulden
z. B. unzureichende Testabdeckung der implementierten Funktionalität
Mehr Informationen dazu unter http://clean-coding-cosmos.de/techdebts-4
Kommunikationsschulden
Unzureichende Kommunikation und Zusammenarbeit zwischen den Akteuren
(vor allem zwischen Akteuren verschiedener Phasen im ALM)
Application Lifecycle Management
Administrator
Kundenakzeptanztester
Architekt /
Entwickler
Anforderungsanalyst
DomänenExperte
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
21 | 56
Erscheinungsformen (Aussehen, Vorkommen)
Test-bezogene
Schulden
Automations-bezogene
Schulden
Werkzeug-bezogene
Schulden
Praktische
Schulden
Organisatorische
Schulden
Persönliche
Schulden
Betriebs-bezogene
Schulden
AM-bezogene
Schulden
Fachseitebezogene
Schulden
Kommunikationsschulden
Prozess-bezogene
Schulden
Produktions-bezogene
Schulden
Produkt-bezogene
Schulden
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
Architekturschulden
Implementierungsschulden
22 | 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
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
23 | 56
Erscheinungsformen (Aussehen, Vorkommen)
Test-bezogene
Schulden
Automations-bezogene
Schulden
Werkzeug-bezogene
Schulden
Praktische
Schulden
Organisatorische
Schulden
Persönliche
Schulden
Betriebs-bezogene
Schulden
AM-bezogene
Schulden
Fachseitebezogene
Schulden
Kommunikationsschulden
Prozess-bezogene
Schulden
Produkt-bezogene
Schulden
Produktions-bezogene
Schulden
Architekturschulden
Implementierungsschulden
Hauptverantwortung beim
Entwicklungsteam
Verteilte Verantwortung
Kategorien von Technischen Schulden
1.
2.
3.
4.
Bewusstseinsarten (Motivation, Einstellung)
Strategiesorten (Ziele, Planung)
Erscheinungsformen (Aussehen, Vorkommen)
Buchhaltungstypen (Schuldenverwaltung, verantwortliche Rollen)
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
25 | 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, …)
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
26 | 56
Buchhaltungstypen (verantwortliche Rollen)
Techn. Projektleiter
SW-Architekt
Typ 1a: Produkt
Entwicklungsteam
Produktmanager
Product Owner
Typ 1: Projekt
Projektmanager
Hauptverantwortung bei
Entwicklungsteam
Typ 1b: Teamprozesse
Entwicklungsteam
Scrum-Master
Verteilte Verantwortung
Gesamtentwicklungsleiter
Typ 2: ALM
Rahmenprozesse
Produktmanager
Projektmanager
Scrum-Master
Agenda
Einleitung
Kategorien von Technischen Schulden
Best Practices im Umgang mit Technischen Schulden
Tilgen oder Zinsen zahlen?
Technische Schulden im größeren Kontext
Zusammenfassung
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
28 | 56
Best Practice No. 1
Bekannte Probleme in einem Issue Tracker festhalten!
Am besten nach Strategiesorte, Erscheinungsform und Buchhaltungstyp
getrennt!
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
29 | 56
Best Practices I
Erscheinungsform
Implementierung
Buchh.Typ
Analyse
1a
Codereviews, SourcecodeAnalysetool (z.B. Sonar)
-> Metriken
Gegenmaßnahme
Analysierte Probleme
ausbauen, prophylaktisch:
Clean Code Developer
Prinzipien* anwenden
* http://clean-coding-cosmos.de/die-ccd-regeln
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
30 | 56
Best Practices I
Erscheinungsform
Buchh.Typ
Analyse
Gegenmaßnahme
Implementierung
1a
Codereviews, SourcecodeAnalysetool (z.B. Sonar)
-> Metriken
Analysierte Probleme
ausbauen, prophylaktisch:
Clean Code Developer
Prinzipien* anwenden
Architektur
1a
Gute ArchitekturDokumentation (arc42)
(http://www.arc42.de/),
ATAM
Entworfene Architektur
sauber umsetzen, schlechte
Architektur ändern
(http://aim42.org/)
* http://clean-coding-cosmos.de/die-ccd-regeln
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
31 | 56
Best Practices I
Erscheinungsform
Buchh.Typ
Analyse
Gegenmaßnahme
Implementierung
1a
Codereviews, SourcecodeAnalysetool (z.B. Sonar)
-> Metriken
Analysierte Probleme
ausbauen, prophylaktisch:
Clean Code Developer
Prinzipien* anwenden
Architektur
1a
Gute ArchitekturDokumentation (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
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
32 | 56
Best Practices II
Erscheinungsform
Prozessbezogene,
organisatorische und
KommunikationsSchulden
Buchh.Typ
Analyse
1b
Kritische Betrachtung der
Organisationsstruktur und
des Application Lifecycle
Managements (ALM)
2
2
Gegenmaßnahme
Arbeitsabläufe,
Kommunikationswege,
Teamzusammenstellung,
Aufgabenverteilungen, …
ändern
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
33 | 56
Best Practices II
Erscheinungsform
Buchh.Typ
Analyse
Prozessbezogene,
organisatorische und
KommunikationsSchulden
1b
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
2
2
Gegenmaßnahme
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
34 | 56
Best Practices II
Erscheinungsform
Buchh.Typ
Analyse
Prozessbezogene,
organisatorische und
KommunikationsSchulden
1b
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
Werkzeugbezogene
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
2
2
Gegenmaßnahme
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
35 | 56
Best Practices III
Erscheinungsform
Buchh.Typ
Automationsbezogene
Schulden
1b
Analyse
Ist die Kompilierung,
Packetierung, Qualitätssicherung, der Bau des
Release Kanditdaten, das
Deployment, die Installation
automatisiert?
Gegenmaßnahme
Continuous Integration,
Continuous Delivery
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
36 | 56
Best Practices III
Erscheinungsform
Buchh.Typ
Analyse
Gegenmaßnahme
Automationsbezogene
Schulden
1b
Ist die Kompilierung,
Packetierung, Qualitätssicherung, 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
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
37 | 56
Best Practices III
Erscheinungsform
Buchh.Typ
Automationsbezogene
Schulden
1b
Ist die Kompilierung,
Packetierung, Qualitätssicherung, 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
Produktionsbezogene
Schulden
2
Wie gut erfolgt die
Inbetriebnahme? Wie gut
können Fehler in der
Produktion analysiert
werden?
DevOps
(Kommunikation fördern,
gleiche Automationswege
nutzen)
1a
Analyse
Gegenmaßnahme
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
Agenda
Einleitung
Kategorien von Technischen Schulden
Best Practices im Umgang mit Technischen Schulden
Tilgen oder Zinsen zahlen?
Technische Schulden im größeren Kontext
Zusammenfassung
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
39 | 56
Tilgen oder Schulden zahlen?
Ein Qualitätsmodell:
Kostenreduktion
=
Produktivitätsvorteil
=
Nicht-Sanierungskosten
-
Aufwand für
Qualitätsinvestitionen
oder
Kostenreduktion
-
Sanierungskosten
entweder so:
Nach
„Qualitätsinvestitionen statt technischer Schulden“
im OBJEKTspektrum Nr. 5 2014
oder so:
Thementag 05.05.2015, Technische Schulden
40 | 56
Release 1
Release 2
Release 3
Release 4
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?
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
41 | 56
Tilgen oder Schulden zahlen?
Schuldenberge bestaunen hilft alleine nicht weiter!
Deshalb die Empfehlung:
1.
2.
Technische Schulden bewusst machen und festhalten
3.
Umsetzung veranlassen und Ergebnisse von den Verantwortlichen
einfordern
Entscheiden mit welchen Qualitätsinvestitionen der größte Mehrwert
erzielt werden kann und Ressourcen zur Realisierung bereitstellen
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
42 | 56
Tilgungspläne
Legende
Keine Tilgung
Zinsen zahlen
Neue funktionale Änderungen
Schulden tilgen
+ einfaches Regressionstesten
Tilgungsplan A
Release 1
Release 2
Release 3
Tilgungsplan B
Release 4
- Kein funktioneller
Fortschritt
+ kontinuierliche Verbesserung
der inneren Qualität
- Gefahr als Puffer für
funktionale Änderungen
zu dienen
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
43 | 56
Agenda
Einleitung
Kategorien von Technischen Schulden
Best Practices im Umgang mit Technischen Schulden
Tilgen oder Zinsen zahlen?
Technische Schulden im größeren Kontext
Zusammenfassung
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
44 | 56
Rahmenbedingungen
Technische
Schulden
Fehlendes Wissen
Zeitdruck
Mangelnde Kommunikation
Technologischer Fortschritt
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
45 | 56
Langfristig denken
ERROR
Langfristiges Risiko ignorieren
Assure internal quality !
Deliver in time !
Keep to the budget!
Hauptsache
mein
Projekt läuft
gut.
Ob Schrott
entsteht,
ist egal.
Projekt-Manager
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
47 | 56
Wer ist hier der Boss?
Technische
Schulden?
Risiko!
Kurzfristig
gut!
Langfristig
schlecht!
Innere
Qualität!
Produktmanager
Chance!
Time und
Budget!
Projektmanager
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
48 | 56
Funktionalität
Usability
Zuverlässigkeit
Sicherheit
Wartbarkeit
Äußere
Qualität
Performanz
ReleasePortabilität
management
Deployment
Kompatibilität
Testbarkeit
Modifizierbarkeit
Architektur
Design
Ressourceneffizienz
Technologie
Architektur
Design
Code
Technologie
Code
Thementag 25.11.2014, Technische Schulden
Quelle : http://www.dadalos-d.org/frieden/images/eisberg-modell.jpg
Innere
49 | 56
Qualität
Technische Schulden kurzfristig zurückzahlen
Variante 1
(Sichtbarer Kredit)
Variante 2
(Verdeckter Kredit)
Release 1
Zeit
Release 2
Komplexität beherrschen
Zitate von
Ward Cunningham
1992
Komplexität
in der Software
Langfristiges Risiko:
“…can be brought to a stand-still under the debt load…”
Effizienz in der
Softwareentwicklung
Mittelfristige Kosten:
“…not-quite-right code counts as interest…”
Best Practices
Technische Schulden i.w.S.
Kurzfristige Chance:
“A little debt speeds development..”
Zeitgewinn
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
51 | 56
Agenda
Einleitung
Kategorien von Technischen Schulden
Best Practices im Umgang mit Technischen Schulden
Tilgen oder Zinsen zahlen?
Technische Schulden im größeren Kontext
Zusammenfassung
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
52 | 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
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
53 | 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
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
54 | 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-atechnical-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-onpremise/anwendungen/articles/459751/index3.html
http://jaxenter.de/artikel/Umgang-mit-technischen-Schulden-166985
http://clean-coding-cosmos.de/techdebts-1
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
55 | 56
Fragen
Thementag 05.05.2015, Technische Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |
Im größeren Kontext | Schlussteil
56 | 56
WWW.IKS-GMBH.COM
Projekte. Beratung. Spezialisten.
Thementag 05.05.2015, Technische Schulden
58 | 56