Projekte. Beratung. Spezialisten. Technische Schulden: Risiko und Chance für mehr Softwarequalität IKS-Thementag Autor: Dr. Reik Oberrath 05.05.2015 Thementag 05.05.2015, Technische Schulden 1 | 56 Definition 1 „Technische Schuld oder Technische Schulden (engl. technical debt) ist eine in der Informatik gebräuchliche Metapher für die möglichen Konsequenzen schlechter technischer Umsetzung von Software… Der Begriff … wird von Informatikern … verwendet, um Managern … klarzumachen, dass die Hintanstellung von Maßnahmen zur Sicherung … technischer Qualität die Softwareentwicklung … verlangsamt…“ http://de.wikipedia.org/wiki/Technische_Schuld “Shipping going into debt. A little debtdebt speeds development so long “Shippingfirst firsttime timecode codeis islike like going into debt. A little speeds development so as like going into debt. it is paid long as itback…” is paid back… Every minute minute spent spent on on not-quite-right not-quite-right code counts as interest on that debt.” Entire engineering organizations can be brought to a stand-still under the debt load…” Ward Cunningham: The WyCash Portfolio Management System. In: OOPSLA '92 Experience Report. 26. März 1992 Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 2 | 56 Auf der Baustelle arbeiten Schick machen Auf der Baustelle arbeiten Refactoring First Time Code Not-Quite-Right Code Clean Code Altlasten als langfristige Kostentreiber Mit Refactoring Summe realisierter Feature Verlorene Ressourcen Mit Technischen Schulden Amortisierungsgrenze Ward Cunningham: “A little debt speeds development..” Zeit Ward Cunningham: “…stand-still under the debt load…” Nach http://martinfowler.com/bliki/DesignStaminaHypothesis.html Grundidee “Shipping first time code” Schulden “It is paid back” Tilgung “Every minute spent on not-quite-right code” Zinsen “Stand-still under the debt load”… Bankrott 500 Mrd $ * Bildnachweis: http://www.wissen.de/redewendung/ein-klotz-am-bein-sein-2013-05-17 * Vom Marktforschungsunternehmen Gartner geschätzt für aktuellen den globalen IT-Altlastenberg ** Vom Wirtschaftsprüfungsunternehmen Deloitte geschätzt für Sourcecode-Fehlersuche in 2012 siehe http://www.datacenter-insider.de/software-on-premise/anwendungen/articles/459751/index3.html Strategisches Design 1. Niedrige Zinsen nutzen 2. Aktuelle Marktvorteile nutzen Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 6 | 56 Grenzen der Metapher Schuldenfreie Softwareentwicklung gibt es nicht Bei wem macht man Technische Schulden? Wer ist die Bank? Technische Schulden erlöschen nach dem Betrieb der Software Technische Schulden werden nicht in vielen kleinen verbindlichen Raten zurückgezahlt Viele Technische Schulden entstehen unbewusst, echte Schulden aber i.d.R. halbbewusst oder ganz bewusst Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 7 | 56 Definition 2 A) Technische Schuld im engeren Sinne ist die Summe aller Defizite einer Software, für die sich die Akteure bewusst (oder wenigstens halbbewusst) entschieden haben. Siehe https://sites.google.com/site/unclebobconsultingllc/a-mess-is-not-a-technical-debt B) Technische Schuld im weiteren Sinne ist die Summe aller Defizite einer Software, also alles, was dem Clean-Code-Gedanken widerspricht. Siehe http://www.clean-code-developer.de/ http://www.clean-coding-cosmos.de/ Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 8 | 56 Agenda Einleitung Kategorien von Technischen Schulden Best Practices im Umgang mit Technischen Schulden Tilgen oder Zinsen zahlen? Technische Schulden im größeren Kontext Zusammenfassung Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 9 | 56 Kategorien von Technischen Schulden 1. 2. 3. 4. Bewusstseinsarten (Motivation, Einstellung) Strategiesorten (Ziele, Planung) Erscheinungsformen (Aussehen, Vorkommen) Buchhaltungstypen (Schuldenverwaltung, verantwortliche Rollen) Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 10 | 56 Bewusstseinsarten (Motivation, Einstellung) Konsequenzen und Gegenmaßnahmen bewusst? Nein „Ok, sauber geht anders, aber über eine saubere Lösung machen wir uns jetzt keine Gedanken. Wir müssen jetzt liefern.“ Schulden bewusst? Ja „Wir verzichten auf die saubere Lösung. Die entstehenden Probleme sind bekannt und werden beherrscht. Wir müssen jetzt liefern.“ Ja Nein Erst im Nachhinein: „Was ist das Problem?“ „Ach so, wenn wir das vorher gewusst hätten, hätten wir die Chance gehabt, das sauber zu erledigen.“ Thementag 05.05.2015, Technische Schulden Nach http://martinfowler.com/bliki/TechnicalDebtQuadrant.html 11 | 56 Bewusstseinsarten (Motivation, Einstellung) Sorglos Kurzsichtig Umsichtig Weitsichtig Bedacht Bewusst Unachtsam Unbewusst http://martinfowler.com/bliki/TechnicalDebtQuadrant.html Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 12 | 56 Kategorien von Technischen Schulden 1. 2. 3. 4. Bewusstseinsarten (Motivation, Einstellung) Strategiesorten (Ziele, Planung) Erscheinungsformen (Aussehen, Vorkommen) Buchhaltungstypen (Schuldenverwaltung, verantwortliche Rollen) Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 13 | 56 Strategiesorten (Ziele, Planung) Ein großes Defizit Viele kleine Defizite Strategische Langzeit-Schulden Unbewusste Schulden Taktische Kurzzeit-Schulden Bewusste Schulden Nach http://www.construx.com/10x_Software_Development/Technical_Debt/ Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 14 | 56 Strategiesorten (Ziele, Planung) Langzeit-Schulden Kurzzeit-Schulden Grobgranular „Wir realisieren kein Continuous Delivery solange der Kunde mit der Auslieferungsdauer zufrieden ist“ „Wir testen jetzt noch unregelmäßig und erkennen viele Fehler zu spät. Ab der übernächsten Auslieferung nutzen wir Continuous Integration.“ Feingranular „Solange wir keine größeren Probleme mit der alten Technologie bekommen, stellen wir unsere Komponenten nicht um.“ „Unser Sourcecode-Analysetool (Sonar) meldet über 100 Probleme in unseren Sourcen. Nach der übernächsten Auslieferung müssen die behoben werden.“ Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 15 | 56 Kategorien von Technischen Schulden 1. 2. 3. 4. Bewusstseinsarten (Motivation, Einstellung) Strategiesorten (Ziele, Planung) Erscheinungsformen (Aussehen, Vorkommen) Buchhaltungstypen (Schuldenverwaltung, verantwortliche Rollen) Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 16 | 56 Erscheinungsformen (Aussehen, Vorkommen) Organisatorische Schulden Prozess-bezogene Schulden Persönliche Schulden Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 17 | 56 Persönliche Schulden z. B. mangelnde Motivation der Akteure Neues zu lernen, auszuprobieren und sich an Neues anzupassen Organisatorische Schulden z. B. veraltete hierarchische Organisationsstrukturen (Gesetz von Conway) Prozess-bezogenen Schulden z. B. Anwendung von veralteten Vorgehensmodellen Mehr Informationen dazu unter http://clean-coding-cosmos.de/techdebts-4 Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 18 | 56 Erscheinungsformen (Aussehen, Vorkommen) Test-bezogene Schulden Automations-bezogene Schulden Praktische Schulden Organisatorische Schulden Prozess-bezogene Schulden Persönliche Schulden Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 19 | 56 Praktische Schulden z. B. nicht aus gemachten Fehlern lernen Werkzeug-bezogene Schulden z. B. zu großer Wildwuchs an eingesetzten Werkzeugen Automations-bezogene Schulden z. B. keine automatische Testausführung (Continuous Integration) Test-bezogene Schulden z. B. unzureichende Testabdeckung der implementierten Funktionalität Mehr Informationen dazu unter http://clean-coding-cosmos.de/techdebts-4 Kommunikationsschulden Unzureichende Kommunikation und Zusammenarbeit zwischen den Akteuren (vor allem zwischen Akteuren verschiedener Phasen im ALM) Application Lifecycle Management Administrator Kundenakzeptanztester Architekt / Entwickler Anforderungsanalyst DomänenExperte Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 21 | 56 Erscheinungsformen (Aussehen, Vorkommen) Test-bezogene Schulden Automations-bezogene Schulden Werkzeug-bezogene Schulden Praktische Schulden Organisatorische Schulden Persönliche Schulden Betriebs-bezogene Schulden AM-bezogene Schulden Fachseitebezogene Schulden Kommunikationsschulden Prozess-bezogene Schulden Produktions-bezogene Schulden Produkt-bezogene Schulden Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil Architekturschulden Implementierungsschulden 22 | 56 Produktions-bezogene Schulden z. B. mangelnde Analysierbarkeit (Logging, Protokollierung, Monitoring) Architekturschulden z. B. mangelnde Berücksichtigung nicht-funktionaler Qualitätskriterien Implementierungsschulden z. B. Code-Vervielfachungen Mehr Informationen dazu unter http://clean-coding-cosmos.de/techdebts-4 Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 23 | 56 Erscheinungsformen (Aussehen, Vorkommen) Test-bezogene Schulden Automations-bezogene Schulden Werkzeug-bezogene Schulden Praktische Schulden Organisatorische Schulden Persönliche Schulden Betriebs-bezogene Schulden AM-bezogene Schulden Fachseitebezogene Schulden Kommunikationsschulden Prozess-bezogene Schulden Produkt-bezogene Schulden Produktions-bezogene Schulden Architekturschulden Implementierungsschulden Hauptverantwortung beim Entwicklungsteam Verteilte Verantwortung Kategorien von Technischen Schulden 1. 2. 3. 4. Bewusstseinsarten (Motivation, Einstellung) Strategiesorten (Ziele, Planung) Erscheinungsformen (Aussehen, Vorkommen) Buchhaltungstypen (Schuldenverwaltung, verantwortliche Rollen) Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 25 | 56 Buchhaltungstypen (Schuldenverwaltung) Produkt-bezogene „Schuldenbücher“: Liste von TODOs und FIXMEs im SourceCode (Code-Tagging-System) Ergebnisse von Sourcecode-Analysetools (z. B. Sonar) Architekturdokumentation (Beschreibung von Schwächen und Risiken) Prozess-bezogene „Schuldenbücher“: „Projektdokumentation“ (Projekt-Handbuch, Retrospektive-Bericht) Dokumentation der „ALM-Architektur“ (Leitfaden für die Unternehmenskultur, Beschreibung der Konzernstruktur) Schuldenkonto: Issue Tracker (Jira, Bugzilla, …) Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 26 | 56 Buchhaltungstypen (verantwortliche Rollen) Techn. Projektleiter SW-Architekt Typ 1a: Produkt Entwicklungsteam Produktmanager Product Owner Typ 1: Projekt Projektmanager Hauptverantwortung bei Entwicklungsteam Typ 1b: Teamprozesse Entwicklungsteam Scrum-Master Verteilte Verantwortung Gesamtentwicklungsleiter Typ 2: ALM Rahmenprozesse Produktmanager Projektmanager Scrum-Master Agenda Einleitung Kategorien von Technischen Schulden Best Practices im Umgang mit Technischen Schulden Tilgen oder Zinsen zahlen? Technische Schulden im größeren Kontext Zusammenfassung Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 28 | 56 Best Practice No. 1 Bekannte Probleme in einem Issue Tracker festhalten! Am besten nach Strategiesorte, Erscheinungsform und Buchhaltungstyp getrennt! Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 29 | 56 Best Practices I Erscheinungsform Implementierung Buchh.Typ Analyse 1a Codereviews, SourcecodeAnalysetool (z.B. Sonar) -> Metriken Gegenmaßnahme Analysierte Probleme ausbauen, prophylaktisch: Clean Code Developer Prinzipien* anwenden * http://clean-coding-cosmos.de/die-ccd-regeln Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 30 | 56 Best Practices I Erscheinungsform Buchh.Typ Analyse Gegenmaßnahme Implementierung 1a Codereviews, SourcecodeAnalysetool (z.B. Sonar) -> Metriken Analysierte Probleme ausbauen, prophylaktisch: Clean Code Developer Prinzipien* anwenden Architektur 1a Gute ArchitekturDokumentation (arc42) (http://www.arc42.de/), ATAM Entworfene Architektur sauber umsetzen, schlechte Architektur ändern (http://aim42.org/) * http://clean-coding-cosmos.de/die-ccd-regeln Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 31 | 56 Best Practices I Erscheinungsform Buchh.Typ Analyse Gegenmaßnahme Implementierung 1a Codereviews, SourcecodeAnalysetool (z.B. Sonar) -> Metriken Analysierte Probleme ausbauen, prophylaktisch: Clean Code Developer Prinzipien* anwenden Architektur 1a Gute ArchitekturDokumentation (arc42) (http://www.arc42.de/), ATAM Entworfene Architektur sauber umsetzen, schlechte Architektur ändern (http://aim42.org/) Persönliche Schulden alle Selbstreflexion Motivation fördern (Fortbildungen, Teamstimmung) * http://clean-coding-cosmos.de/die-ccd-regeln Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 32 | 56 Best Practices II Erscheinungsform Prozessbezogene, organisatorische und KommunikationsSchulden Buchh.Typ Analyse 1b Kritische Betrachtung der Organisationsstruktur und des Application Lifecycle Managements (ALM) 2 2 Gegenmaßnahme Arbeitsabläufe, Kommunikationswege, Teamzusammenstellung, Aufgabenverteilungen, … ändern Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 33 | 56 Best Practices II Erscheinungsform Buchh.Typ Analyse Prozessbezogene, organisatorische und KommunikationsSchulden 1b Kritische Betrachtung der Organisationsstruktur und des Application Lifecycle Managements (ALM) Arbeitsabläufe, Kommunikationswege, Teamzusammenstellung, Aufgabenverteilungen, … ändern Praktische Schulden 1b Selbstreflexion, Retrospektive-Meetings Prozesse verbessern, Fortbildung 2 2 Gegenmaßnahme Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 34 | 56 Best Practices II Erscheinungsform Buchh.Typ Analyse Prozessbezogene, organisatorische und KommunikationsSchulden 1b Kritische Betrachtung der Organisationsstruktur und des Application Lifecycle Managements (ALM) Arbeitsabläufe, Kommunikationswege, Teamzusammenstellung, Aufgabenverteilungen, … ändern Praktische Schulden 1b Selbstreflexion, Retrospektive-Meetings Prozesse verbessern, Fortbildung Werkzeugbezogene Schulden 1b oder 2 Welche Tools haben wir, welche werden vermisst, und welche gibt es überhaupt noch? Tools mit Lizenzen bei Bedarf zu Verfügung stellen 2 2 Gegenmaßnahme Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 35 | 56 Best Practices III Erscheinungsform Buchh.Typ Automationsbezogene Schulden 1b Analyse Ist die Kompilierung, Packetierung, Qualitätssicherung, der Bau des Release Kanditdaten, das Deployment, die Installation automatisiert? Gegenmaßnahme Continuous Integration, Continuous Delivery Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 36 | 56 Best Practices III Erscheinungsform Buchh.Typ Analyse Gegenmaßnahme Automationsbezogene Schulden 1b Ist die Kompilierung, Packetierung, Qualitätssicherung, der Bau des Release Kanditdaten, das Deployment, die Installation automatisiert? Continuous Integration, Continuous Delivery Test-bezogene Schulden 1b Wie sieht die Teststrategie aus? Welche Arten von Tests gibt es? Wie hoch ist die Testabdeckung? Vorgehensweisen wie z.B. TDD und BDD kultivieren, für Automation sorgen Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 37 | 56 Best Practices III Erscheinungsform Buchh.Typ Automationsbezogene Schulden 1b Ist die Kompilierung, Packetierung, Qualitätssicherung, der Bau des Release Kanditdaten, das Deployment, die Installation automatisiert? Continuous Integration, Continuous Delivery Test-bezogene Schulden 1b Wie sieht die Teststrategie aus? Welche Arten von Tests gibt es? Wie hoch ist die Testabdeckung? Vorgehensweisen wie z.B. TDD und BDD kultivieren, für Automation sorgen Betriebs- und Produktionsbezogene Schulden 2 Wie gut erfolgt die Inbetriebnahme? Wie gut können Fehler in der Produktion analysiert werden? DevOps (Kommunikation fördern, gleiche Automationswege nutzen) 1a Analyse Gegenmaßnahme Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil Agenda Einleitung Kategorien von Technischen Schulden Best Practices im Umgang mit Technischen Schulden Tilgen oder Zinsen zahlen? Technische Schulden im größeren Kontext Zusammenfassung Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 39 | 56 Tilgen oder Schulden zahlen? Ein Qualitätsmodell: Kostenreduktion = Produktivitätsvorteil = Nicht-Sanierungskosten - Aufwand für Qualitätsinvestitionen oder Kostenreduktion - Sanierungskosten entweder so: Nach „Qualitätsinvestitionen statt technischer Schulden“ im OBJEKTspektrum Nr. 5 2014 oder so: Thementag 05.05.2015, Technische Schulden 40 | 56 Release 1 Release 2 Release 3 Release 4 Tilgen oder Schulden zahlen? Es geht um das „Mindset Qualitätsinvestitionen“ „… es geht … nicht um stundengenaues Schätzen von Aufwänden“ „Meistens“ reicht es, wenn „Kosten und Nutzen … mit einer Ordinalskala (gering < normal < hoch < sehr hoch) geschätzt werden“ „In vielen Situationen reichen drei Fragen aus, um die Maßnahmen … zu bestimmen:“ 1. Welche Systemkomponenten werden oft geändert und wie ist deren innere Qualität (i. Q.)? 2. Welche Maßnahmen zur Verbesserung der i. Q. bestehen …? 3. Welcher Nutzen steht diesen Investitionen … gegenüber? Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 41 | 56 Tilgen oder Schulden zahlen? Schuldenberge bestaunen hilft alleine nicht weiter! Deshalb die Empfehlung: 1. 2. Technische Schulden bewusst machen und festhalten 3. Umsetzung veranlassen und Ergebnisse von den Verantwortlichen einfordern Entscheiden mit welchen Qualitätsinvestitionen der größte Mehrwert erzielt werden kann und Ressourcen zur Realisierung bereitstellen Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 42 | 56 Tilgungspläne Legende Keine Tilgung Zinsen zahlen Neue funktionale Änderungen Schulden tilgen + einfaches Regressionstesten Tilgungsplan A Release 1 Release 2 Release 3 Tilgungsplan B Release 4 - Kein funktioneller Fortschritt + kontinuierliche Verbesserung der inneren Qualität - Gefahr als Puffer für funktionale Änderungen zu dienen Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 43 | 56 Agenda Einleitung Kategorien von Technischen Schulden Best Practices im Umgang mit Technischen Schulden Tilgen oder Zinsen zahlen? Technische Schulden im größeren Kontext Zusammenfassung Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 44 | 56 Rahmenbedingungen Technische Schulden Fehlendes Wissen Zeitdruck Mangelnde Kommunikation Technologischer Fortschritt Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 45 | 56 Langfristig denken ERROR Langfristiges Risiko ignorieren Assure internal quality ! Deliver in time ! Keep to the budget! Hauptsache mein Projekt läuft gut. Ob Schrott entsteht, ist egal. Projekt-Manager Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 47 | 56 Wer ist hier der Boss? Technische Schulden? Risiko! Kurzfristig gut! Langfristig schlecht! Innere Qualität! Produktmanager Chance! Time und Budget! Projektmanager Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 48 | 56 Funktionalität Usability Zuverlässigkeit Sicherheit Wartbarkeit Äußere Qualität Performanz ReleasePortabilität management Deployment Kompatibilität Testbarkeit Modifizierbarkeit Architektur Design Ressourceneffizienz Technologie Architektur Design Code Technologie Code Thementag 25.11.2014, Technische Schulden Quelle : http://www.dadalos-d.org/frieden/images/eisberg-modell.jpg Innere 49 | 56 Qualität Technische Schulden kurzfristig zurückzahlen Variante 1 (Sichtbarer Kredit) Variante 2 (Verdeckter Kredit) Release 1 Zeit Release 2 Komplexität beherrschen Zitate von Ward Cunningham 1992 Komplexität in der Software Langfristiges Risiko: “…can be brought to a stand-still under the debt load…” Effizienz in der Softwareentwicklung Mittelfristige Kosten: “…not-quite-right code counts as interest…” Best Practices Technische Schulden i.w.S. Kurzfristige Chance: “A little debt speeds development..” Zeitgewinn Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 51 | 56 Agenda Einleitung Kategorien von Technischen Schulden Best Practices im Umgang mit Technischen Schulden Tilgen oder Zinsen zahlen? Technische Schulden im größeren Kontext Zusammenfassung Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 52 | 56 Zusammenfassung Die Metapher „Technische Schulden“ ist und bleibt trotz ihrer Grenzen gut Sie ist hilfreich das Problem „schlechter technischer Umsetzung“ zu veranschaulichen und zu kommunizieren Es gibt Schulden am Produkt, am Teamprozess und am ALM, für die unterschiedliche Rollen verantwortlich sind Es gibt unbewusste, halbbewusste und bewusste Schulden Bewusste Schulden können gezielt verwaltet werden Unbewusste und halbbewusste Schulden bringen ein unbekanntes oder schwer abschätzbares Risiko mit sich Manche Technische Schulden stellen eine große reale Gefahr für Projekte und noch mehr für Produkte dar Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 53 | 56 Fazit Schulden-Management: Schulden bewusst machen und festhalten (Issue Tracker) Mit gezielten Qualitätsinvestitionen risikoreiche Schulden abbauen Schulden-Prophylaxe: Langfristig denken und Schulden vermeiden (nur Notfall-Option) Projektmanager auf messbare innere Qualität verpflichten Doppelt und dreifach prüfen, ob ein möglicher Nutzen mögliche Risiken den verschiedenen Stakeholdern (Produktmanager) wert sind Knowhow der Mitarbeiter und Technologien in der Software nicht zu sehr veralten lassen Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 54 | 56 Weiterführende Literatur http://martinfowler.com/bliki/TechnicalDebtQuadrant.html http://www.clean-code-developer.de http://www.clean-coding-cosmos.de https://sites.google.com/site/unclebobconsultingllc/a-mess-is-not-atechnical-debt http://www.construx.com/10x_Software_Development/Technical_Debt/ http://de.slideshare.net/jeffsch/beyond-technical-debt http://martinfowler.com/bliki/DesignStaminaHypothesis.html http://www.datacenter-insider.de/software-onpremise/anwendungen/articles/459751/index3.html http://jaxenter.de/artikel/Umgang-mit-technischen-Schulden-166985 http://clean-coding-cosmos.de/techdebts-1 Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 55 | 56 Fragen Thementag 05.05.2015, Technische Schulden Einleitung | Mögliche Kategorisierungen | Best Practices | Tilgen oder Schulden zahlen? | Im größeren Kontext | Schlussteil 56 | 56 WWW.IKS-GMBH.COM Projekte. Beratung. Spezialisten. Thementag 05.05.2015, Technische Schulden 58 | 56
© Copyright 2024 ExpyDoc