Germany

Warum die Einführung von agilem Vorgehen allein ohne modernes Software-Engineering nicht ausreicht

February 15, 2022

Software-Engineering & Business Agility

Der kürzlich veröffentlichte State of DevOps Report 2021 zeigt die wichtige Verbindung zwischen modernen Software-Engineering-Praktiken und Business Agility. Diejenigen, die den Bericht bereits gelesen haben oder mit dem Buch “Accelerate” von Nicole Forsgren und Jez Humble vertraut sind, wissen, dass laut Forschung die erfolgreichsten Teams bei der technischen Transformation einige gemeinsame Merkmale aufweisen:

  • Hohe Einsatzhäufigkeit
  • Geringe Vorlaufzeit für Änderungen
  • Kurze Zeit bis zur Wiederherstellung der Services
  • Geringe Fehlerquote bei Änderungen

Ein Großteil der Diskussion darüber, wie diese Ziele in Teams erreicht werden können, konzentrierte sich auf die technischen Praktiken, die erforderlich sind, um funktionierenden Code schnell und sicher in Produktionsumgebungen bereitzustellen. Praktiken wie Test Driven Development (TDD), die Überwachung und Messung von Code und lose gekoppelte Architekturen ermöglichen es uns, Probleme oder Bereiche, an denen gearbeitet werden muss, zu isolieren und ohne Auswirkungen auf andere Teile des Systems zu entwerfen, zu programmieren und freizugeben.

Agile Softwareentwicklung – Warum ist das wichtig?

Menschen in nicht-technischen Positionen fragen sich vielleicht, warum das wichtig ist. Warum sollte es sie interessieren, wie oft die Entwickler den Code bereitstellen?

Die Antwort liegt im grundlegenden Vorteil der agilen Arbeitsweise: der Feedbackschleife.

Agile Ansätze ermöglichen es uns, Experimente durchzuführen und schnell aus ihnen zu lernen, damit wir uns an die Bedürfnisse unserer Kunden in einer sich schnell verändernden Landschaft anpassen können. Hier überschneiden sich Business Agility und modernes Software Engineering.

Jedes Element des agilen Ansatzes ist dazu da, eine Feedbackschleife zu ermöglichen. Kurze, iterative Arbeitszyklen, die es uns ermöglichen, schrittweise Wert zu liefern. Stand-ups und Retrospektiven sind dabei wesentliche Methoden, um Rückmeldungen über die Arbeit und den erbrachten Wert zu erhalten. Die kürzest mögliche Feedbackschleife ist ein Gespräch. Aus diesem Grund sind Entwickler-Pairing oder Diskussionen über Geschichten so wertvoll und wirkungsvoll.

Technische Agilität fördert die geschäftliche Agilität

Um ein neues Feature mit Nutzern zu testen, muss sie bestimmte Eigenschaften aufweisen, bevor sie in Betrieb genommen werden kann:

  1. Es muss funktionell sein.
  2. Es muss so klein sein, dass jede Rückmeldung auf dieses Feature begrenzt ist.
  3. Es muss möglich sein das Feature zu veröffentlichen, ohne andere Features zu beinflussen.

Indem wir einen kleinen, durchgängigen Teil des Wertes definieren, können wir diesen dann mit TDD aufbauen, um sicherzustellen, dass er wie erwartet funktioniert. Als Entwickler möchte ich so schnell wie möglich wissen, ob der Code, den ich geschrieben habe, funktioniert. Ich möchte nicht Stunden oder manchmal Tage warten müssen, um die Ergebnisse eines Tests zu erhalten. Anschließend können wir den Code in einer Reihe von Umgebungen einsetzen, in denen Tests durchgeführt werden, um sicherzustellen, dass keine Auswirkungen auf das gesamte System auftreten.

Am Ende dieses Prozesses haben wir eine funktionierende Funktion, die die Kunden nutzen können, und wir können messen und beobachten, wie sie sie nutzen. So erhalten wir ein Feedback, das in den Produktdefinitionsprozess einfließen sollte. Damit Softwareentwicklungsteams auf diese Weise arbeiten können, müssen wir die Arbeit besser definieren.

Technische Agilität fördert agile Arbeitsweisen

Die Fokussierung auf die Bereitstellung kleiner, testbarer Funktionen für den Kunden erfordert die oben erwähnten Änderungen der technischen Praktiken, aber damit diese Praktiken erfolgreich sind, müssen wir die Art und Weise ändern, wie wir das Richtige bauen. Wir müssen hochwertige Arbeiten identifizieren, die in kleinen Chargen geliefert werden können, und unsere Zeit darauf konzentrieren, diese in den Händen der Kunden zum Laufen zu bringen.

Agile Softwareentwicklung monstarlab

Fazit: Agile Softwareentwicklung

Nach langer Arbeit mit Teams, die digitale Produkte entwickeln, habe ich den Eindruck, dass die Einführung agiler Arbeitsweisen oder Methoden wie Scrum ohne die Einführung moderner Software-Engineering-Praktiken wie XP, Devops usw. zu “agilem Theater” führen kann. “Agiles Theater” bedeutet, dass Unternehmen Frameworks einführen, Quartalsplanungen durchführen, tägliche Stand-ups durchführen und die Geschwindigkeit in Diagrammen festhalten, aber dennoch keine Verbesserung ihrer Fähigkeit feststellen, qualitativ hochwertige Software zu liefern. Am Ende dieses Prozesses sieht man das Problem in der Art von Agilität, die man eingeführt hat, und wiederholt den Prozess mit einer anderen Methodik.

Ich habe den Eindruck, dass agile Arbeitsweisen ohne modernes Software-Engineering zwar möglich, aber nicht effektiv sind. Man kann jedoch keine moderne Softwaretechnik ohne die notwendigen agilen Arbeitsmethoden haben, da beide voneinander abhängig sind.

Der State of DevOps-Bericht 2021 zeigt, wie wichtig es ist, Verbesserungen bei der Bereitstellungshäufigkeit und anderen Metriken zu erreichen. Um dies zu erreichen, müssen wir moderne Software-Engineering-Praktiken einführen, die die Einführung agiler Arbeitsweisen fördern.

Referenzen

  1. Dustin Smith and DORA Research, State of DevOps Report, 2021. View here.
  2. Nicole Forsgren and Jez Humble,  Accelerate, 2018. View here.
  3. Dave Farley, This Agile Method Guarantees Results, 2022. View here.
  4. Gary Gruver, Engineering The Digital Transformation, 2019. View here.
  5. Dave Farley, Modern Software Engineering, 2022. View here.

 

Author

Paul Edwards

Paul Edwards

Executive Delivery Director

Monstarlab UK

You may also like

Vr und digitale Pflege Monstarlab

November 09, 2021

Wie Verhaltensforschung das Konzept der digitalen Gesundheitsversorgung verändert

Technologie hat im Gesundheitswesen schon immer eine wichtige Rolle gespielt. Vom allerersten computergestützten Bestellsystem für Ärzte in den 70er Jahren bis hin zur Blockchain-Technologie und Robotik-Prozessautomatisi...

Digitale Transformation Health & Life Science

February 24, 2021

Eine einzigartige digitale Erfahrung für Patient:innen erschaffen

Im Gesundheitswesen steigen mit den Ansprüchen von Patient:innen und Verbraucher:innen auch die Kosten, um diese mit teuren Methoden und Innovationen zu erfüllen. Überall auf der Welt sind die Gesundheitssysteme durch ei...

Digitale Transformation Technologie Health & Life Science