SlideShare una empresa de Scribd logo
1 de 59
Descargar para leer sin conexión
Thementag 05.05.2015, Technische Schulden 1 | 58
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
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
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
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
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
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
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
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.“
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
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
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
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
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
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
Erscheinungsformen (Aussehen, Vorkommen)
Persönliche
Schulden
Organisatorische
Schulden
Prozess-bezogene
Schulden
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 18 | 58
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
Erscheinungsformen (Aussehen, Vorkommen)
Persönliche
Schulden
Organisatorische
Schulden
Prozess-bezogene
Schulden
Test-bezogene
Schulden
Praktische
Schulden
Automations-bezogene
Schulden
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ö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
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 22 | 58
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
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
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 24 | 58
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ö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 05.05.2015, Technische Schulden 26 | 58
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
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
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
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
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
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
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
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
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
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
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
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
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
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 OBJEKTspektrum Nr. 5 2014
Release 1 Release 2 Release 3 Release 4
entweder so:
oder so:
Thementag 05.05.2015, Technische Schulden 42 | 58
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
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
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 Verbesserung
der inneren Qualität
- Gefahr als Puffer für
funktionale Änderungen
zu dienen
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?
| Im größeren Kontext | Schlussteil
Thementag 05.05.2015, Technische Schulden 45 | 58
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
Technische
Schulden
Rahmenbedingungen
Zeitdruck
FehlendesWissen
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
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
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
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
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
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
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
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
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
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
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
Projekte. Beratung. Spezialisten.

Más contenido relacionado

Destacado

Destacado (11)

Einfuehrung in mongo_db_iks
Einfuehrung in mongo_db_iksEinfuehrung in mongo_db_iks
Einfuehrung in mongo_db_iks
 
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
 
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
 
Apps als motor zur digitalen transformation
Apps als motor zur digitalen transformationApps als motor zur digitalen transformation
Apps als motor zur digitalen transformation
 
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?
 
Service goes green
Service goes greenService goes green
Service goes green
 

Similar a Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Technische Schulden
Technische SchuldenTechnische Schulden
Technische SchuldenGerrit Beine
 
Twowayys Agile Sourcing
Twowayys Agile SourcingTwowayys Agile Sourcing
Twowayys Agile SourcingJörg Petters
 
Impact Mapping - strategische Steuerung agiler Entwicklung
Impact Mapping - strategische Steuerung agiler EntwicklungImpact Mapping - strategische Steuerung agiler Entwicklung
Impact Mapping - strategische Steuerung agiler EntwicklungChristian Hassa
 
Datenanalysen in der Softwareentwicklung mit Software Analytics
Datenanalysen in der Softwareentwicklung mit Software AnalyticsDatenanalysen in der Softwareentwicklung mit Software Analytics
Datenanalysen in der Softwareentwicklung mit Software AnalyticsMarkus Harrer
 
Twowayys agile sourcing 20200525 v linkedin
Twowayys agile sourcing 20200525 v linkedinTwowayys agile sourcing 20200525 v linkedin
Twowayys agile sourcing 20200525 v linkedinJonasKlumski
 
Webinar: Zukunftstrends für Consulting und Engineering
Webinar: Zukunftstrends für Consulting und EngineeringWebinar: Zukunftstrends für Consulting und Engineering
Webinar: Zukunftstrends für Consulting und Engineeringbhoeck
 
Twowayys agile sourcing 20200602 v linkedin
Twowayys agile sourcing 20200602 v linkedinTwowayys agile sourcing 20200602 v linkedin
Twowayys agile sourcing 20200602 v linkedinJonasKlumski
 
Twowayys agile sourcing 20200518 v linkedin
Twowayys agile sourcing 20200518 v linkedinTwowayys agile sourcing 20200518 v linkedin
Twowayys agile sourcing 20200518 v linkedinJonasKlumski
 
Agile (Enterprise) Anti-Pattern
Agile (Enterprise) Anti-PatternAgile (Enterprise) Anti-Pattern
Agile (Enterprise) Anti-PatternMichael Brandt
 
Handlungsoptionen bei der Modernisierung von Legacy-Systemen
Handlungsoptionen bei der Modernisierung von Legacy-SystemenHandlungsoptionen bei der Modernisierung von Legacy-Systemen
Handlungsoptionen bei der Modernisierung von Legacy-SystemenOPITZ CONSULTING Deutschland
 
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
 
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
 
DevOps: Revolution im IT Betrieb?
DevOps: Revolution im IT Betrieb?DevOps: Revolution im IT Betrieb?
DevOps: Revolution im IT Betrieb?Digicomp Academy AG
 
Brave New Work - Neue Arbeitswelten: Ausblicke & Auswege
Brave New Work - Neue Arbeitswelten: Ausblicke & AuswegeBrave New Work - Neue Arbeitswelten: Ausblicke & Auswege
Brave New Work - Neue Arbeitswelten: Ausblicke & AuswegeDirkLoop
 
Hays Forum Willms Buhse Web20
Hays Forum Willms Buhse Web20Hays Forum Willms Buhse Web20
Hays Forum Willms Buhse Web20Christoph Goertz
 
Agile (Software-) Prozesse - Quo Vadis? [in German]
Agile (Software-) Prozesse - Quo Vadis? [in German]Agile (Software-) Prozesse - Quo Vadis? [in German]
Agile (Software-) Prozesse - Quo Vadis? [in German]Martin Gaedke
 
Qz Req Eng Ebert Rudorfer 2011 V3
Qz Req Eng Ebert Rudorfer 2011 V3Qz Req Eng Ebert Rudorfer 2011 V3
Qz Req Eng Ebert Rudorfer 2011 V3Arnold Rudorfer
 
Human Change Management
Human Change ManagementHuman Change Management
Human Change ManagementMichael Wyrsch
 

Similar a Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015) (20)

Technische Schulden
Technische SchuldenTechnische Schulden
Technische Schulden
 
Twowayys Agile Sourcing
Twowayys Agile SourcingTwowayys Agile Sourcing
Twowayys Agile Sourcing
 
Impact Mapping - strategische Steuerung agiler Entwicklung
Impact Mapping - strategische Steuerung agiler EntwicklungImpact Mapping - strategische Steuerung agiler Entwicklung
Impact Mapping - strategische Steuerung agiler Entwicklung
 
Datenanalysen in der Softwareentwicklung mit Software Analytics
Datenanalysen in der Softwareentwicklung mit Software AnalyticsDatenanalysen in der Softwareentwicklung mit Software Analytics
Datenanalysen in der Softwareentwicklung mit Software Analytics
 
Xidra 2016 DevOps
Xidra 2016 DevOpsXidra 2016 DevOps
Xidra 2016 DevOps
 
Twowayys agile sourcing 20200525 v linkedin
Twowayys agile sourcing 20200525 v linkedinTwowayys agile sourcing 20200525 v linkedin
Twowayys agile sourcing 20200525 v linkedin
 
Webinar: Zukunftstrends für Consulting und Engineering
Webinar: Zukunftstrends für Consulting und EngineeringWebinar: Zukunftstrends für Consulting und Engineering
Webinar: Zukunftstrends für Consulting und Engineering
 
Twowayys agile sourcing 20200602 v linkedin
Twowayys agile sourcing 20200602 v linkedinTwowayys agile sourcing 20200602 v linkedin
Twowayys agile sourcing 20200602 v linkedin
 
Twowayys agile sourcing 20200518 v linkedin
Twowayys agile sourcing 20200518 v linkedinTwowayys agile sourcing 20200518 v linkedin
Twowayys agile sourcing 20200518 v linkedin
 
Agile (Enterprise) Anti-Pattern
Agile (Enterprise) Anti-PatternAgile (Enterprise) Anti-Pattern
Agile (Enterprise) Anti-Pattern
 
Handlungsoptionen bei der Modernisierung von Legacy-Systemen
Handlungsoptionen bei der Modernisierung von Legacy-SystemenHandlungsoptionen bei der Modernisierung von Legacy-Systemen
Handlungsoptionen bei der Modernisierung von Legacy-Systemen
 
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
 
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: Revolution im IT Betrieb?
DevOps: Revolution im IT Betrieb?DevOps: Revolution im IT Betrieb?
DevOps: Revolution im IT Betrieb?
 
Brave New Work - Neue Arbeitswelten: Ausblicke & Auswege
Brave New Work - Neue Arbeitswelten: Ausblicke & AuswegeBrave New Work - Neue Arbeitswelten: Ausblicke & Auswege
Brave New Work - Neue Arbeitswelten: Ausblicke & Auswege
 
Hays Forum Willms Buhse Web20
Hays Forum Willms Buhse Web20Hays Forum Willms Buhse Web20
Hays Forum Willms Buhse Web20
 
Agile (Software-) Prozesse - Quo Vadis? [in German]
Agile (Software-) Prozesse - Quo Vadis? [in German]Agile (Software-) Prozesse - Quo Vadis? [in German]
Agile (Software-) Prozesse - Quo Vadis? [in German]
 
Qz Req Eng Ebert Rudorfer 2011 V3
Qz Req Eng Ebert Rudorfer 2011 V3Qz Req Eng Ebert Rudorfer 2011 V3
Qz Req Eng Ebert Rudorfer 2011 V3
 
Human Change Management
Human Change ManagementHuman Change Management
Human Change Management
 
BBUSINESS X.0 – KONZEPTDESIGN FÜR DIE DIGITALE ÄRA
BBUSINESS X.0 – KONZEPTDESIGN FÜR DIE DIGITALE ÄRABBUSINESS X.0 – KONZEPTDESIGN FÜR DIE DIGITALE ÄRA
BBUSINESS X.0 – KONZEPTDESIGN FÜR DIE DIGITALE ÄRA
 

Más de IKS Gesellschaft für Informations- und Kommunikationssysteme mbH

Más 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 (IKS-Thementag: 05.05.2015)

  • 1. Thementag 05.05.2015, Technische Schulden 1 | 58 Projekte. Beratung. Spezialisten. Technische Schulden: IKS-Thementag 05.05.2015 Autor: Dr. Reik Oberrath Risiko und Chance für mehr Softwarequalität
  • 2. Thementag 05.05.2015, Technische Schulden 2 | 58 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
  • 3. Auf der Baustelle arbeiten Schick machen Refactoring First Time Code Not-Quite-Right Code 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. 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
  • 6. Thementag 05.05.2015, Technische Schulden 6 | 58 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
  • 7. Thementag 05.05.2015, Technische Schulden 7 | 58 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
  • 8. Thementag 05.05.2015, Technische Schulden 8 | 58 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
  • 9. Thementag 05.05.2015, Technische Schulden 9 | 58 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
  • 10. Thementag 05.05.2015, Technische Schulden 10 | 58 Kategorien von Technischen Schulden Bewusstseinsarten (Motivation, Einstellung) Strategiesorten (Ziele, Planung) Erscheinungsformen (Aussehen, Vorkommen) Buchhaltungstypen (Schuldenverwaltung, Verantwortliche Rollen)
  • 11. Thementag 05.05.2015, Technische Schulden 11 | 58 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.“ 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.“
  • 12. Thementag 05.05.2015, Technische Schulden 12 | 58 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
  • 13. Thementag 05.05.2015, Technische Schulden 13 | 58 Kategorien von Technischen Schulden Bewusstseinsarten (Motivation, Einstellung) Strategiesorten (Ziele, Planung) Erscheinungsformen (Aussehen, Vorkommen) Buchhaltungstypen (Schuldenverwaltung, Verantwortliche Rollen)
  • 14. Thementag 05.05.2015, Technische Schulden 14 | 58 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
  • 15. Thementag 05.05.2015, Technische Schulden 15 | 58 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
  • 16. Thementag 05.05.2015, Technische Schulden 16 | 58 Kategorien von Technischen Schulden Bewusstseinsarten (Motivation, Einstellung) Strategiesorten (Ziele, Planung) Erscheinungsformen (Aussehen, Vorkommen) Buchhaltungstypen (Schuldenverwaltung, Verantwortliche Rollen)
  • 17. Thementag 05.05.2015, Technische Schulden 17 | 58 Erscheinungsformen (Aussehen, Vorkommen) Persönliche Schulden Organisatorische Schulden Prozess-bezogene Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 18. Thementag 05.05.2015, Technische Schulden 18 | 58 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
  • 19. Thementag 05.05.2015, Technische Schulden 19 | 58 Erscheinungsformen (Aussehen, Vorkommen) Persönliche Schulden Organisatorische Schulden Prozess-bezogene Schulden Test-bezogene Schulden Praktische Schulden Automations-bezogene Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 20. 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
  • 22. Thementag 05.05.2015, Technische Schulden 22 | 58 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
  • 23. Thementag 05.05.2015, Technische Schulden 23 | 58 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 Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 24. Thementag 05.05.2015, Technische Schulden 24 | 58 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
  • 26. Thementag 05.05.2015, Technische Schulden 26 | 58 Kategorien von Technischen Schulden Bewusstseinsarten (Motivation, Einstellung) Strategiesorten (Ziele, Planung) Erscheinungsformen (Aussehen, Vorkommen) Buchhaltungstypen (Schuldenverwaltung, Verantwortliche Rollen)
  • 27. Thementag 05.05.2015, Technische Schulden 27 | 58 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
  • 28. 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
  • 29. Thementag 05.05.2015, Technische Schulden 29 | 58 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
  • 30. Thementag 05.05.2015, Technische Schulden 30 | 58 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
  • 31. Thementag 05.05.2015, Technische Schulden 31 | 58 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
  • 32. Thementag 05.05.2015, Technische Schulden 32 | 58 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
  • 33. Thementag 05.05.2015, Technische Schulden 33 | 58 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
  • 34. Thementag 05.05.2015, Technische Schulden 34 | 58 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
  • 35. Thementag 05.05.2015, Technische Schulden 35 | 58 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
  • 36. Thementag 05.05.2015, Technische Schulden 36 | 58 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
  • 37. Thementag 05.05.2015, Technische Schulden 37 | 58 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
  • 38. Thementag 05.05.2015, Technische Schulden 38 | 58 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
  • 39. 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)
  • 40. Thementag 05.05.2015, Technische Schulden 40 | 58 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
  • 41. Thementag 05.05.2015, Technische Schulden 41 | 58 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 OBJEKTspektrum Nr. 5 2014 Release 1 Release 2 Release 3 Release 4 entweder so: oder so:
  • 42. Thementag 05.05.2015, Technische Schulden 42 | 58 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
  • 43. Thementag 05.05.2015, Technische Schulden 43 | 58 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
  • 44. Thementag 05.05.2015, Technische Schulden 44 | 58 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 Verbesserung der inneren Qualität - Gefahr als Puffer für funktionale Änderungen zu dienen Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 45. Thementag 05.05.2015, Technische Schulden 45 | 58 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
  • 46. Thementag 05.05.2015, Technische Schulden 46 | 58 Technische Schulden Rahmenbedingungen Zeitdruck FehlendesWissen Mangelnde Kommunikation Technologischer Fortschritt Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 48. Thementag 05.05.2015, Technische Schulden 48 | 58 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
  • 49. Thementag 05.05.2015, Technische Schulden 49 | 58 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
  • 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. Technische Schulden kurzfristig zurückzahlen Variante 2 (Verdeckter Kredit) Variante 1 (Sichtbarer Kredit) Release 1 Zeit Release 2
  • 52. Thementag 05.05.2015, Technische Schulden 52 | 58 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
  • 53. Thementag 05.05.2015, Technische Schulden 53 | 58 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
  • 54. Thementag 05.05.2015, Technische Schulden 54 | 58 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
  • 55. Thementag 05.05.2015, Technische Schulden 55 | 58 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
  • 56. Thementag 05.05.2015, Technische Schulden 56 | 58 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
  • 57. Thementag 05.05.2015, Technische Schulden 57 | 58 Fragen Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil
  • 59. Thementag 05.05.2015, Technische Schulden 59 | 58 Projekte. Beratung. Spezialisten.