Was ist agile Methodik? Moderne Softwareentwicklung im Überblick

Alle reden von agiler Entwicklung, aber wie funktioniert sie wirklich? Verschaffen Sie sich einen Überblick darüber, wie Teams mit Scrum, Kanban und anderen beliebten agilen Methoden zusammenarbeiten. [...]

(c) pixabay.com

Es ist kaum zu glauben, dass die agile Methodik letztes Jahr offiziell 20 Jahre alt geworden ist. Was einst eine ausgefallene Praxis für Start-ups war, die in kollokierten Räumen mit Stickies und Whiteboards zusammenarbeiteten, ist heute ein ausgeklügeltes, skalierbares und weit verbreitetes Set von agilen Softwareentwicklungsprozessen und -tools.

Die agile Entwicklung hat eine lange Geschichte und es gibt viele Gründe, warum Unternehmen agile Methoden wie Scrum und Kanban einsetzen, um Anwendungen zu modernisieren, die Kundenerfahrung zu verbessern und digitale Transformationen durchzuführen. Darüber hinaus gibt es ein umfangreiches Wissen über diese Methoden und ihre Überschneidungen mit Design Thinking, Produktmanagement und Devops. Immer weniger Menschen fragen heute: „Was ist agil?“ Vielmehr suchen sie nach einer Anleitung, wie sie ihre Teams auf agile Best Practices ausrichten können.

Dieser Artikel ist eine Einführung in die agilen Methoden, beginnend mit Menschen, Teams, Prozessen und Tools. Außerdem erfahren Sie, wie Agilität mit Devops zusammenhängt und welche Best Practices Unternehmen helfen, eine agile Kultur zu pflegen und bessere Software zu liefern.

Rollen in der agilen Methodik

Ein agiler Softwareentwicklungsprozess beginnt immer mit der Definition der Benutzer für ein bestimmtes Produkt und der Dokumentation einer Vision für den Umfang der Probleme, Möglichkeiten und Werte, die angesprochen werden sollen. Der Eigentümer des Produkts erfasst diese Vision und arbeitet mit einem multidisziplinären Team (oder mehreren Teams) zusammen, um sie zu verwirklichen. An einem agilen Entwicklungsprozess sind mehrere Rollen beteiligt.

Benutzer

Ein agiler Prozess beginnt immer mit dem Benutzer oder Kunden im Hinterkopf. Heutzutage definieren wir oft Benutzer-Personas, um verschiedene Workflow-Rollen oder Arten von Kundenbedürfnissen und -verhaltensweisen zu veranschaulichen.

Produkteigentümer (Product Owner)

Der Product Owner hat die Aufgabe, die Stimme des Kunden zu sein, einschließlich aller internen Interessengruppen. Diese Person destilliert Erkenntnisse, Ideen und Feedback, um eine Produktvision zu erstellen. Produktvisionen sind oft kurz und einfach, aber sie zeichnen dennoch ein Bild davon, wer der Kunde oder Nutzer ist, welche Werte angesprochen werden und welche Strategie man verfolgt, um diese anzusprechen. Ich kann mir vorstellen, dass die ursprüngliche Vision von Google in etwa so aussah: „Wir wollen es jedem, der einen Internetzugang hat, leicht machen, relevante Websites und Webseiten zu finden – mit einer einfachen, schlagwortgesteuerten Benutzeroberfläche und einem Algorithmus, der seriöse Quellen in den Suchergebnissen höher einstuft.

Wie auch immer die Vision aussieht, der Product Owner ist dafür verantwortlich, sie zu definieren und dann mit dem Entwicklungsteam zusammenzuarbeiten, um sie in die Tat umzusetzen.

Um mit dem Entwicklungsteam zusammenzuarbeiten, unterteilt der Product Owner die Produktvision in eine Reihe von User Stories. Jede User Story sollte die Zielbenutzer, ihre Herausforderungen, die Gründe für die Notwendigkeit der Lösung und die Einschränkungen und Akzeptanzkriterien für die Lösung aufzeigen. Der Product Owner setzt Prioritäten für diese User Stories und bespricht sie mit dem Team, um sicherzustellen, dass sie ein gemeinsames Verständnis davon haben, was von ihnen verlangt wird.

Software-Entwicklungsteam

Teams sollten multidisziplinär sein und eine vielfältige Gruppe mit den erforderlichen Fähigkeiten und Hintergründen umfassen, um das Projekt zu bewältigen. Zusätzlich zu den Entwicklern sollten agile Entwicklungsteams auch Ingenieure für Qualitätssicherung und Automatisierung, Dateningenieure, UX-Designer (User Experience) und je nach Art des Softwareprojekts auch andere Funktionen umfassen.

Agile Teams konzentrieren sich darauf, funktionierende Software zu liefern. Sie müssen also durchgängig funktionsfähige Anwendungen, Integrationen und andere Leistungen erbringen, die sich auf die Benutzer auswirken – nicht nur die technischen Komponenten. Die Teammitglieder müssen sich darüber einig sein, was sie entwickeln, wer was tut und wie die Software entwickelt wird.

Agilen Teams werden häufig weitere Rollen zugewiesen, darunter die folgenden:

  • Technische Leiter oder Teamleiter arbeiten mit dem Product Owner bei der Architektur, den nicht-funktionalen Akzeptanzkriterien, der Reihenfolge, den Abhängigkeiten und anderen Technologie- und Sicherheitsüberlegungen zusammen. Technische Leiter haben weitreichende Aufgaben, zu denen auch die Abschätzung von Stories und die Planung von Implementierungsdetails zusammen mit dem Team gehören können.
  • Scrum Master coachen oft neue Teams in Bezug auf agile Prozesse, Verantwortlichkeiten und Tools. Zu den Aufgaben eines Scrum Masters kann es gehören, den Fortschritt behindernde Blockaden zu lösen, Ansätze zur Verbesserung der Geschwindigkeit des agilen Teams zu überprüfen und Backlogs zu erstellen.
  • Business-Analysten arbeiten mit dem Product Owner zusammen. Zu den Aufgaben der Analysten gehören häufig die Erstellung von Wireframes, die Dokumentation von User Stories und die Überprüfung von Testergebnissen. Business-Analysten sind besonders hilfreich, wenn Software-Entwicklungsteams Microservices und andere technische Produkte entwickeln und wenn der Business-Analyst über mehr Software-Entwicklungswissen verfügt als der Product Owner.

Die Entscheidung, wie agile Teams besetzt und wie groß sie sein sollen, liegt bei der Unternehmensleitung. Viele folgen der bewährten Praxis von Jeff Bezos, zwei pizzagroße agile Teams zu bilden, um die Zusammenarbeit zwischen den Teammitgliedern zu maximieren.

Scrum und Kanban

Sobald eine Produktvision und ein Team (oder mehrere Teams) die agilen Prinzipien, angefangen mit den Prinzipien im agilen Manifest, übernommen haben muss die Organisation eine Prozessmethodik auswählen. Scrum und Kanban sind die wichtigsten agilen Prozesse.

Manche Organisationen beginnen mit Kanban, weil es relativ einfach zu erklären und umzusetzen ist. Kanban funktioniert als Fan-In- und Fan-Out-Prozess, bei dem das Team User Stories von einem Infoboard holt und sie durch einen Workflow leitet, bis sie als fertig markiert sind.

Viele Unternehmen setzen jedoch Scrum ein, bei dem die Arbeit in sogenannten Sprints organisiert wird, die in der Regel eine oder zwei Wochen dauern. Der Product Owner schreibt die Anforderungen als User Stories und priorisiert sie dann in einem Backlog auf der Grundlage ihres Geschäftswerts. Das Team überprüft den Backlog und legt sich auf die wichtigsten User Stories fest, die es während des Sprints abschließen kann.

Scrum umfasst mehrere Standardmeetings (manchmal auch Scrum-Zeremonien oder Scrum-Rituale genannt), die den Teams helfen, sich auf die Sprint-Prioritäten festzulegen, die Arbeit während des Sprints abzuschließen und jeden Sprint erfolgreich zu beenden. Diese Besprechungen enthalten in der Regel ein paar gemeinsame Elemente:

  • Bei der Sprintplanung teilt der Product Owner die Prioritäten mit, und das Team entscheidet, wie viel Arbeit es während des Sprints erledigen kann.
  • Tägliche Standup-Meetings helfen den Teams, den Status der User Stories zu besprechen; die Teammitglieder teilen ihre täglichen Ziele mit, und jeder kann Blockaden, die den Fortschritt des Teams behindern, eskalieren.
  • Sprint-Reviews sind Meetings am Ende des Sprints, bei denen die Funktionalität dem Product Owner gezeigt wird, um die abgeschlossene Arbeit zu bewerten.
  • In retrospektiven Meetings bespricht das Team, was gut gelaufen ist und was in den Prozessen der agilen Entwicklung und der Softwareentwicklung verbessert werden muss.

Diese Praktiken lassen sich auch auf agile, hybride Arbeitsmodelle übertragen.

Scrum verbessert die Leistung eines Teams, indem es das Team dazu befähigt, sich zu einem erreichbaren Arbeitsumfang zu verpflichten, anstatt dass ein Produkt-, Programm- oder Projektmanager den erwarteten Zeitrahmen und Umfang vorgibt. Die User Story bildet einen Mikrovertrag, der die geschäftlichen Anforderungen und die Akzeptanzkriterien voneinander trennt und es den Teams dann ermöglicht, sich selbst zu organisieren, um die Umsetzung zu erreichen. Sprint-Reviews sind eine Art Feedbackschleife, und die Produktverantwortlichen werden ermutigt, vor jedem Sprint die Prioritäten neu zu setzen und die Anforderungen neu zu definieren. Sprint-Retrospektiven helfen dem Team, die Zusammenarbeit zu verbessern und Prozessverbesserungen zu initiieren.

Technische Best Practices für agile Organisationen

Scrum bildet den grundlegenden Prozess für die Zusammenarbeit, Planung und Lieferung durch Teams, aber es sagt nichts über technische Best Practices, organisatorische Standards oder die Definition und Förderung agiler Kulturen aus.

Zu den technischen Best Practices gehören heute die Definition des Software Development Lifecycle (SDLC) und die Implementierung von Devops-Prozessen. Der SDLC bietet Richtlinien für das Schreiben von Code, die Verwaltung von Software-Assets und die Entwicklung technischer Standards. Devops-Automatisierungen wie CI/CD, Infrastructure as Code (IaC) und kontinuierliche Tests ermöglichen einen zuverlässigeren Weg zur Produktion. Andere Praktiken, wie z. B. Shift-left-Sicherheitspraktiken, beobachtbare Microservices, Feature Flagging, Canary Releases und AIOps, bieten ein flexibleres und zuverlässigeres Bereitstellungsmodell.

Die Kombination aus Selbstorganisation von Teams, agilen Methoden, Devops-Automatisierungen und der Modernisierung zu Cloud-Architekturen hilft Technologieunternehmen, ihre Kultur weiterzuentwickeln. Längere Entwicklungszyklen werden durch kontinuierliche Bereitstellungsmodelle ersetzt, die eine schnellere Freigabe von Funktionen und Verbesserungen ermöglichen. Die Automatisierung schließt viele Lücken zwischen dem Wunsch der Entwickler nach Autonomie und Schnelligkeit und der Verantwortung des Betriebs für Leistung, Zuverlässigkeit und Sicherheit. Die Kombination dieser Praktiken hilft agilen Teams, intelligentere Architekturentscheidungen zu treffen, Experimente voranzutreiben, sich stärker an Daten zu orientieren und Fehler schnell zu korrigieren.

Andere Praktiken wie die Integration von Design Thinking in Scrum, die Implementierung von Wertströmen, die Entwicklung von Produktmanagement-Praktiken und die Umsetzung einer kontinuierlichen Planung helfen agilen Teams bei der Zusammenarbeit mit Kunden, Endbenutzern und Geschäftsinteressenten.

Agile Teams setzen in der Regel Tools wie Jira Software, Azure DevOps und Digital.ai ein, um an agilen Backlogs und Kanban-Boards zusammenzuarbeiten. Diese Tools helfen agilen Teams bei der Priorisierung der Arbeit, der Erfassung von Anforderungen, der Fertigstellung von User Stories, der Überprüfung von Burndown-Berichten und der Automatisierung von Workflows mithilfe von Versionskontrolle, CI/CD und anderen Tools.

Konzeptuelle Rahmenwerke und Leitfäden wie SAFe, Enterprise Scrum, LeSS (Large-Scale Scrum), das Spotify-Modell und StarCIO Agile können dabei helfen, agile Prinzipien, Standards und Praktiken in vielen zusammenarbeitenden Teams zu fördern.

Die meisten Coaches empfehlen, agile Praktiken mit klar definierten Geschäftszielen, einigen ausgewählten Teams und begrenzten, optimal ausgewählten Tools zu beginnen. Die Herausforderung für Unternehmensleiter besteht darin, die richtige Balance zwischen verschiedenen Teams, Selbstorganisationsprinzipien, Standards, Tools und Integrationen zu finden, die es ihren Unternehmen ermöglichen, technologische Fähigkeiten aufzubauen, zu erweitern, zu skalieren und zu pflegen.

*Isaac Sacolick ist Präsident von StarCIO und der Autor des Amazon-Bestsellers Driving Digital: The Leader’s Guide to Business Transformation through Technology, das 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.


Mehr Artikel

Be the first to comment

Leave a Reply

Your email address will not be published.


*