Management

Agile Softwareentwicklung

Diese Seite behandelt Grundlagen, Methoden und Begriffe der agilen Softwareentwicklung, mit Fokus auf Scrum und XP.

Agile Entwicklung steht für flexible, inkrementelle und kundennahe Softwareentwicklung. Im Gegensatz zu klassischen Modellen wie dem Wasserfallmodell setzt Agile auf kontinuierliche Verbesserung, kurze Feedbackzyklen und enge Zusammenarbeit im Team.


Grundlagen

Agile Prinzipien

Die agile Bewegung basiert auf dem Agilen Manifest (2001), das vier zentrale Werte betont:

  • Individuen und Interaktionen statt Prozesse und Werkzeuge
  • Funktionierende Software statt umfassender Dokumentation
  • Zusammenarbeit mit dem Kunden statt Vertragsverhandlung
  • Reagieren auf Veränderung statt striktem Planverfolgen

Dazu kommen 12 Prinzipien, u. a.:

  • Frühe und kontinuierliche Auslieferung funktionierender Software
  • Enge, tägliche Zusammenarbeit zwischen Fachleuten und Entwicklern
  • Technische Exzellenz und gutes Design fördern Agilität

Scrum

Scrum ist der am weitesten verbreitete agile Rahmen (Framework). Es basiert auf festen Rollen, definierten Ereignissen und klaren Artefakten.

Rollen

  • Product Owner: Verantwortlich für den geschäftlichen Nutzen des Produkts
  • Scrum Master: Unterstützt das Team, beseitigt Hindernisse
  • Entwicklungsteam: Umsetzt die Anforderungen aus dem Product Backlog

Artefakte

  • Product Backlog: Liste aller Anforderungen (z. B. User Stories)
  • Sprint Backlog: Aufgaben, die im aktuellen Sprint bearbeitet werden
  • Increment: Das fertige Ergebnis am Sprintende

Ereignisse

  • Sprint Planning: Planung der Sprintziele
  • Daily Scrum: 15-minütiges tägliches Standup zur Abstimmung
  • Sprint Review: Vorstellung der Ergebnisse, Feedback durch Stakeholder
  • Sprint Retrospective: Team-Reflexion zur Verbesserung des Prozesses

Extreme Programming (XP)

Extreme Programming ist eine agile Methode mit Fokus auf technische Praktiken und Codequalität.

Merkmale von XP

  • Testgetriebene Entwicklung (TDD): Erst Tests schreiben, dann Code
  • Pair Programming: Zwei Entwickler arbeiten gemeinsam an einer Aufgabe
  • Kontinuierliche Integration: Häufiges Zusammenführen von Code in das Hauptprojekt
  • Refactoring: Laufende Verbesserung des Codes ohne Funktionsänderung
  • Kurze Release-Zyklen: Regelmäßige Auslieferung an den Kunden

Agile Begriffe im Überblick

User Story

Eine User Story beschreibt eine Anforderung aus Sicht des Nutzers:

Als Rolle möchte ich Ziel, um Nutzen.

Beispiel:

Als Nutzer möchte ich meine Bestellungen einsehen, um den Lieferstatus zu überprüfen.

Product Backlog

Das Product Backlog ist eine priorisierte Liste von Anforderungen, die vom Product Owner gepflegt wird. Es ist dynamisch und wächst mit dem Projekt.

Sprint

Ein Sprint ist ein fester Zeitraum (meist 2–4 Wochen), in dem ein funktionsfähiges Produktinkrement entwickelt wird.

MVP – Minimum Viable Product

Ein MVP ist die minimal lauffähige Version eines Produkts, mit der möglichst früh Kundenfeedback eingeholt werden kann. Ziel: schnelles Lernen mit wenig Aufwand.


Prüfungsnahe Fragen

  1. Was unterscheidet agile Entwicklung von klassischen Vorgehensmodellen?
  2. Was versteht man unter testgetriebener Entwicklung?
  3. Wie ist eine User Story aufgebaut?
  4. Welche Vorteile bietet ein MVP?