+ All Categories
Home > Technology > Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

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

Date post: 18-Jul-2015
Category:
Upload: iks-gesellschaft-fuer-informations-und-kommunikationssysteme-mbh
View: 81 times
Download: 4 times
Share this document with a friend
59
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
Transcript
Page 1: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 1 | 58

: Kopiert eine

Klicke mit der Maus an die

Projekte. Beratung. Spezialisten.

Technische Schulden:

IKS-Thementag

05.05.2015

Autor: Dr. Reik Oberrath

Risiko und Chance für mehr Softwarequalität

Page 2: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 2 | 58

: Kopiert eine

Klicke mit der Maus an die

Definition 1

„Technische Schuld oder Technische Schulden (engl. technical debt) ist eine in der

Informatik gebräuchliche Metapher für die möglichen Konsequenzen schlechter

technischer Umsetzung von Software…

Der Begriff … wird von Informatikern … verwendet, um Managern … klarzumachen,

dass die Hintanstellung von Maßnahmen zur Sicherung … technischer Qualität die

Softwareentwicklung … verlangsamt…“

http://de.wikipedia.org/wiki/Technische_Schuld

“Shipping first time code is like going into debt. A little debt speeds development so long as it is paid back…”

Ward Cunningham: The WyCash Portfolio Management System.

In: OOPSLA '92 Experience Report. 26. März 1992

“Shipping first time code is like going into debt. A little debt speeds development so long as it is paid back… Every minute spent on not-quite-right code counts as interest on that debt.”

“Shipping first time code is like going into debt. A little debt speeds development so long as it is paid back… Every minute spent on not-quite-right code counts as interest on that debt. Entire engineering organizations can be brought to a stand-still under the debt load…”

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |

Im größeren Kontext | Schlussteil

Page 3: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Auf der Baustelle

arbeiten

Schick machen

Refactoring

First Time Code

Not-Quite-Right Code

Auf der Baustelle

arbeiten

Clean Code

Page 4: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

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

Page 5: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

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

Page 6: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 6 | 58

: Kopiert eine

Klicke mit der Maus an die

Strategisches Design

1. Niedrige Zinsen nutzen 2. Aktuelle Marktvorteile nutzen

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |

Im größeren Kontext | Schlussteil

Page 7: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 7 | 58

: Kopiert eine

Klicke mit der Maus an die

Grenzen der Metapher

Schuldenfreie Softwareentwicklung gibt es nicht

Bei wem macht man Technische Schulden? Wer ist die Bank?

Technische Schulden erlöschen nach dem Betrieb der Software

Technische Schulden werden nicht in vielen kleinen verbindlichen Raten

zurückgezahlt

Viele Technische Schulden entstehen unbewusst, echte Schulden aber i.d.R.

halbbewusst oder ganz bewusst

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |

Im größeren Kontext | Schlussteil

Page 8: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 8 | 58

: Kopiert eine

Klicke mit der Maus an die

Definition 2

A) Technische Schuld im engeren Sinne ist die Summe aller Defizite einer

Software, für die sich die Akteure bewusst (oder wenigstens halbbewusst)

entschieden haben.

B) Technische Schuld im weiteren Sinne ist die Summe aller Defizite einer

Software, also alles, was dem Clean-Code-Gedanken widerspricht.

Siehe

https://sites.google.com/site/unclebobconsultingllc/a-mess-is-not-a-technical-debt

Siehe

http://www.clean-code-developer.de/

http://www.clean-coding-cosmos.de/

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |

Im größeren Kontext | Schlussteil

Page 9: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 9 | 58

: Kopiert eine

Klicke mit der Maus an die

Agenda

Einleitung

Kategorien von Technischen Schulden

Best Practices im Umgang mit Technischen Schulden

Tilgen oder Zinsen zahlen?

Technische Schulden im größeren Kontext

Zusammenfassung

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?

| Im größeren Kontext | Schlussteil

Page 10: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 10 | 58

: Kopiert eine

Klicke mit der Maus an die

Kategorien von Technischen Schulden

Bewusstseinsarten (Motivation, Einstellung)

Strategiesorten (Ziele, Planung)

Erscheinungsformen (Aussehen, Vorkommen)

Buchhaltungstypen (Schuldenverwaltung, Verantwortliche Rollen)

Page 11: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 11 | 58

: Kopiert eine

Klicke mit der Maus an die

Bewusstseinsarten (Motivation, Einstellung)

Konsequenzen und Gegenmaßnahmenbewusst?

Nein Ja

Schulden bewusst?Nein

Ja

„Was ist das Problem?“

Erst im Nachhinein:

„Ach so, wenn wir das vorher gewusst hätten, hätten wir die Chance gehabt, das sauber zu erledigen.“

Nach http://martinfowler.com/bliki/TechnicalDebtQuadrant.html

„Wir verzichten auf die saubere Lösung. Die entstehenden Probleme sind bekannt und werden beherrscht. Wir müssen jetzt liefern.“

„Ok, sauber geht anders, aber über eine saubere Lösung machen wir uns jetzt keine Gedanken. Wir müssen jetzt liefern.“

Page 12: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 12 | 58

: Kopiert eine

Klicke mit der Maus an die

Bewusstseinsarten (Motivation, Einstellung)

http://martinfowler.com/bliki/TechnicalDebtQuadrant.html

Sorglos

Bedacht

Unachtsam

UmsichtigKurzsichtig

Bewusst

Unbewusst

Weitsichtig

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?

| Im größeren Kontext | Schlussteil

Page 13: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 13 | 58

: Kopiert eine

Klicke mit der Maus an die

Kategorien von Technischen Schulden

Bewusstseinsarten (Motivation, Einstellung)

Strategiesorten (Ziele, Planung)

Erscheinungsformen (Aussehen, Vorkommen)

Buchhaltungstypen (Schuldenverwaltung, Verantwortliche Rollen)

Page 14: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 14 | 58

: Kopiert eine

Klicke mit der Maus an die

Strategiesorten (Ziele, Planung)

Taktische Kurzzeit-Schulden

Bewusste Schulden

Strategische Langzeit-Schulden

Unbewusste Schulden

Viele kleine DefiziteEin großes Defizit

Nach

http://www.construx.com/10x_Software_Development/Technical_Debt/

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?

| Im größeren Kontext | Schlussteil

Page 15: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 15 | 58

: Kopiert eine

Klicke mit der Maus an die

Strategiesorten (Ziele, Planung)

Langzeit-Schulden Kurzzeit-Schulden

Grobgranular

Feingranular

„Wir realisieren kein Continuous

Delivery solange der Kunde mit

der Auslieferungsdauer

zufrieden ist“

„Wir testen jetzt noch un-

regelmäßig und erkennen viele

Fehler zu spät. Ab der über-

nächsten Auslieferung nutzen

wir Continuous Integration.“

„Solange wir keine größeren

Probleme mit der alten

Technologie bekommen, stellen

wir unsere Komponenten nicht

um.“

„Unser Sourcecode-Analysetool

(Sonar) meldet über 100

Probleme in unseren Sourcen.

Nach der übernächsten

Auslieferung müssen die

behoben werden.“

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?

| Im größeren Kontext | Schlussteil

Page 16: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 16 | 58

: Kopiert eine

Klicke mit der Maus an die

Kategorien von Technischen Schulden

Bewusstseinsarten (Motivation, Einstellung)

Strategiesorten (Ziele, Planung)

Erscheinungsformen (Aussehen, Vorkommen)

Buchhaltungstypen (Schuldenverwaltung, Verantwortliche Rollen)

Page 17: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 17 | 58

: Kopiert eine

Klicke mit der Maus an die

Erscheinungsformen (Aussehen, Vorkommen)

PersönlicheSchulden

OrganisatorischeSchulden

Prozess-bezogeneSchulden

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?

| Im größeren Kontext | Schlussteil

Page 18: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 18 | 58

: Kopiert eine

Klicke mit der Maus an die

Persönliche Schulden

z. B. mangelnde Motivation der Akteure Neues zu lernen, auszuprobieren und

sich an Neues anzupassen

Organisatorische Schulden

z. B. veraltete hierarchische Organisationsstrukturen (Gesetz von Conway)

Prozess-bezogenen Schulden

z. B. Anwendung von veralteten Vorgehensmodellen

Mehr Informationen dazu unter http://clean-coding-cosmos.de/techdebts-4

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?

| Im größeren Kontext | Schlussteil

Page 19: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 19 | 58

: Kopiert eine

Klicke mit der Maus an die

Erscheinungsformen (Aussehen, Vorkommen)

PersönlicheSchulden

OrganisatorischeSchulden

Prozess-bezogeneSchulden

Test-bezogeneSchulden

PraktischeSchulden

Automations-bezogeneSchulden

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?

| Im größeren Kontext | Schlussteil

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

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

Page 21: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Erscheinungsformen (Aussehen, Vorkommen)

PersönlicheSchulden

OrganisatorischeSchulden

Prozess-bezogeneSchulden

Werkzeug-bezogeneSchulden

Test-bezogeneSchulden

PraktischeSchulden

Automations-bezogeneSchulden

Betriebs-bezogeneSchulden

AM-bezogeneSchulden

Fachseite-bezogeneSchulden

Kommunikations-schulden

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?

| Im größeren Kontext | Schlussteil

Page 22: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 22 | 58

: Kopiert eine

Klicke mit der Maus an die

Kommunikationsschulden

Unzureichende Kommunikation und Zusammenarbeit zwischen den Akteuren

(vor allem zwischen Akteuren verschiedener Phasen im ALM)

Application Lifecycle Management

Anforderungs-analyst

Domänen-Experte

Architekt /Entwickler

Administrator

Kundenakzeptanz-tester

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?

| Im größeren Kontext | Schlussteil

Page 23: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 23 | 58

: Kopiert eine

Klicke mit der Maus an die

Erscheinungsformen (Aussehen, Vorkommen)

PersönlicheSchulden

OrganisatorischeSchulden

Prozess-bezogeneSchulden

Werkzeug-bezogeneSchulden

Test-bezogeneSchulden

PraktischeSchulden

Automations-bezogeneSchulden

Betriebs-bezogeneSchulden

AM-bezogeneSchulden

Fachseite-bezogeneSchulden

Kommunikations-schulden

Implementierungs-schulden

Architektur-schulden

Produkt-bezogeneSchulden

Produktions-bezogeneSchulden

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?

| Im größeren Kontext | Schlussteil

Page 24: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 24 | 58

: Kopiert eine

Klicke mit der Maus an die

Produktions-bezogene Schulden

z. B. mangelnde Analysierbarkeit (Logging, Protokollierung, Monitoring)

Architekturschulden

z. B. mangelnde Berücksichtigung nicht-funktionaler Qualitätskriterien

Implementierungsschulden

z. B. Code-Vervielfachungen

Mehr Informationen dazu unter http://clean-coding-cosmos.de/techdebts-4

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?

| Im größeren Kontext | Schlussteil

Page 25: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Erscheinungsformen (Aussehen, Vorkommen)

PersönlicheSchulden

OrganisatorischeSchulden

Prozess-bezogeneSchulden

Werkzeug-bezogeneSchulden

Test-bezogeneSchulden

PraktischeSchulden

Automations-bezogeneSchulden

Betriebs-bezogeneSchulden

AM-bezogeneSchulden

Fachseite-bezogeneSchulden

Kommunikations-schulden

Implementierungs-schulden

Architektur-schulden

Produkt-bezogeneSchulden

Produktions-bezogeneSchulden

Hauptverantwortung beim Entwicklungsteam

Verteilte Verantwortung

Page 26: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 26 | 58

: Kopiert eine

Klicke mit der Maus an die

Kategorien von Technischen Schulden

Bewusstseinsarten (Motivation, Einstellung)

Strategiesorten (Ziele, Planung)

Erscheinungsformen (Aussehen, Vorkommen)

Buchhaltungstypen (Schuldenverwaltung, Verantwortliche Rollen)

Page 27: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 27 | 58

: Kopiert eine

Klicke mit der Maus an die

Buchhaltungstypen (Schuldenverwaltung)

Produkt-bezogene „Schuldenbücher“:

Liste von TODOs und FIXMEs im SourceCode (Code-Tagging-System)

Ergebnisse von Sourcecode-Analysetools (z. B. Sonar)

Architekturdokumentation (Beschreibung von Schwächen und Risiken)

Prozess-bezogene „Schuldenbücher“:

„Projektdokumentation“ (Projekt-Handbuch, Retrospektive-Bericht)

Dokumentation der „ALM-Architektur“ (Leitfaden für die

Unternehmenskultur, Beschreibung der Konzernstruktur)

Schuldenkonto:

Issue Tracker (Jira, Bugzilla, …)

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?

| Im größeren Kontext | Schlussteil

Page 28: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

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

Page 29: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 29 | 58

: Kopiert eine

Klicke mit der Maus an die

Agenda

Einleitung

Kategorien von Technischen Schulden

Best Practices im Umgang mit Technischen Schulden

Tilgen oder Zinsen zahlen?

Technische Schulden im größeren Kontext

Zusammenfassung

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |

Im größeren Kontext | Schlussteil

Page 30: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 30 | 58

: Kopiert eine

Klicke mit der Maus an die

Best Practice No. 1

Bekannte Probleme in einem Issue Tracker festhalten!

Am besten nach Strategiesorte, Erscheinungsform und Buchhaltungstyp

getrennt!

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |

Im größeren Kontext | Schlussteil

Page 31: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 31 | 58

: Kopiert eine

Klicke mit der Maus an die

Best Practices I

Erscheinungs-

form

Buchh.-

Typ

Analyse Gegenmaßnahme

Implemen-

tierung

1a Codereviews, Sourcecode-

Analysetool (z.B. Sonar)

-> Metriken

Analysierte Probleme

ausbauen, prophylaktisch:

Clean Code Developer

Prinzipien* anwenden

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |

Im größeren Kontext | Schlussteil

* http://clean-coding-cosmos.de/die-ccd-regeln

Page 32: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 32 | 58

: Kopiert eine

Klicke mit der Maus an die

Best Practices I

Erscheinungs-

form

Buchh.-

Typ

Analyse Gegenmaßnahme

Implemen-

tierung

1a Codereviews, Sourcecode-

Analysetool (z.B. Sonar)

-> Metriken

Analysierte Probleme

ausbauen, prophylaktisch:

Clean Code Developer

Prinzipien* anwenden

Architektur 1a Gute Architektur-

Dokumentation (arc42)

(http://www.arc42.de/),

ATAM

Entworfene Architektur

sauber umsetzen, schlechte

Architektur ändern

(http://aim42.org/)

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |

Im größeren Kontext | Schlussteil

* http://clean-coding-cosmos.de/die-ccd-regeln

Page 33: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 33 | 58

: Kopiert eine

Klicke mit der Maus an die

Best Practices I

Erscheinungs-

form

Buchh.-

Typ

Analyse Gegenmaßnahme

Implemen-

tierung

1a Codereviews, Sourcecode-

Analysetool (z.B. Sonar)

-> Metriken

Analysierte Probleme

ausbauen, prophylaktisch:

Clean Code Developer

Prinzipien* anwenden

Architektur 1a Gute Architektur-

Dokumentation (arc42)

(http://www.arc42.de/),

ATAM

Entworfene Architektur

sauber umsetzen, schlechte

Architektur ändern

(http://aim42.org/)

Persönliche

Schulden

alle Selbstreflexion Motivation fördern

(Fortbildungen,

Teamstimmung)

* http://clean-coding-cosmos.de/die-ccd-regeln

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |

Im größeren Kontext | Schlussteil

Page 34: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 34 | 58

: Kopiert eine

Klicke mit der Maus an die

Best Practices II

Erscheinungs-

form

Buchh.-

Typ

Analyse Gegenmaßnahme

Prozess-

bezogene,

organisa-

torische und

Kommuni-

kations-

Schulden

1b

2

2

Kritische Betrachtung der

Organisationsstruktur und

des Application Lifecycle

Managements (ALM)

Arbeitsabläufe,

Kommunikationswege,

Teamzusammenstellung,

Aufgabenverteilungen, …

ändern

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |

Im größeren Kontext | Schlussteil

Page 35: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 35 | 58

: Kopiert eine

Klicke mit der Maus an die

Best Practices II

Erscheinungs-

form

Buchh.-

Typ

Analyse Gegenmaßnahme

Prozess-

bezogene,

organisa-

torische und

Kommuni-

kations-

Schulden

1b

2

2

Kritische Betrachtung der

Organisationsstruktur und

des Application Lifecycle

Managements (ALM)

Arbeitsabläufe,

Kommunikationswege,

Teamzusammenstellung,

Aufgabenverteilungen, …

ändern

Praktische

Schulden

1b Selbstreflexion,

Retrospektive-Meetings

Prozesse verbessern,

Fortbildung

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |

Im größeren Kontext | Schlussteil

Page 36: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 36 | 58

: Kopiert eine

Klicke mit der Maus an die

Best Practices II

Erscheinungs-

form

Buchh.-

Typ

Analyse Gegenmaßnahme

Prozess-

bezogene,

organisa-

torische und

Kommuni-

kations-

Schulden

1b

2

2

Kritische Betrachtung der

Organisationsstruktur und

des Application Lifecycle

Managements (ALM)

Arbeitsabläufe,

Kommunikationswege,

Teamzusammenstellung,

Aufgabenverteilungen, …

ändern

Praktische

Schulden

1b Selbstreflexion,

Retrospektive-Meetings

Prozesse verbessern,

Fortbildung

Werkzeug-

bezogene

Schulden

1b

oder

2

Welche Tools haben wir,

welche werden vermisst,

und welche gibt es

überhaupt noch?

Tools mit Lizenzen bei

Bedarf zu Verfügung stellen

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |

Im größeren Kontext | Schlussteil

Page 37: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 37 | 58

: Kopiert eine

Klicke mit der Maus an die

Best Practices III

Erscheinungs-

form

Buchh.-

Typ

Analyse Gegenmaßnahme

Automations-

bezogene

Schulden

1b Ist die Kompilierung,

Packetierung, Qualitäts-

sicherung, der Bau des

Release Kanditdaten, das

Deployment, die Installation

automatisiert?

Continuous Integration,

Continuous Delivery

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |

Im größeren Kontext | Schlussteil

Page 38: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 38 | 58

: Kopiert eine

Klicke mit der Maus an die

Best Practices III

Erscheinungs-

form

Buchh.-

Typ

Analyse Gegenmaßnahme

Automations-

bezogene

Schulden

1b Ist die Kompilierung,

Packetierung, Qualitäts-

sicherung, der Bau des

Release Kanditdaten, das

Deployment, die Installation

automatisiert?

Continuous Integration,

Continuous Delivery

Test-bezogene

Schulden

1b Wie sieht die Teststrategie

aus? Welche Arten von Tests

gibt es? Wie hoch ist die

Testabdeckung?

Vorgehensweisen wie z.B.

TDD und BDD kultivieren,

für Automation sorgen

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |

Im größeren Kontext | Schlussteil

Page 39: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

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)

Page 40: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 40 | 58

: Kopiert eine

Klicke mit der Maus an die

Agenda

Einleitung

Kategorien von Technischen Schulden

Best Practices im Umgang mit Technischen Schulden

Tilgen oder Zinsen zahlen?

Technische Schulden im größeren Kontext

Zusammenfassung

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?

| Im größeren Kontext | Schlussteil

Page 41: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 41 | 58

: Kopiert eine

Klicke mit der Maus an die

Tilgen oder Schulden zahlen?

Ein Qualitätsmodell:

oder

-=Kosten-

reduktionProduktivitäts-

vorteil

Aufwand für

Qualitätsinvestitionen

-=Kosten-

reduktionNicht-Sanierungs-

kosten

Sanierungs-

kosten

Nach

„Qualitätsinvestitionen statt technischer Schulden“

im OBJEKTspektrum Nr. 5 2014

Release 1 Release 2 Release 3 Release 4

entweder so:

oder so:

Page 42: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 42 | 58

: Kopiert eine

Klicke mit der Maus an die

Tilgen oder Schulden zahlen?

Es geht um das „Mindset Qualitätsinvestitionen“

„… es geht … nicht um stundengenaues Schätzen von Aufwänden“

„Meistens“ reicht es, wenn „Kosten und Nutzen … mit einer Ordinalskala

(gering < normal < hoch < sehr hoch) geschätzt werden“

„In vielen Situationen reichen drei Fragen aus, um die Maßnahmen … zu

bestimmen:“

1. Welche Systemkomponenten werden oft geändert und wie ist

deren innere Qualität (i. Q.)?

2. Welche Maßnahmen zur Verbesserung der i. Q. bestehen …?

3. Welcher Nutzen steht diesen Investitionen … gegenüber?

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?

| Im größeren Kontext | Schlussteil

Page 43: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 43 | 58

: Kopiert eine

Klicke mit der Maus an die

Tilgen oder Schulden zahlen?

Schuldenberge bestaunen hilft alleine nicht weiter!

Deshalb die Empfehlung:

1. Technische Schulden bewusst machen und festhalten

2. Entscheiden mit welchen Qualitätsinvestitionen der größte Mehrwert

erzielt werden kann und Ressourcen zur Realisierung bereitstellen

3. Umsetzung veranlassen und Ergebnisse von den Verantwortlichen

einfordern

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?

| Im größeren Kontext | Schlussteil

Page 44: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 44 | 58

: Kopiert eine

Klicke mit der Maus an die

Tilgungspläne

Release 1 Release 2 Release 3 Release 4

Keine Tilgung

Tilgungsplan A

Tilgungsplan B

+ einfaches Regressions-testen

- Kein funktioneller Fortschritt

Legende

Zinsen zahlen

Neue funktionale Änderungen

Schulden tilgen

+ kontinuierliche Verbesserungder inneren Qualität

- Gefahr als Puffer für funktionale Änderungenzu dienen

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen?

| Im größeren Kontext | Schlussteil

Page 45: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 45 | 58

: Kopiert eine

Klicke mit der Maus an die

Agenda

Einleitung

Kategorien von Technischen Schulden

Best Practices im Umgang mit Technischen Schulden

Tilgen oder Zinsen zahlen?

Technische Schulden im größeren Kontext

Zusammenfassung

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |

Im größeren Kontext | Schlussteil

Page 46: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 46 | 58

: Kopiert eine

Klicke mit der Maus an die

Technische

Schulden

Rahmenbedingungen

Zeitd

ruck

Feh

lend

es

Wisse

n

Mangelnde Kommunikation

Technologischer Fortschritt

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |

Im größeren Kontext | Schlussteil

Page 47: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Langfristig denken

ERROR

Page 48: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 48 | 58

: Kopiert eine

Klicke mit der Maus an die

Langfristiges Risiko ignorieren

Hauptsache

mein

Projekt läuft

gut.

Projekt-Manager

Deliver in time ! Keep to the budget!

Ob Schrott

entsteht,

ist egal.

Assure internal quality !

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |

Im größeren Kontext | Schlussteil

Page 49: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 49 | 58

: Kopiert eine

Klicke mit der Maus an die

Wer ist hier der Boss?

Produktmanager Projektmanager

Chance!Risiko!

Kurzfristig

gut!

Langfristig

schlecht!

Time und

Budget!Innere

Qualität!

Technische

Schulden?

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |

Im größeren Kontext | Schlussteil

Page 50: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 25.11.2014, Technische Schulden 50 | 56

Architektur

DesignTechnologie

Code

Architektur

DesignTechnologie

Code

Funktionalität

Testbarkeit

Wartbarkeit

Usability Zuverlässigkeit

Modifizierbarkeit

PerformanzSicherheit

Quelle : http://www.dadalos-d.org/frieden/images/eisberg-modell.jpg

Release-

management

Deployment

Ressourceneffizienz

Kompatibilität

Portabilität

Äußere

Qualität

Innere

Qualität

Page 51: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Technische Schulden kurzfristig zurückzahlen

Variante 2(Verdeckter Kredit)

Variante 1(Sichtbarer Kredit)

Release 1 Zeit Release 2

Page 52: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 52 | 58

: Kopiert eine

Klicke mit der Maus an die

Komplexität beherrschen

Komplexität in der Software

Effizienz in der Softwareentwicklung

Technische Schulden i.w.S.Best Practices

Mittelfristige Kosten:

“…not-quite-right code counts as interest…”

Langfristiges Risiko:

“…can be brought to a stand-still under the debt load…”

Kurzfristige Chance:

“A little debt speeds development..”

Zeitgewinn

Zitate von

Ward Cunningham

1992

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |

Im größeren Kontext | Schlussteil

Page 53: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 53 | 58

: Kopiert eine

Klicke mit der Maus an die

Agenda

Einleitung

Kategorien von Technischen Schulden

Best Practices im Umgang mit Technischen Schulden

Tilgen oder Zinsen zahlen?

Technische Schulden im größeren Kontext

Zusammenfassung

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |

Im größeren Kontext | Schlussteil

Page 54: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 54 | 58

: Kopiert eine

Klicke mit der Maus an die

Zusammenfassung

Die Metapher „Technische Schulden“ ist und bleibt trotz ihrer Grenzen gut

Sie ist hilfreich das Problem „schlechter technischer Umsetzung“ zu

veranschaulichen und zu kommunizieren

Es gibt Schulden am Produkt, am Teamprozess und am ALM, für die

unterschiedliche Rollen verantwortlich sind

Es gibt unbewusste, halbbewusste und bewusste Schulden

Bewusste Schulden können gezielt verwaltet werden

Unbewusste und halbbewusste Schulden bringen ein unbekanntes oder

schwer abschätzbares Risiko mit sich

Manche Technische Schulden stellen eine große reale Gefahr für Projekte

und noch mehr für Produkte dar

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |

Im größeren Kontext | Schlussteil

Page 55: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 55 | 58

: Kopiert eine

Klicke mit der Maus an die

Fazit

Schulden-Management:

Schulden bewusst machen und festhalten (Issue Tracker)

Mit gezielten Qualitätsinvestitionen risikoreiche Schulden abbauen

Schulden-Prophylaxe:

Langfristig denken und Schulden vermeiden (nur Notfall-Option)

Projektmanager auf messbare innere Qualität verpflichten

Doppelt und dreifach prüfen, ob ein möglicher Nutzen mögliche Risiken

den verschiedenen Stakeholdern (Produktmanager) wert sind

Knowhow der Mitarbeiter und Technologien in der Software nicht zu sehr

veralten lassen

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |

Im größeren Kontext | Schlussteil

Page 56: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 56 | 58

: Kopiert eine

Klicke mit der Maus an die

Weiterführende Literatur

http://martinfowler.com/bliki/TechnicalDebtQuadrant.html

http://www.clean-code-developer.de

http://www.clean-coding-cosmos.de

https://sites.google.com/site/unclebobconsultingllc/a-mess-is-not-a-

technical-debt

http://www.construx.com/10x_Software_Development/Technical_Debt/

http://de.slideshare.net/jeffsch/beyond-technical-debt

http://martinfowler.com/bliki/DesignStaminaHypothesis.html

http://www.datacenter-insider.de/software-on-

premise/anwendungen/articles/459751/index3.html

http://jaxenter.de/artikel/Umgang-mit-technischen-Schulden-166985

http://clean-coding-cosmos.de/techdebts-1

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |

Im größeren Kontext | Schlussteil

Page 57: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 57 | 58

: Kopiert eine

Klicke mit der Maus an die

Fragen

Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? |

Im größeren Kontext | Schlussteil

Page 58: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

WWW.IKS-GMBH.COM

Page 59: Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)

Thementag 05.05.2015, Technische Schulden 59 | 58

: Kopiert eine

Klicke mit der Maus an die

Projekte. Beratung. Spezialisten.


Recommended