Informatik · Klasse 11–13 · aktualisiert
Agile Softwareentwicklung: Prinzipien und Methoden
Du lernst, wie agile Teams in kurzen Iterationen mit Feedback arbeiten, wie sie sich vom Wasserfall unterscheiden und wann Scrum, Kanban oder XP passen.
0 von 11 Aufgaben gelöst
Kurz gesagt
Agile Softwareentwicklung bedeutet: Das Team baut in kurzen Iterationen früh lauffähige Software und stimmt sie regelmäßig mit dem Kunden ab. Das Wasserfallmodell arbeitet dagegen Phase für Phase nacheinander. Scrum, Kanban und XP sind drei bekannte agile Ansätze mit unterschiedlichen Regeln.
Stell dir vor, ihr baut im Informatikkurs eine App, und erst am Schuljahresende sieht jemand das Ergebnis. Vielleicht ist es dann gar nicht das, was gebraucht wird. Agile Teams zeigen deshalb schon früh lauffähige Stände und fragen nach. Hier lernst du, wie das geht und wann welcher Ansatz passt.
Deine Lernziele
Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Mela das Ziel für dich ab.
3 Abschnitte
Agile Softwareentwicklung (von lateinisch „agilis“, flink, beweglich) will Risiken und Fehlentwicklungen klein halten. Dazu versucht das Team, die Entwurfsphase auf ein Mindestmaß zu reduzieren und so früh wie möglich zu ausführbarer Software zu kommen. Diese Software wird in regelmäßigen, kurzen Abständen mit dem Kunden abgestimmt.
Die Arbeit läuft in Iterationen. In Extreme Programming (XP) dauern Iterationen üblicherweise zwischen einer und vier Wochen. In Scrum heißt der Abschnitt Sprint und dauert ein bis vier Wochen. Am Ende steht ein lauffähiger Zwischenstand. Man nennt das iterativ und inkrementell: Das Produkt wächst Stück für Stück.
Nach einer Iteration schauen sich zum Beispiel der Kunde oder andere Interessierte den aktuellen Stand an und geben Rückmeldungen. Dabei ist es denkbar, dass der Kunde neue Prioritäten setzt oder weitere Ideen einbringt. Außerdem reflektiert das Team in regelmäßigen Abständen, wie es effektiver werden kann, und passt sein Verhalten entsprechend an.
Im Februar 2001 wurden vier Leitsätze im Agilen Manifest formuliert. Funktionierende Software ist wichtiger als umfassende Dokumentationen. Individuen und Interaktionen sind wichtiger als Prozesse und Werkzeuge. Die Zusammenarbeit mit dem Kunden ist wichtiger als Vertragsverhandlungen. Reagieren auf Veränderung ist wichtiger als das Befolgen eines Plans. Die Verfasser finden die jeweils andere Seite auch wichtig, schätzen die genannten Werte aber höher ein.
So überträgst du das auf ein Softwareprojekt: Du teilst es in kurze Abschnitte, lieferst am Ende jedes Abschnitts etwas Lauffähiges und holst Rückmeldung ein. Das Beispiel unten ist ausgedacht.
Definition
Iteration
Eine Iteration ist ein zeitlich und fachlich in sich abgeschlossener Arbeitsabschnitt. Am Ende liegt ein lauffähiger Zwischenstand des Produkts vor, den der Kunde ansehen kann.
Beispiel: Ausgedachtes Beispiel: Vertretungsplan-App einer Schule
- 1Annahme (ausgedacht): Ein Schulteam baut eine App für den Vertretungsplan. Jede Iteration dauert zwei Wochen.
- 2Iteration 1: Die App zeigt nur den Plan einer Klasse, läuft aber schon.
- 3Ende von Iteration 1: Schüler probieren die App aus und wünschen sich eine Suche nach der Klasse.
- 4Iteration 2: Das Team baut die Suche ein und zeigt wieder einen lauffähigen Stand.
- 5Die Rückmeldung bestimmt, was als Nächstes gebaut wird.
Merke: Kurze Iterationen und regelmäßiges Feedback gehören zusammen: Funktionierende Software ist das wichtigste Fortschrittsmaß.
Teste dich
Das Wasserfallmodell ist ein lineares (nicht iteratives) Vorgehensmodell mit aufeinanderfolgenden Projektphasen. Die Ergebnisse einer Stufe „fallen“ in die nächste und sind dort verbindliche Vorgaben. Der Benutzer ist in der Anfangsphase beteiligt. Weitere Änderungen stellen danach Neuaufträge dar. Erweiterungen des einfachen Modells (Wasserfallmodell mit Rücksprung) erlauben ein schrittweises Aufwärtslaufen der Kaskade.
Vorteile des Wasserfallmodells sind die klare Abgrenzung der Phasen, einfache Möglichkeiten der Planung und Kontrolle und eine klare Abschätzung von Kosten und Umfang bei stabilen Anforderungen. Es wird allgemein dort vorteilhaft angewendet, wo sich Anforderungen, Leistungen und Abläufe in der Planungsphase relativ präzise beschreiben lassen.
Nachteile: Es ist unflexibel gegenüber Änderungen. Das frühe Festschreiben der Anforderungen ist oft problematisch, da es eventuell zu teuren Änderungen führt. Das System wird sehr spät eingeführt. Weil das vollständige System auf einmal eingeführt wird, werden Fehler unter Umständen erst spät erkannt. Da größere Softwareprojekte meist eine sehr lange Laufzeit haben, kann die neue Software schon bei der Einführung inhaltlich veraltet sein.
Agile Methoden eignen sich besonders gut, um auf geänderte Anforderungen zu reagieren, da die Entwicklungszyklen in der Regel kurz angelegt sind. Die Anforderungen werden häufig nur knapp beschrieben und erst kurz vor Beginn von Umsetzung und Test ausformuliert. Dafür sind klare inhaltliche Vorgaben (Pflichtenheft) schwierig, da die Anforderungen per Definition erst zur Projektlaufzeit entwickelt werden. Bei XP kann die Fertigstellung eines gewünschten Funktionsumfangs zu einem gesetzten Termin nicht ohne weiteres garantiert werden.
Auch plangetriebene Vorgehensmodelle regeln, wie Änderungen berücksichtigt werden. Der Aufwand und die geforderte Dokumentation sind dabei aber vergleichsweise höher. Agile Methoden sind kein Allheilmittel: Hinderungsgründe wie Interessens- oder Zielkonflikte können für agile genauso wie für traditionelle Verfahren gelten. Für einen begründeten Vergleich nimmst du deshalb Kriterien wie in der Tabelle.
Definition
Sequenziell
Sequenziell heißt: Die Aktivitäten laufen nacheinander ab. Jede Aktivität muss beendet sein, bevor die nächste anfängt, wie beim Wasserfallmodell.
| Kriterium | Wasserfallmodell | Agiles Vorgehen |
|---|---|---|
| Ablauf | Phasen nacheinander; jede muss beendet sein, bevor die nächste anfängt | Kurze Zyklen; XP durchläuft darin immer wieder alle Disziplinen |
| Änderungen | Nicht bzw. nur sehr eingeschränkt aufzunehmen | In kurzen Zeiträumen relativ leicht möglich |
| Kunde | In der Anfangsphase beteiligt | Regelmäßig in kurzen Abständen abgestimmt |
| Vorgaben | Kosten und Umfang bei stabilen Anforderungen klar abschätzbar | Pflichtenheft schwierig; Anforderungen entstehen erst im Projekt |
Merke: Begründe einen Vergleich mit einem Kriterium: Lassen sich die Anforderungen vorab relativ präzise beschreiben, spricht das für das Wasserfallmodell. Ändern sich Ziele und Umfeld im Projekt, spricht das für ein agiles Vorgehen.
Teste dich
Scrum arbeitet in Sprints von ein bis vier Wochen. Die Anforderungen stehen in einer geordneten Liste, dem Product Backlog. Am Ende eines Sprints steht ein fertiges Teilprodukt, das Produktinkrement. Scrum schreibt drei Rollen vor: den Product Owner (verantwortlich für Eigenschaften und wirtschaftlichen Erfolg des Produkts), den Scrum Master (kümmert sich darum, dass Scrum gelingt, und um Hindernisse) und das Entwicklungs-Team. Zu Beginn jedes Arbeitstages gibt es ein Daily Scrum von höchstens 15 Minuten. Scrum ist für Teams von drei bis neun Entwicklern konzipiert. Nach Henrik Kniberg können während eines laufenden Sprints keine neuen Anforderungen an das Team gegeben werden.
Kanban stammt aus der Produktionssteuerung. Auf einem Kanban-Board stehen die Arbeitsschritte als Spalten. Jede Anforderung steht auf einer Karte oder Haftnotiz, einem Ticket, und wandert mit der Zeit von links nach rechts. Das WiP-Limit begrenzt, wie viele Tickets gleichzeitig in einer Aktivität bearbeitet werden. So wird sichtbar, wo sich Tickets stauen. Nach Henrik Kniberg sind in Kanban Iterationen optional, es gibt keine Rollen, und neue Anforderungen können zu jedem Zeitpunkt an das Team gegeben werden, falls Kapazitäten frei sind.
XP stellt das Lösen der Programmieraufgabe in den Vordergrund und misst einem formalisierten Vorgehen geringere Bedeutung zu. Zu den Praktiken gehören die Paarprogrammierung (ein Programmierer codiert als Driver, der andere denkt mit als Partner, die Rollen werden regelmäßig getauscht), die testgetriebene Entwicklung (erst die Tests, dann die Funktion) und die kontinuierliche Integration. Der Kunde muss während der gesamten Entwicklungszeit mit dem Team zusammenarbeiten und auf eine formale Festlegung der Projektinhalte verzichten. Die Teamgröße wird gemeinhin auf höchstens zehn Mitglieder gesetzt. In verteilten Umgebungen gilt XP als schwerer einsetzbar.
Bei der Auswahl hilft dir ein Merkmal der Lage. In Bereichen mit hohen Unsicherheiten sind ungestörtes Arbeiten und Iterationen fester Länge wie in Scrum kaum möglich. Dort kann Kanban die bessere Wahl sein. Für Bereiche mit starker Arbeitsteilung und Spezialisierung ist Kanban häufig attraktiver als Methoden, die Generalisten fordern (Teams, in denen jeder vieles kann). Klassisch ausgerichteten Unternehmen fällt Scrum oft schwer, weil dafür recht weitreichende Veränderungen nötig sind. Kanban lässt Änderungen evolutionär einführen. Scrum und Kanban schließen sich nicht komplett aus.
Definition
WiP-Limit
WiP steht für „Work in Progress“, also Arbeit in Bearbeitung. Das WiP-Limit legt fest, wie viele Tickets gleichzeitig innerhalb einer Aktivität bearbeitet werden dürfen.
| Ansatz | Merkmale | Hinweis zur Wahl |
|---|---|---|
| Scrum | Sprints von ein bis vier Wochen; drei Rollen; Product Backlog | Konzipiert für Teams von drei bis neun Entwicklern |
| Kanban | Kanban-Board mit Tickets und WiP-Limit; Iterationen optional | Bei hohen Unsicherheiten kann Kanban die bessere Wahl sein |
| XP | Kurze Iterationen, Paarprogrammierung, testgetriebene Entwicklung | Teamgröße gemeinhin höchstens zehn; verteilt schwerer einsetzbar |
Teste dich
Alles auf einen Blick
Agile Softwareentwicklung
Iterationen
Agile Teams liefern in kurzen Abständen lauffähige Software und holen Feedback ein.
Agiles Manifest
Im Februar 2001 formuliert; Reagieren auf Veränderung ist wichtiger als das Befolgen eines Plans.
Wasserfallmodell
Die Phasen laufen nacheinander; Kosten und Umfang sind bei stabilen Anforderungen klar abschätzbar.
Vergleich
Agil reagiert leichter auf Änderungen, ein Pflichtenheft ist dafür schwierig.
Scrum und Kanban
Scrum hat Sprints und drei Rollen, Kanban begrenzt die Tickets mit einem WiP-Limit.
XP
Der Kunde arbeitet mit, die Teamgröße ist gemeinhin auf höchstens zehn begrenzt.
Musteraufgabe · Schritt für Schritt
Ausgedachtes Beispiel: Welcher Ansatz passt zu einem Support-Team?
- 1Annahme (ausgedacht): Ein Support-Team aus sechs Spezialisten bearbeitet neue Fehlermeldungen. Wann und wie viele kommen, ist nicht vorhersehbar.
- 2Schritt 1: Die Unsicherheit ist hoch. Iterationen fester Länge wie in Scrum sind dann kaum möglich.
- 3Schritt 2: Die Arbeit ist stark spezialisiert. Dafür ist Kanban häufig attraktiver als Methoden, die Generalisten fordern.
- 4Schritt 3: Neue Anforderungen kommen zu jedem Zeitpunkt, falls Kapazitäten frei sind. Das geht in Kanban, in einem laufenden Scrum-Sprint nicht.
- 5Ergebnis: Kanban mit Board und WiP-Limit kann hier die bessere Wahl sein. Es ist eine begründete Wahl, keine Erfolgsgarantie.
Fehler finden
Prüfe die Aussagen zu Scrum und Kanban In einer Zeile steckt ein Fehler. Tippe sie an.
Fehler in Zeile 3Die Regel stammt aus Kanban und wurde auf Scrum übertragen. Richtig: Während eines laufenden Sprints können in Scrum keine neuen Anforderungen an das Team gegeben werden.
Lückentext
Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.
Ein Sprint in Scrum dauert ein bis Wochen. Im Wasserfallmodell ist der Benutzer in der beteiligt. Bei XP wird die Teamgröße gemeinhin auf höchstens Mitglieder gesetzt.
Karteikasten
Erst selbst überlegen, dann umdrehen.
Übung mit Feedback