Thementag 05.05.2015, Technische Schulden 1 | 58
Projekte. Beratung. Spezialisten.
Technische Schulden:
IKS-Thementag
05.0...
Thementag 05.05.2015, Technische Schulden 2 | 58
Definition 1
„Technische Schuld oder Technische Schulden (engl. technical...
Auf der Baustelle
arbeiten
Schick machen
Refactoring
First Time Code
Not-Quite-Right Code
Auf der Baustelle
arbeiten
Clean...
Ward Cunningham:
“A little debt speeds development..”
Altlasten als langfristige Kostentreiber
Zeit
Summe
realisierter
Fea...
Grundidee
“Shipping first time code” Schulden
“It is paid back” Tilgung
“Every minute spent on not-quite-right code” Zinse...
Thementag 05.05.2015, Technische Schulden 6 | 58
Strategisches Design
1. Niedrige Zinsen nutzen 2. Aktuelle Marktvorteile ...
Thementag 05.05.2015, Technische Schulden 7 | 58
Grenzen der Metapher
Schuldenfreie Softwareentwicklung gibt es nicht
Bei ...
Thementag 05.05.2015, Technische Schulden 8 | 58
Definition 2
A) Technische Schuld im engeren Sinne ist die Summe aller De...
Thementag 05.05.2015, Technische Schulden 9 | 58
Agenda
Einleitung
Kategorien von Technischen Schulden
Best Practices im U...
Thementag 05.05.2015, Technische Schulden 10 | 58
Kategorien von Technischen Schulden
Bewusstseinsarten (Motivation, Einst...
Thementag 05.05.2015, Technische Schulden 11 | 58
Bewusstseinsarten (Motivation, Einstellung)
Konsequenzen und Gegenmaßnah...
Thementag 05.05.2015, Technische Schulden 12 | 58
Bewusstseinsarten (Motivation, Einstellung)
http://martinfowler.com/blik...
Thementag 05.05.2015, Technische Schulden 13 | 58
Kategorien von Technischen Schulden
Bewusstseinsarten (Motivation, Einst...
Thementag 05.05.2015, Technische Schulden 14 | 58
Strategiesorten (Ziele, Planung)
Taktische Kurzzeit-Schulden
Bewusste Sc...
Thementag 05.05.2015, Technische Schulden 15 | 58
Strategiesorten (Ziele, Planung)
Langzeit-Schulden Kurzzeit-Schulden
Gro...
Thementag 05.05.2015, Technische Schulden 16 | 58
Kategorien von Technischen Schulden
Bewusstseinsarten (Motivation, Einst...
Thementag 05.05.2015, Technische Schulden 17 | 58
Erscheinungsformen (Aussehen, Vorkommen)
Persönliche
Schulden
Organisato...
Thementag 05.05.2015, Technische Schulden 18 | 58
Persönliche Schulden
z. B. mangelnde Motivation der Akteure Neues zu ler...
Thementag 05.05.2015, Technische Schulden 19 | 58
Erscheinungsformen (Aussehen, Vorkommen)
Persönliche
Schulden
Organisato...
Praktische Schulden
z. B. nicht aus gemachten Fehlern lernen
Werkzeug-bezogene Schulden
z. B. zu großer Wildwuchs an einge...
Erscheinungsformen (Aussehen, Vorkommen)
Persönliche
Schulden
Organisatorische
Schulden
Prozess-bezogene
Schulden
Werkzeug...
Thementag 05.05.2015, Technische Schulden 22 | 58
Kommunikationsschulden
Unzureichende Kommunikation und Zusammenarbeit zw...
Thementag 05.05.2015, Technische Schulden 23 | 58
Erscheinungsformen (Aussehen, Vorkommen)
Persönliche
Schulden
Organisato...
Thementag 05.05.2015, Technische Schulden 24 | 58
Produktions-bezogene Schulden
z. B. mangelnde Analysierbarkeit (Logging,...
Erscheinungsformen (Aussehen, Vorkommen)
Persönliche
Schulden
Organisatorische
Schulden
Prozess-bezogene
Schulden
Werkzeug...
Thementag 05.05.2015, Technische Schulden 26 | 58
Kategorien von Technischen Schulden
Bewusstseinsarten (Motivation, Einst...
Thementag 05.05.2015, Technische Schulden 27 | 58
Buchhaltungstypen (Schuldenverwaltung)
Produkt-bezogene „Schuldenbücher“...
Buchhaltungstypen (verantwortliche Rollen)
Rahmenprozesse
Hauptverantwortung bei
Entwicklungsteam
Verteilte Verantwortung
...
Thementag 05.05.2015, Technische Schulden 29 | 58
Agenda
Einleitung
Kategorien von Technischen Schulden
Best Practices im ...
Thementag 05.05.2015, Technische Schulden 30 | 58
Best Practice No. 1
Bekannte Probleme in einem Issue Tracker festhalten!...
Thementag 05.05.2015, Technische Schulden 31 | 58
Best Practices I
Erscheinungs-
form
Buchh.-
Typ
Analyse Gegenmaßnahme
Im...
Thementag 05.05.2015, Technische Schulden 32 | 58
Best Practices I
Erscheinungs-
form
Buchh.-
Typ
Analyse Gegenmaßnahme
Im...
Thementag 05.05.2015, Technische Schulden 33 | 58
Best Practices I
Erscheinungs-
form
Buchh.-
Typ
Analyse Gegenmaßnahme
Im...
Thementag 05.05.2015, Technische Schulden 34 | 58
Best Practices II
Erscheinungs-
form
Buchh.-
Typ
Analyse Gegenmaßnahme
P...
Thementag 05.05.2015, Technische Schulden 35 | 58
Best Practices II
Erscheinungs-
form
Buchh.-
Typ
Analyse Gegenmaßnahme
P...
Thementag 05.05.2015, Technische Schulden 36 | 58
Best Practices II
Erscheinungs-
form
Buchh.-
Typ
Analyse Gegenmaßnahme
P...
Thementag 05.05.2015, Technische Schulden 37 | 58
Best Practices III
Erscheinungs-
form
Buchh.-
Typ
Analyse Gegenmaßnahme
...
Thementag 05.05.2015, Technische Schulden 38 | 58
Best Practices III
Erscheinungs-
form
Buchh.-
Typ
Analyse Gegenmaßnahme
...
Best Practices III
Erscheinungs-
form
Buchh.-
Typ
Analyse Gegenmaßnahme
Automations-
bezogene
Schulden
1b Ist die Kompilie...
Thementag 05.05.2015, Technische Schulden 40 | 58
Agenda
Einleitung
Kategorien von Technischen Schulden
Best Practices im ...
Thementag 05.05.2015, Technische Schulden 41 | 58
Tilgen oder Schulden zahlen?
Ein Qualitätsmodell:
oder
-=Kosten-
redukti...
Thementag 05.05.2015, Technische Schulden 42 | 58
Tilgen oder Schulden zahlen?
Es geht um das „Mindset Qualitätsinvestitio...
Thementag 05.05.2015, Technische Schulden 43 | 58
Tilgen oder Schulden zahlen?
Schuldenberge bestaunen hilft alleine nicht...
Thementag 05.05.2015, Technische Schulden 44 | 58
Tilgungspläne
Release 1 Release 2 Release 3 Release 4
Keine Tilgung
Tilg...
Thementag 05.05.2015, Technische Schulden 45 | 58
Agenda
Einleitung
Kategorien von Technischen Schulden
Best Practices im ...
Thementag 05.05.2015, Technische Schulden 46 | 58
Technische
Schulden
Rahmenbedingungen
Zeitdruck
FehlendesWissen
Mangelnd...
Langfristig denken
ERROR
Thementag 05.05.2015, Technische Schulden 48 | 58
Langfristiges Risiko ignorieren
Hauptsache
mein
Projekt läuft
gut.
Proje...
Thementag 05.05.2015, Technische Schulden 49 | 58
Wer ist hier der Boss?
Produktmanager Projektmanager
Chance!Risiko!
Kurz...
Thementag 25.11.2014, Technische Schulden 50 | 56
Architektur
Design
Technologie
Code
Architektur
Design
Technologie
Code
...
Technische Schulden kurzfristig zurückzahlen
Variante 2
(Verdeckter Kredit)
Variante 1
(Sichtbarer Kredit)
Release 1 Zeit ...
Thementag 05.05.2015, Technische Schulden 52 | 58
Komplexität beherrschen
Komplexität
in der Software
Effizienz in der
Sof...
Thementag 05.05.2015, Technische Schulden 53 | 58
Agenda
Einleitung
Kategorien von Technischen Schulden
Best Practices im ...
Thementag 05.05.2015, Technische Schulden 54 | 58
Zusammenfassung
Die Metapher „Technische Schulden“ ist und bleibt trotz ...
Thementag 05.05.2015, Technische Schulden 55 | 58
Fazit
Schulden-Management:
Schulden bewusst machen und festhalten (Issue...
Thementag 05.05.2015, Technische Schulden 56 | 58
Weiterführende Literatur
http://martinfowler.com/bliki/TechnicalDebtQuad...
Thementag 05.05.2015, Technische Schulden 57 | 58
Fragen
Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen...
WWW.IKS-GMBH.COM
Thementag 05.05.2015, Technische Schulden 59 | 58
Projekte. Beratung. Spezialisten.
Nächste SlideShare
Wird geladen in …5
×

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

883 Aufrufe

Veröffentlicht am

Individualsoftware soll viele explizite und implizite Qualitätsanforderungen verschiedener Stakeholder erfüllen. In unserer halbtägigen Veranstaltung beleuchten wir aus Sicht des Managements unterschiedliche Aspekte rund um dieses Thema.

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
883
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
4
Aktionen
Geteilt
0
Downloads
5
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

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

  1. 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. 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. 3. Auf der Baustelle arbeiten Schick machen Refactoring First Time Code Not-Quite-Right Code Auf der Baustelle arbeiten Clean Code
  4. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  21. 21. 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
  22. 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. 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. 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
  25. 25. Erscheinungsformen (Aussehen, Vorkommen) Persönliche Schulden Organisatorische Schulden Prozess-bezogene Schulden Werkzeug-bezogene Schulden Test-bezogene Schulden Praktische Schulden Automations-bezogene Schulden Betriebs-bezogene Schulden AM-bezogene Schulden Fachseite- bezogene Schulden Kommunikations- schulden Implementierungs- schulden Architektur- schulden Produkt-bezogene Schulden Produktions-bezogene Schulden Hauptverantwortung beim Entwicklungsteam Verteilte Verantwortung
  26. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  47. 47. Langfristig denken ERROR
  48. 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. 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. 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. 51. Technische Schulden kurzfristig zurückzahlen Variante 2 (Verdeckter Kredit) Variante 1 (Sichtbarer Kredit) Release 1 Zeit Release 2
  52. 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. 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. 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. 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. 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. 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
  58. 58. WWW.IKS-GMBH.COM
  59. 59. Thementag 05.05.2015, Technische Schulden 59 | 58 Projekte. Beratung. Spezialisten.

×