Technische Schulden in der Scrum-Entwicklung verwalten / Sudo Null IT News

Die Scrum-Methodik löst eine beträchtliche Anzahl typischer Softwareentwicklungsprobleme, viele Unternehmen stellen jedoch fest, dass die Beschleunigung der Entwicklung nicht nur mit der Verwendung einiger organisatorischer Paradigmen verbunden ist, sondern auch mit der Tatsache, dass einige Aspekte der Softwareentwicklung in Scrum oft vernachlässigt werden , und insbesondere die Parameter der Langzeitqualität des Softwareprodukts. Allerdings sind solche „Einsparungen“ in einem Großteil der Wirtschaft, in der die langfristige Qualität von Software im Mittelpunkt der Wettbewerbschancen von Unternehmen steht, selten gerechtfertigt. Die technologische Entwicklung von Softwareprodukten und beispielsweise die Bilanzierung und Abschreibung technischer Schulden wirken sich positiv auf eine erhebliche Anzahl von Parametern der langfristigen Softwarequalität aus.

Die Relevanz des Problems der technischen Schulden in Scrum und anderen „agilen“ Paradigmen (SAF, SofS) in der Entwicklung von Softwareentwicklungs-Produktionsprozessen steht außer Zweifel. Die Lösung dieses Problems liegt in mehreren Aspekten gleichzeitig, was sowohl durch die Projektpraxis als auch durch wissenschaftliche Forschung in Russland und der GUS bestätigt wird. Betrachten Sie mehrere Ebenen zur Lösung eines solchen Problems:

  • Die Bilanzierung und Beseitigung technischer Schulden ist eine Aktivität in jedem Sprint, die speziell in der Planung, Demo und Retrospektive besprochen wird. Nur „Technologiesprints“ (in Scrum) oder ganze Trains (in SAF) zu bilden, ist keine Best Practice, sondern eine notwendige Maßnahme;

  • Aufgaben der technologischen Entwicklung und deren Stilllegung. Schulden bilden unabhängige Epics in Product Backlogs und haben unabhängige Bewertungen (Arbeitsintensität, Priorität, Risiken und Verbindungen mit anderen Aufgaben);

  • Das eigentliche Refactoring wird nach Zeitplan durchgeführt, seine Verbindung mit der funktionalen Entwicklung des Systems ist weniger wichtig als die Bequemlichkeit der Verwaltung der Befehlskapazität;

  • Die bewährte Methode besteht darin, unabhängige und langfristige Softwarequalitätsindikatoren in Bezug auf die technologische Entwicklung und deren Außerbetriebnahme herauszugreifen. Schuld anstatt zu versuchen, „technologische Aufgaben und Geschichten“ an funktionale Epen und ihre Qualitäts-/Erfolgsindikatoren zu binden;

  • Interaktion zwischen Geschäftskunden und dem Entwicklungsteam in technischer Hinsicht. schulden sollten in puncto Ziele umfassend und so lange klar sein, bis „technologische Aufgaben und Geschichten“ im Kundenverständnis den richtigen Platz in den Planungsprioritäten finden.

Die oben vorgeschlagene Liste ermöglicht es uns, die folgende Vorstellung von der Arbeit mit technischen Schulden (und allgemeiner mit der technologischen Entwicklung eines Produkts) in Scrum-Projekten zu entwickeln: Die technologische Entwicklung ist nicht weniger wichtig als die funktionale Entwicklung (für die überwiegende Mehrheit der Wirtschaftszweige), die Zeit und das Geld, die für eine solche technologische Entwicklung aufgewendet werden, erfordern die Aufmerksamkeit des Teams und sind ein unverzichtbarer Bestandteil des Softwareentwicklungsprojekts.

Die Berücksichtigung technischer Schulden ist also eine Aktivität in jedem Sprint, die in der Planungsphase beginnt. Ein typisches empfohlenes Vorgehen ist die Bildung von „Technology Epics“, aus denen Geschichten entsprechend der zugewiesenen Kapazität der Teams in Entwicklungssprints fallen. Allgemeine Empfehlungen für die Bildung solcher Epen:

  1. Definieren Sie ein klares Ziel und verknüpfen Sie es mit Produktqualitätsindikatoren in Epics;

  2. Bewahren Sie in jedem Epic ein deterministisches Gleichgewicht zwischen den Story-Komponenten in den folgenden Bereichen: Updates und Beseitigung von Schwachstellen in System- und Anwendungsumgebungen, Implementierung nicht-funktionaler Anforderungen, Refactoring der tatsächlichen Funktionalität, Stabilisierung der Systemqualität (in Bezug auf die Produktqualität ), Verbesserung von Produktionsprozessen usw. ;

  3. Unabhängige Prozessbereiche werden in der Regel separaten Epics zugeordnet, wenn das Projekt eine signifikante Entwicklung in diesen Bereichen erfordert (z. B. CI \ CD oder architektonisches Re-Design). Solche Epics können Geschichten enthalten, die nur die Entwicklung dieser Richtung umsetzen (ohne die in Absatz 2 angegebene Ausgewogenheit der Komponenten);

Betrachten wir einige Beispiele aus der Praxis der SSC-Berater, die die Verwendung fortschrittlicher Ansätze bei der Organisation der technologischen Entwicklung von Softwareprodukten veranschaulichen. Das erste Beispiel ist die Entwicklung eines sicheren Messengers auf Basis des Open Source Signal M. Marlinspike durch ein russisch-chinesisches IT-Unternehmen im Jahr 2018. Ein solches Produkt kombiniert die Fähigkeit, Datenübertragungskanäle für Anrufe und Nachrichten zu verschlüsseln, mit der Fähigkeit, Zahlungstransaktionen in einer aktiv entwickelten Kryptowährung durchzuführen. Offensichtlich erforderte ein solches Produkt neben einer umfangreichen Funktionsentwicklung das Management einer Vielzahl von technologischen Risiken, die vom SSC-Berater identifiziert und klassifiziert wurden. Als Nächstes wurde die Risikoverfolgungstabelle verwendet, um Beziehungen zu identifizieren und eine Reihe von Technologieepen zu erstellen. Für jedes Epic wurde eine Story-Balance in folgender Kombination mit der Kapazität des Teams ermittelt:

  • Aktualisierung der Signal-Version innerhalb des in der Entwicklung befindlichen Produkts – 20 %;

  • Unterstützung für die Aktualisierung anderer Bibliotheken und grundlegender Betriebssysteme (SDK iOS, Android) – 20 %;

  • Refactoring von Blockchain-Interaktionen – 40 %;

  • Andere Geschichten – 20%.

Tech-Epics mit einer solchen Ausgewogenheit der Kapazitäten haben in der Vergangenheit das Risikomanagement und echte Tech-Abschreibungen unterstützt. Schulden während der gesamten aktiven Phase der Produktentwicklung – fast 16 Monate.

Ein weiteres Beispiel aus der Praxis der SSC-Beratung ist die Entwicklung des größten Webportals für Tierhalter im Jahr 2017: In diesem Projekt wurde ein Business Case für das Entwicklungsunternehmen gefunden, eigene Technologie-Epics in SCRUM zu erstellen. Inhaltlich erwiesen sich die Geschichten rund um die Entwicklung von Produktionsprozessen im Entwicklungsteam als am nützlichsten. Konsequenterweise wurden in separaten “technologischen Epen” vorgestellt:

  1. Prozesse und Einsatz von CI\CD-Tools;

  2. Formalisierung von Testprozessen und Durchführung von Unit-Tests;

  3. Formalisierung der Verwendung von UML in der Entwicklung.

Die Bestimmung der Komplexität, des Zeitablaufs und der Risiken, die mit der Entwicklung technologischer Prozesse für die Softwareproduktion in diesem Projekt verbunden sind, ermöglichte es, die erwarteten Parameter der langfristigen Qualität des Webportals in kürzester Zeit und ohne Unterbrechung der Arbeit an der deutlich zu erhöhen Produkt zu verbessern und die Geschwindigkeit der Veröffentlichung neuer funktional bedeutsamer Releases zu erhöhen.

Ein weiteres Beispiel für eine effektive Abschreibung dieser. Schulden im Sprint wird aus der Praxis des spanischen Softwareunternehmens SlavaSoft beschrieben. Im Laufe von drei Jahren Entwicklung eines mobilen Produkts für Fußballprofis im Scrum-Entwicklungsparadigma, während diese außer Betrieb genommen wurden. Schulden, formalisierte „technologische Epen“ und das Gleichgewicht der darin enthaltenen Geschichten wurden verwendet:

  1. Unabhängige „technologische Epen“ ermöglichten Folgendes: CI/CD-Prozesse zu aktualisieren, die Einhaltung der Technologieleitfäden von Google sicherzustellen, Testprozesse auf einer aktualisierten Geräteflotte zu formalisieren;

  2. Gemischte „Tech-Epics“ mit Hilfe von kleinen Geschichten erlaubt:

  • sicherstellen, dass das Produkt immer mit aktualisierten Bibliotheken und Versionen mobiler Betriebssysteme kompatibel ist;

  • Implementieren Sie eine begrenzte Einhaltung der UI \ UX-Leitfäden von Google;

  • führen ein ständiges Refactoring hinsichtlich der Geschäftslogik des Produkts durch.

Geschäftskunden dieses mobilen Produkts bemerkten den hohen technologischen Reifegrad des Produkts und die schnelle Verbesserung der Produktionsprozesse, was der Entwicklung des Produkts und des Geschäfts von SlavaSoft sicherlich zugute kam.

Also das Management der technologischen Entwicklung und insbesondere deren Abschreibung. Schuld in der SCRUM-Entwicklung ist ein formalisierter Prozess, dessen Wert leider noch nicht für jeden Product Owner, Architekten und Geschäftskunden gleichermaßen offensichtlich ist. Zweifellos ist eine Erhöhung der Transparenz dieses Prozesses, auch auf der Grundlage einer regelmäßigen Überwachung speziell ausgewählter Parameter der langfristigen Softwarequalität, notwendig und wirtschaftlich machbar.

Similar Posts

Leave a Reply

Your email address will not be published.