Lexikon

Agile Softwareentwicklung

Was ist agile Softwareentwicklung?

Agile Softwareentwicklung ist ein Sammelbegriff für mehrere Methoden, mit denen die Entwicklung von Software flexibler, schneller, transparenter und nutzerorientierter erfolgen soll. Außerdem können die Ansätze für Kosten- und Risikominimierungen sorgen. Die bekanntesten agilen Methoden sind Scrum und Kanban.

Inhaltsverzeichnis

  1. Was versteht man unter agiler Softwareentwicklung?
  2. Welche agilen Methoden gibt es?
  3. Was ist Scrum?
  4. Was ist Kanban?
  5. Was ist Extreme Programming?
  6. Welche Vorteile hat agile Softwareentwicklung?
  7. Wann agil, wann klassisch?

Was versteht man unter agiler Softwareentwicklung?

Der Begriff „agile Softwareentwicklung“ wurde vom Informatiker Kent Beck geprägt. Er veröffentlichte im Jahr 2001 gemeinsam mit seinem Team aus Forschern das sogenannte „Agile Manifesto“. Dieses beschreibt die allgemeinen Prinzipien der agilen Softwareentwicklung und unterscheidet sich unter anderem durch folgende Aspekte von klassischen Methoden:

  • Interaktionen und Individuen sind wichtiger als Werkzeuge und Prozesse
  • Funktionierende Software ist wichtiger als eine detaillierte Dokumentation
  • Die Zusammenarbeit mit dem Kunden steht über der Vertragsverhandlung
  • Reaktionen auf Veränderungen sind bedeutsamer als die strikte Einhaltung von Plänen

Charakteristisch für agile Methoden ist außerdem, dass Entwickler und Kunden (Fachanwender) im Projekt sehr intensiv zusammenarbeiten. Es findet eine direkte, regelmäßige Kommunikation statt. Außerdem sind die Teams im Regelfall mit einer hohen Eigenverantwortung ausgestattet.

Welche agilen Methoden gibt es?

Die am häufigsten eingesetzten Methoden für die agile Entwicklung von Software sind:

  • Scrum: bekannteste agile Methode der Softwareentwicklung, wird auch für das Management anderer Projekte genutzt
  • Kanban: Fokus auf autonome Organisation und Informationstransparenz, Management von Aufgaben basierend auf einer Visualisierung mithilfe von Karten auf einer Tafel
  • Extreme Programming (XP): problemorientierte Vorgehensweise, geeignet für die Entwicklung komplexer Software

Was ist Scrum?

Bei Scrum liefert ein Entwickler-Team kein fertiges Endprodukt. Vielmehr wird die Software in vielen kleinen Einzelschritten (sog. Sprints) entwickelt, wobei Anforderungsänderungen jederzeit in das Projekt einfließen können. Detaillierte Projektpläne sind nicht erforderlich. Vielmehr steht bereits nach kurzer Zeit ein potenziell nutzbares Produkt zur Verfügung, dass dann schrittweise und flexibel weiterentwickelt wird. Der Schwerpunkt der Entwickler liegt hierbei auf den Funktionen mit dem höchsten Kundennutzen.

Was ist Kanban?

Kanban zählt ebenfalls zu den agilen Methoden der Softwareentwicklung. Das Ziel ist es, die Anzahl parallel durchzuführender Aktivitäten zu begrenzen, um Durchlaufzeiten zu verkürzen und Probleme wie Engpässe schnell zu erkennen. Hierzu werden die Prozesse des Projekts auf dem sogenannten Kanban-Board visualisiert. Oftmals ist das Kanban-Board in der Praxis schlicht ein Whiteboard, an dem die einzelnen Projektaufgaben in Form von Haftnotizen oder Karteikarten angebracht werden. Um den Status der Aufgaben abzubilden, werden mehrere Spalten verwendet.

Was ist Extreme Programming?

Bei Extreme Programming (XP) stehen die Kundenanforderungen und das schnelle Lösen einer Programmieraufgabe klar im Fokus. Typisch sind sehr kurze Zyklen, in denen Quellcode sowohl entwickelt als auch getestet wird.

Welche Vorteile hat agile Softwareentwicklung?

Die agile Softwareentwicklung ist schnell. Es wird weniger Zeit benötigt, bis Ergebnisse vorliegen. Zudem ist die Software bei dieser Methode leichter anpassbar – insbesondere, wenn sich während der Prozesse Veränderungen hinsichtlich der Anforderungen oder des Markts ergeben.

Wann agil, wann klassisch?

Folgende Gegenüberstellung zeigt, wann sich agile und klassische Methoden für das Management von Projekten eignen:

Agile Methoden Klassisches Projektmanagement
Anforderungen vor Beginn noch unscharf Anforderungen vor Beginn bekannt
Flexibilität bei Änderungen gefordert Änderungen im Verlauf kaum zu erwarten
Anforderungsbeschreibung erfolgt aus Kundensicht Anforderungsbeschreibung ist technisch
Kleine, selbstorganisierte Teams Große Teams mit klarer Hierarchie
Kunde soll Zwischenergebnisse erhalten und bewerten Kunde erhält nur das Endergebnis

Ähnliche Beiträge

Autor dieses Artikels ist Ertan Özdil, CEO, Gründer und Gesellschafter des Cloud ERP-Anbieters weclapp.

Bitte beachten Sie die rechtlichen Hinweise zu diesem Artikel.