Skip to main content

Agile Softwareentwicklung

Was ist Agile Softwareentwicklung?

Agile Software Development ist ein Sammelbegriff für eine Reihe von Methoden und Verfahren in der Entwicklung von Software. Das Wort Agilität (lat. agilis = flink, beweglich) bezieht sich auf einen Bereich der Softwareentwicklung, der auf den Werten und Prinzipien des Agilen Manifestes beruht. Der agile Ansatz fördert die funktionsübergreifende Zusammenarbeit, Selbstorganisation und Kreativität in der Softwareentwicklung. Dazu enthält das Agile Manifest die Leitprinzipien. Agiles Projektmanagement konzentriert sich auf die ständige Verbesserung und ermöglicht mehr Flexibilität in der Entwicklung qualitativ hochwertiger Software.

Woher stammt der Begriff Agile Softwareentwicklung?

Obwohl erste Schritte für eine agile Softwareentwicklung bereits 1974 dokumentiert wurden, begann die Popularität dieser Entwicklungsmethode erst in den 1990er-Jahren. Mitte des Jahrzehnts gab es bereits standardisierte Verfahren wie “Rapid Application Development” (RAD) und “Extreme Programming” (XP). 1995 wurde das Entwicklungs- Framework “Scrum” vorgestellt, das Agile Manifest erschien im Jahre 1999.
In der plangesteuerten Softwareentwicklung ist der Umfang normalerweise festgelegt, die Kosten und der Zeitplan sind variabel. Viele große Softwareprojekte wurden auf diese Weise implementiert. Das funktioniert jedoch nur, wenn die benötigte Software vollständig spezifizierbar und durch eine umfassende Planung erstellt werden kann. Dieses Verfahren führt allerdings nicht immer zu den gewünschten Zielen. Besonders die Änderungen während der Entwicklungsphase können eine nachteilige Wirkung haben. Im Gegensatz dazu sind bei der agilen Entwicklung Kosten und Zeitpläne festgelegt während der Umfang variabel ist. Agile Software kann von kleinen Teams entwickelt werden, wenn dabei die Prinzipien der Designverbesserung basierend auf schnelle Rückmeldung angewandt werden.

Das Manifest für Agile Softwareentwicklung

Bei ihren Treffen im Jahre 1999 stellten die Softwareentwickler eine Reihe von Ideen und Richtlinien vor die um die Jahrtausendwende als Agiles Manifest veröffentlicht wurden. Zu den Eckwerten dieses Manifestes gehören die folgenden Prinzipien:

  • Kundenzufriedenheit
    Kunden sind zufriedener, wenn sie in regelmäßigen Abständen funktionierende Software erhalten, anstatt auf lange Release-Zyklen zu warten
  • Anpassung an sich ändernde Anforderungen
    Während des gesamten Entwicklungsprozesses kann es zu Anpassungen durch geänderte Anforderungen kommen. Hier gilt es besonders, Verzögerungen zu vermeiden.
  • Lieferung funktionierender Software
    Sogenannte Sprints sollen die regelmäßige Lieferung von funktionierender Software sicherstellen.
  • Zusammenarbeit von Auftraggebern und Entwicklern
    Während des gesamten Projekts arbeiten Auftraggeber und Entwickler zusammen. Durch diese Maßnahme werden bessere Entscheidungen getroffen.
  • Unterstützung und Motivation der involvierten Personen
    Motivierte Teams liefern bessere Ergebnisse ab als unmotivierte Entwickler.
  • Face-to-Face Interaktion
    Die zwischenmenschliche Kommunikation ist erfolgreicher, wenn die Mitglieder eines Teams sich direkt gegenüber sitzen.
  • Geeignete Arbeitssoftware
  • Das richtige Framework ist ein wichtiges Kriterium für den Arbeitsfortschritt.
  • Agile Prozesse
    Zur Unterstützung eines konsistenten Entwicklungstempos legen die Teams die einzelnen Arbeitsschritte und Wiederholungen fest.
  • Aufmerksamkeit für technische Details und gutes Design
    Agilität und gutes Design stellen sicher, dass die Teams das Tempo halten und das Produkt ständig verbessert wird und Veränderungen aufgenommen werden.
  • Einfachheit
    Die Teams entwickeln Software, die nur die erforderlichen Aufgaben erfüllt. Weitergehende Funktionen sind nicht notwendig.
  • Selbstorganisation der Teams
    Selbstorganisierende Teams liefern bessere Ergebnisse bezüglich der Architektur und des Designs. Erfahrene und motivierte Teammitglieder haben Entscheidungsbefugnisse und arbeiten mit dem Auftraggeber zusammen. Alle Teammitglieder kommunizieren miteinander und tauschen Ideen aus.
  • Selbstverbesserung
    Regelmäßige Überlegungen zur Effektivität können zur Verbesserung der Prozesse führen oder bei der Weiterentwicklung der Fähigkeiten und Techniken einzelner Mitglieder führen.

Scrum – Ein agiles Entwicklungs-Framework

Scrum ist eines der beliebtesten Frameworks zur Implementierung Agiler Softwareentwicklung. Das Framework sorgt für die Umsetzung agiler Methoden wie schrittweise (inkrementelle) und sich wiederholende (iterative) Arbeitsschritte, die als Sprints bezeichnet werden. Obwohl Scrum sehr populär ist, gibt es auch andere Frameworks, wie zum Beispiel Kanban, die zur agilen Softwareentwicklung eingesetzt werden können. Scrum eignet sich als Framework für unterschiedliche Projekte mit strengen Fristen und komplexen Anforderungen. Durch eine Reihe von Iterationen werden die Arbeitsschritte vorangetrieben. Ein Sprint dauert normalerweise zwischen zwei und vier Wochen.
Ein Scrum-Team hat eine etwas andere Zusammensetzung als bei herkömmlichen Projekten. Die drei spezifischen Rollen Entwicklungsteam, Product Owner und Scrum Master können wie folgt beschrieben werden:

  • Scrum-Entwicklungsteam
    Entwicklungsteams sind von ihrer Aufgabenstellung her befähigt, die eigene Arbeit zu organisieren und zu verwalten. Die daraus resultierende Synergie optimiert die Effizienz und Effektivität des Teams.
  • Product Owner
    Der Product Owner ist innerhalb des Entwicklungsteams für die Klärung des Produktzieles zuständig. Er sorgt für Transparenz in den anstehenden Arbeiten und überprüft das erreichte Ergebnis. Außerdem trifft er Entscheidungen hinsichtlich der Priorität von Entwicklungsrückständen.
  • Scrum Master
    Der Scrum Master ist Mitglied des Entwicklungsteams. Zu seiner Rolle gehört die Organisation der Arbeit. Er stellt zudem sicher, dass Hindernisse aus dem Weg geräumt werden. Außerdem schützt er das Team vor Störungen und Ablenkungen.

Ein Scrum Team arbeitet funktionsübergreifend. Die Mitglieder eines Entwicklungsteams bestehen aus Entwicklern, Testen, Designern etc.
Agile Softwareentwicklung beginnt mit einer Reihe von Sitzungen und Recherchen, um die Ziele, Herausforderungen und Aufgaben des Benutzers oder Kunden zu verstehen. An diesen Meetings nehmen die wichtigsten Mitglieder eines Projektteams wie beispielsweise Projektmanager, Designer, Entwickler und Produkteigentümer teil.

Erleichterung der Softwareentwicklung

Agile Methoden entstanden aus der Notwendigkeit für die Entwicklung von Software einen leichteren Weg zu finden. Besonders die ständigen Änderungen und wechselnde Anforderungen sollen durch ein erfolgreiches Projektmanagement aufgefangen werden. Die Agile Methode beschreibt dazu eine Reihe von Werten und Prinzipien welche die Selbstorganisation der Entwicklungsteams und den Erfolg der Arbeit verwirklicht. Durch das Agile Manifest und ein Framework sind funktionsübergreifende Teams durch adaptive Planung, evolutionäre Entwicklung, schnelle und flexible Reaktion in der Lage Softwareprojekte erfolgreich abzuschließen.

Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG

Agile Softwareentwicklung
4 (80%) 12 votes