Mit Best Practices und der Entschlossenheit, die technischen Schulden nicht anwachsen zu lassen, können Entwickler eine solide Geschäftsgrundlage schaffen, insbesondere wenn Personal und Geld knapp sind. [...]
Technische Schulden können geringfügig sein, z. B. kleinere Code-Optimierungen zur Verbesserung der Leistung, der Lesbarkeit des Codes oder anderer Supportfaktoren. Große technische Schulden können veraltete APIs, Anwendungen ohne CI/CD („Continuous Integration and Continuous Delivery“), Dienste mit wenig automatisierten Tests oder Altsysteme sein, die den Betrieb beeinträchtigen.
Unabhängig von der Quelle, Größe und Auswirkung ist es sicher, dass IT-Teams ihre technischen Schulden messen, verwalten und reduzieren müssen. Ebenso wichtig ist es, Maßnahmen zu ergreifen und Best Practices einzusetzen, die helfen, zusätzliche technische Schulden zu vermeiden oder zu begrenzen.
Ruby Raley, Vizepräsidentin bei Axway, ist der Meinung, dass der Abbau und die Bewältigung technischer Schulden heute aufgrund des Fachkräftemangels und der finanziellen Bedingungen noch wichtiger sind. Sie sagt: „Die Notwendigkeit, technische Schulden zu reduzieren, wird für CIOs in den Vordergrund rücken. Aufgrund der Inflation und der Personalprobleme, die durch die große Resignation und das Burnout der Mitarbeiter entstanden sind, müssen sie betriebliche Effizienzsteigerungen finden, um neue Projekte zu finanzieren. Einer dieser Schritte wird die technische Konsolidierung sein, um den Wartungsaufwand zu reduzieren.
Dem kann ich nur zustimmen. Auch wenn es immer eine Herausforderung ist, müssen Entwicklungsteams genügend Zeit aufwenden, um technische Schulden zu reduzieren und auch Schritte unternehmen, um die Einführung neuer Fehlerquellen zu minimieren. Agile Entwicklungsteams und Organisationen, die Devops verfolgen, sollten diese wichtigen Praktiken überdenken und berücksichtigen.
Praktiken zur Vermeidung technischer Schulden in der Entwicklung
John Kodumal, CTO und Mitbegründer von LaunchDarkly, sagt: „Technische Schulden sind bei der Softwareentwicklung unvermeidlich, aber man kann sie bekämpfen, indem man proaktiv vorgeht: Richtlinien, Konventionen und Prozesse einführt, um die Kosten für den Schuldenabbau im Laufe der Zeit zu amortisieren. Das ist viel gesünder, als andere Arbeiten zu stoppen und zu versuchen, sich aus einem Berg von Schulden herauszuwinden.“
Um die Wahrscheinlichkeit der Einführung neuer technischer Schulden zu verringern, sollten Sie die folgenden Best Practices berücksichtigen:
- Standardisieren Sie Benennungskonventionen, Dokumentationsanforderungen und Referenzdiagramme.
- Setzen Sie CI/CD und Testautomatisierung ein, um die Veröffentlichungsfrequenz zu erhöhen und die Qualität zu verbessern.
- Entwickeln Sie Code-Refactoring als Fähigkeiten und Muster, die von mehr Entwicklern praktiziert werden.
- Definieren Sie die Architektur, damit die Entwickler wissen, wo sie Daten, Logik und Erfahrungen coden sollen.
- Führen Sie regelmäßige Code-Reviews durch, um Entwicklern zu helfen, ihre Programmierpraktiken zu verbessern.
Ravi Duddukuru, Chief Product Officer bei DevGraph, ist der Meinung, dass Software Development Manager persönlich mit den Entwicklern zusammenarbeiten müssen, um Best Practices zu verinnerlichen. Er sagt: „Entwickler-Coaching ist der Schlüssel zum Abbau technischer Schulden. Wenn Entwickler dieselben Fehler wiederholen, baut die Qualitätssicherung jedes Mal Umgehungslösungen. Der schlechte Code bleibt und wächst, während der Entwickler neuen Code erstellt.“
Er gibt folgenden Rat: „Ein guter Manager analysiert den Code des Entwicklers, um Muster zu erkennen, und arbeitet mit ihm zusammen, um sie zu ändern, um diesen Code und den gesamten zukünftigen Code zu verbessern und so die technischen Schulden deutlich zu reduzieren.“
Verringerung der Neuverschuldung durch bessere Planung und Schätzung
Auf meine Frage an Andrew Amann, CEO von NineTwoThree Digital Ventures, wie sich technische Schulden reduzieren und minimieren lassen, antwortete er: „Die erste und wichtigste Maßnahme ist die richtige Planung und Schätzung. Zweitens müssen die Verfahren standardisiert werden, um den Zeitaufwand für die Organisation zu begrenzen und mehr Zeit für die Ausführung bereitstellen zu können.“
Die meisten Entwicklungsteams wünschen sich mehr Zeit für die Planung, aber den Produktverantwortlichen, Entwicklungsmanagern oder Führungskräften ist vielleicht nicht klar, wie die Planung dazu beiträgt, technische Schulden zu reduzieren und zu minimieren. Wenn Entwickler Zeit zum Planen haben, besprechen sie oft die Architektur und die Implementierung, und die Diskussionen neigen dazu, sich in technischen Details zu verlieren. Product Owner und Business Stakeholder verstehen diese technischen Diskussionen möglicherweise nicht oder sind nicht daran interessiert.
Wenn Sie also mehr Zeit für die Planung haben möchten, ist es wichtig, dass Sie den Führungskräften ein Feedback zu Ihren Planungsbemühungen geben. Hier sind meine Vorschläge:
- Planen Sie gemeinsame Brainstorming-Sitzungen mit Product Ownern und Business Stakeholdern. Nutzen Sie diese Sitzungen, um mehrere Implementierungsoptionen zu prüfen und Kompromisse zu erörtern, z. B. welche Optionen die technischen Schulden reduzieren und welche zu Wartungs-, Support- oder anderen Schulden führen könnten, die künftige Nacharbeiten erfordern.
- Bei der Schätzung von agilen User Stories mit Story Points sollten die Entwickler die Komplexität und den Aufwand in die Schätzung einbeziehen. Für Stories, die neue technische Schulden verursachen, sollten höhere Schätzungen angesetzt werden, um die zusätzliche Komplexität widerzuspiegeln, die erforderlich ist, um sie später zu beheben.
- Identifizieren Sie Ansätze zur Messung und Verwaltung der technischen Schulden, damit sie nicht nur ein nachträglicher Gedanke sind. Einige Unternehmen kennzeichnen User Stories, Code und andere Artefakte mit technischen Schulden und berechnen dann eine Kennzahl für technische Schulden. Andere legen agile Prinzipien und Governance-Modelle fest, so dass agile Product Owner ihre Prioritäten abwägen, um Schulden zu reduzieren.
Durch die Definition eines Prozesses und die Festlegung von Metriken können Entwicklungsteams die Geschäftssponsoren leichter über die Risiken aufklären, die entstehen, wenn technische Schulden nicht angegangen werden.
Optimierung von Technologien zur Reduzierung von Architekturschulden
Die dreistufigen Web-Architekturen und SQL-Datenbanken des letzten Jahrzehnts haben die Entwicklungsteams in eine enge Struktur gezwängt, die für viele Anwendungen nicht gut geeignet war. Heute haben Sie die Wahl zwischen verschiedenen Cloud-Datenbanken, darunter SQL-, Key-Value-, Columnar-, Graph- oder andere Datenbankarchitekturen. Für Microservices gibt es mehrere Bereitstellungsoptionen, einschließlich serverloser Architekturen, und Entwickler können Benutzererlebnisse in No-Code, Low-Code oder einem der verschiedenen JavaScript-Frameworks erstellen.
Die Auswahl von zu vielen Architekturen und Entwicklungsmustern kann ein Rezept für eine Katastrophe sein, da ihre Pflege erhebliche Entwicklungskenntnisse und Kosten erfordert. Die Beschränkung der Entwicklungsteams auf eine Einheitsarchitektur zwingt sie jedoch häufig dazu, Umgehungslösungen zu entwickeln oder Kompromisse in Bezug auf Benutzerfreundlichkeit, Leistung, Skalierbarkeit oder Sicherheit einzugehen.
Die Auswahl optimaler Technologien erfordert von den Entwicklungsteams auch ein Brainstorming ihrer Implementierungen. Was ist ein optimales Datenmodell? Welchen Grad an Granularität sollten Entwickler in ihre Microservices einbauen? Wie viele Testszenarien sind erforderlich, um die Implementierung zu validieren? Wann bietet eine angepasste Benutzererfahrung einen ausreichenden Geschäftswert im Vergleich zu No-Code- und Low-Code-Implementierungsoptionen?
Wenn Teams diese Designüberlegungen nicht berücksichtigen, ist die Wahrscheinlichkeit größer, dass sie technische Schulden einführen. Um die Risiken neuer technischer Schulden zu minimieren, muss ausreichend Zeit in die Planung, die Auswahl geeigneter Architekturen, die Implementierung von Devops-Automatisierungen und die Weiterentwicklung von Entwicklungsstandards investiert werden.
*Isaac Sacolick ist Präsident von StarCIO und der Autor des Amazon-Bestsellers Driving Digital: The Leader’s Guide to Business Transformation through Technology, der viele Praktiken wie agile Planung, Devops und Data Science behandelt, die für erfolgreiche digitale Transformationsprogramme entscheidend sind. Sacolick ist ein anerkannter Top-Social-CIO und Influencer im Bereich der digitalen Transformation. Er hat mehr als 700 Artikel auf InfoWorld.com, CIO.com, seinem Blog Social, Agile, and Transformation und anderen Websites veröffentlicht.
Be the first to comment