Agile Softwareentwicklung: Methoden, Workflows & Beispiele

By Kate Eby | 18. August 2016

Bei der agilen Softwareentwicklung wird ein iterativer Ansatz für Design und Entwicklung verwendet. In Agile werden umfassende Anforderungen sowie Build- und Testphasen in kleinere Arbeitssegmente unterteilt, sodass die Teams häufiger neue Softwareversionen freigeben können.

In diesem Artikel behandeln wir den Lebenszyklus der agilen Softwareentwicklung und den Workflow, der während einer Iteration durchlaufen wird. Wir stellen Ihnen verschiedene Methoden und Techniken vor, die in der agilen Softwareentwicklung eingesetzt werden, wie zum Beispiel Scrum.

Erfahren Sie, wie einfach es ist, ein Kanban-Board in Smartsheet zu erstellen

Kanban-Boards sind schnell und einfach in Smartsheet in nur zwei Schritten zu erstellen.

Agile Softwareentwicklung im Vergleich zur Wasserfall-Methode

Es gibt keine einheitliche Methodik, die Sie auf alle Projekte anwenden können. Allerdings bewegen sich viele Teams bei der Entwicklung von Software weg von der vorausschauenden Wasserfall-Methode hin zu agilen Softwareentwicklungsmethoden  – wie zum Beispiel Scrum. 

Die herkömmliche Wasserfall-Methode folgt strengen Phasen und hält sich an den ursprünglichen Anforderungs- und Designplan, der zu Beginn des Projekts erstellt wurde. Ein Projektmanager handelt mit dem Kunden Meilensteine, Funktionsumfang und Ressourcen aus und verbringt viel Zeit mit der Planungsphase des Projekts. Dabei arbeitet er normalerweise einen umfassenden Projektplan aus, der vorgibt, welche Ziele wann zu erreichen sind – bis hin zur Fertigstellung des Projekts.

Die Kunden finalisieren die Anforderungen, bevor die lange Entwicklungsphase beginnt. Dabei verfolgt der Projektmanager die Fortschritte des Projekts bei den einzelnen Übergaben nach – und schließlich bis hin zur Lieferung. Wenn alles gut läuft, wird die Software zeit- und budgetgerecht fertiggestellt. 

Die Hauptnachteile dieses Ansatzes sind gut dokumentiert: Er ist nicht anpassungsfähig und es dauert lange, bis eine funktionierende Software geliefert wird. Wenn die Technologie das Spielfeld darstellt und jede Änderung vorantreibt, erfüllt ein sechsmonatiger (oder längerer) Release-Zyklus mit unveränderlichen Anforderungen nicht die Geschäftsbedürfnisse.

Die agile Softwareentwicklung ist das Ergebnis von frustrierenden Erfahrungen mit der herkömmlichen Wasserfall-Methode. Agile ist darauf ausgelegt, dass Änderungen berücksichtigt und die Softwareentwicklung beschleunigt werden können (siehe Werte und Prinzipien im agilen Manifest). In der Regel erleichtert der Projektleiter die Arbeit des Entwicklungsteams, beseitigt Engpässe und hilft dem Team, konzentriert zu bleiben, damit regelmäßig Software-Iterationen bereitgestellt werden können. Dabei geht es weniger um Meilensteine und mehr um Stunden, Funktionsauswahl, Priorisierung und Meetings.

Anders als beim Wasserfall-Modell entscheidet letztendlich das Entwicklungsteam zu Beginn eines Sprints bzw. einer Iteration, was in der vorgegebenen Zeit erreicht werden kann. Auf dieser Basis entwickelt das Team dann eine Reihe von Funktionen und stellt so funktionierende Software bereit, die am Ende des Sprints in einer Produktionsumgebung installiert werden kann. Dank der Flexibilität der agilen Softwareentwicklungsmethoden (z. B. DSDM/Dynamic Systems Development Method) lassen sich die meisten von ihnen nach Bedarf anpassen. So können die Entwicklungsteams den Ablauf auf die Anforderungen des Produkts zuschneiden.

 

Der agile Lebenszyklus in der Softwareentwicklung

Zu den Methoden der agilen Softwareentwicklung bzw. -Systementwicklung zählen Scrum, Kanban, Scrumban, Disciplined Agile 2.0 (disziplinierte agile Entwicklung), adaptive Softwareentwicklung, agile Modellierung, Extreme Programming (XP), Feature Driven Development (FDD/funktionsgesteuerte Entwicklung) und Lean Software Development (LSD/Lean-Softwareentwicklung).

Das übergeordnete Ziel jeder agilen Methode ist es, sich an Veränderungen anzupassen und so schnell wie möglich funktionierende Software zu liefern. Bei jeder Methode gibt es leichte Unterschiede im Hinblick auf die Phasen der Softwareentwicklung. Außerdem kann der Prozessablauf jedes Teams aufgrund der Projekts oder der Situation abweichen, obwohl das Ziel das gleiche ist. So umfasst beispielsweise der vollständige Lebenszyklus der agilen Softwareentwicklung die folgenden Phasen: Konzept, Beginn, Erstellung, Veröffentlichung, Produktion und Einstellung.

Der agile Prozessablauf

Der agile Prozessablauf umfasst mehrere Phasen (Konzept, Beginn, Iteration oder Erstellung, Veröffentlichung, Produktion und Einstellung), die im Folgenden beschrieben werden:

  1. Konzept: Projekte werden geplant, und es werden Prioritäten gesetzt.
  2. Beginn: Es werden Teammitglieder bestimmt, die Finanzierung wird geklärt und es werden die ersten Umgebungen und Anforderungen besprochen.
  3. Iteration oder Erstellung: Das Entwicklungsteam arbeitet an der Bereitstellung funktionierender Software auf der Basis von Iterationsanforderungen und Feedback.
  4. Veröffentlichung: Es werden Tests zur Qualitätssicherung und interne sowie externe Schulungen durchgeführt, die Dokumentation wird erstellt und die Iteration wird in die Produktion aufgenommen.
  5. Produktion: Es wird fortlaufender Softwaresupport bereitgestellt.
  6. Einstellung: Es werden End-of-Life-Vorgänge ausgeführt, etwa die Benachrichtigung und Migration der Kunden.

Es können viele Projekte gleichzeitig laufen, und es können mehrere Sprints/Iterationen für verschiedene Produktlinien aktiv sein. Dabei kann eine Vielzahl von externen und internen Kunden mit unterschiedlichen Geschäftsbedürfnissen involviert sein.

Workflow der agilen Softwareentwicklung

Der Lebenszyklus der agilen Softwareentwicklung wird vom iterativen Prozess dominiert. Bei jeder Iteration erhält das Team das nächste Teil des Entwicklungspuzzles: Software und unterstützende Elemente (z. B. Dokumentation), die den Kunden zur Verfügung stehen, bis die Produktentwicklung abgeschlossen ist. Jede Iteration dauert normalerweise zwischen zwei und vier Wochen und hat einen festen Fertigstellungstermin. Der Iterationsprozess ist methodisch, und der Umfang jeder Iteration ist so gewählt, dass er in der verfügbaren Zeit zu bewältigen ist.

Während des Lebenszyklus der agilen Softwareentwicklung finden mehrere Iterationen statt, und jede folgt ihrem eigenen Arbeitsablauf. Während einer Iteration geben Kunden und Unternehmens-Stakeholder Feedback, um sicherzustellen, dass die Funktionen ihre Anforderungen erfüllen. 

Ein typischer Prozessablauf einer Iteration kann wie folgt aussehen:

  • Anforderungen: Auf der Grundlage des Produkt-Backlogs, des Sprint-Backlogs und des Feedbacks von Kunden und Stakeholdern werden die Anforderungen für die Iteration festgelegt.
  • Entwicklung: Die Software wird anhand der definierten Anforderungen geplant und entwickelt.
  • Tests: Es werden Tests zur Qualitätssicherung und interne sowie externe Schulungen durchgeführt, und die Dokumentation wird erstellt.
  • Lieferung: Die einsatzbereite Iteration wird integriert und in die Produktion aufgenommen.
  • Feedback: Das Feedback von Kunden und Stakeholdern wird geprüft und fließt in die Anforderungen der nächsten Iteration ein.

Workflow-Diagramm für die agile Softwareentwicklung


Sie können zwar im Verlauf des Projekts zusätzliche Funktionen in den Produkt-Backlog aufnehmen, aber der restliche Prozess wiederholt sich, bis der Produkt-Backlog leer ist. Daher ist der Prozessablauf der agilen Softwareentwicklung eher eine Schleife als ein linearer Prozess.

Agile Softwareentwicklung: Scrum-Workflow

Der Scrum-Workflow wird durch eine Reihe von Besprechungen gesteuert, wie unten beschrieben:

Bei der Sprint-Planung wird auf der Grundlage des Produkt-Backlogs festgelegt, welche Aufgaben in einen bevorstehenden Sprint aufgenommen werden.

Ein Daily Scrum ist ein kurzes Meeting, bei dem alle Teilnehmer die folgenden Fragen beantworten:

  • Welche Aufgaben haben Sie gestern erledigt?
  • Welche Aufgaben werden Sie heute erledigen?
  • Mit welchen Hindernissen haben Sie es zu tun?

Der Scrum-Master, der die Meetings leitet, nutzt die gesammelten Daten, um das Burndown-Diagramm zu aktualisieren und nach Möglichkeiten zu suchen, die identifizierten Hindernisse aus dem Weg zu räumen.

Eine Sprint-Überprüfung (Sprint Review) ist ein Meeting, das am Ende jedes Sprints stattfindet, um die abgeschlossenen Aufgaben sowie den Produkt-Backlog zu prüfen, um zu bestimmen, welche Aufgaben noch ausstehen. Bei den Überprüfungen steht das Produkt im Mittelpunkt.

Die Sprint-Retrospektive ist ein Meeting, das am Ende jedes Sprints stattfindet und bei dem besprochen wird, was gut funktioniert hat und was sich verbessern lässt. Bei den Retrospektiven steht der Prozess im Mittelpunkt.
Weitere Informationen zu Scrum finden Sie in unserem umfassenden Leitfaden.

Damit der agile Softwareentwicklungsprozess für Sie funktioniert

Wie bei jeder Methode gibt es Vor- und Nachteile (Informationen zu den Vor- und Nachteilen von Agile lesen). Die agile Methode eignet sich besser in Situationen, in denen Kunden und Projektbeteiligte für Beiträge zur Verfügung stehen, funktionale Teile der Software schnell benötigt werden, Flexibilität zur Anpassung an sich ändernde Anforderungen gewünscht ist und das Team am selben Ort ist und in der Lage ist, effektiv zusammenzuarbeiten. 

Wie bei jeder Veränderung kann die Integration agiler Prozesse in Ihr Unternehmen überwältigend sein. Hier sind vier Aktivitäten, die die Einführung agiler Arbeitsabläufe unterstützen:

  • Tägliche Meetings: Führen Sie regelmäßige oder tägliche Stand-up-Meetings durch, um eine offene Kommunikation zu ermöglichen, Teammitglieder zur Verantwortung zu ziehen und sicherzustellen, dass bei jeder Iteration Fortschritte zu sehen sind.
  • Live-Demonstrationen: Führen Sie das Endprodukt jeder Iteration vor, um den Fortschritt zu präsentieren.
  • Feedback teilen: Bitten Sie Stakeholders und Kunden um Feedback und geben Sie dieses an das gesamte Team weiter, bevor die nächste Iteration beginnt.
  • Agil bleiben: Passen Sie den Prozess auf der Grundlage des Feedbacks an, sodass jede Iteration besser als die vorherige ist.

Optimieren Sie ihre agile Softwareentwicklung mit Smartsheet

From simple task management and project planning to complex resource and portfolio management, Smartsheet helps you improve collaboration and increase work velocity -- empowering you to get more done. 

The Smartsheet platform makes it easy to plan, capture, manage, and report on work from anywhere, helping your team be more effective and get more done. Report on key metrics and get real-time visibility into work as it happens with roll-up reports, dashboards, and automated workflows built to keep your team connected and informed.

When teams have clarity into the work getting done, there’s no telling how much more they can accomplish in the same amount of time. Try Smartsheet for free, today.

 

Verbinden Sie Ihre Mitarbeiter, Prozesse und Tools mit einer einfachen, benutzerfreundlichen Plattform.

Smartsheet kostenlos testen Get a Free Smartsheet Demo