Agile Methoden

Agile Methoden kommen unter anderem in der Softwareentwicklung vor, um die es hier vornehmlich gehen soll. Man spricht hier auch von der agilen Softwareentwicklung bzw. von agilen Softwareentwicklungsprozessen, die sowohl Transparenz als auch Flexibilität und das Tempo bei der Entwicklung steigern sollen. Im Kern geht es um den Ansatz, Teilprozesse möglichst einfach und beweglich (also: agil) zu machen.

Allgemeine Informationen zum Thema

Der Begriff der agilen Softwareentwicklung entstand erst zu Beginn der 2000er Jahre, vergleichbare Ansätze von agilen Methoden sind aber schon in den 1990er Jahren entwickelt worden. 1999 dann schuf der Informatiker Kent Beck mit seinem Werk „Extreme Programmierung“ gemeinsam mit seinem Team die Grundlage dessen, was im Jahr 2001 als das „agile Manifest“ herausgebracht wurde.

Mit Hilfe von agilen Methoden soll in der Softwareentwicklung ein iteratives (also: zyklisches) Vorgehen auf allen Ebenen der Prozesse realisiert werden. Dahinter steht der Gedanke, dass alle Prozesse als Lernprozess verstanden werden. Diesem Gedanken folgend, sind Veränderungen nicht nur erlaubt, sondern ausdrücklich erwünscht. Zum Tragen kommt dieser Ansatz zum Beispiel bei Scrum oder Kanban, aber auch beim Lean Management und anderen Methoden, die aus Japan stammen. Da Lernprozesse und Veränderungen immer auch mit Fehlern verknüpft sind, gehören auch diese zu agilen Methoden dazu, denn sie werden als Chance auf Verbesserungen und Optimierungen verstanden[1].

Agile Methoden vs. Wasserfall Methode

Bei der Softwareentwicklung stehen sich zwei grundverschiedene Herangehensweisen gegenüber. Die ältere Methode ist die sogenannte Wasserfall Methode, bei der man Schritt für Schritt an das umzusetzende Projekt herangeht. Dabei werden jedoch gleich zu Beginn alle Anforderungen an das Projekt festgeschrieben. Im Anschluss wird das komplette Design erstellt (also System-Design, Screen-Design usw.). Dann wird der vollständige Code geschrieben. Daraufhin erfolgt das Testing und die sich anschließende Wartung des Systems.

Die Wasserfall Methode bringt allerdings einige Probleme mit sich:

  • Nicht alle Anforderungen, die zu Projektbeginn festgeschrieben werden, zeigen sich zu diesem frühen Zeitpunkt.
  • Damit die Wasserfall Methode erfolgreich ist, muss die Planungsphase sehr ausgiebig sein. Doch in der Regel sind auch zahlreiche Nicht-ITler wie Manager, Budgetverantwortliche, Entscheidungsträger und andere Funktionsträger beteiligt, die oft kategorisch allzu lange Planungsphasen ablehnen.
  • Da die gesamte Planung zu Beginn erledigt wird und zwischenzeitlich keine Korrekturen durchgeführt werden, zeigen sich grobe Fehler erst sehr spät, nämlich am Ende des Projektes. So geht wertvolle Zeit während der Projektphase verloren, in der mit agilen Methoden auch kurzfristig Fehler behoben werden können.

Vorteile und Nachteile der agilen Softwareentwicklung

Wenngleich die Vorteile der agilen Methoden zu überwiegen scheinen, gibt es auch kritische Stimmen. Zunächst seien aber die Vorteile der agilen Herangehensweise genannt:

1. Beim agilen Ansatz kann sofort gestartet werden. Eine lange Planungsphase entfällt. Da in der agilen Softwareentwicklung davon ausgegangen wird, dass zu Beginn nicht alle Anforderungen bekannt sind, liegt der schnelle Start sogar nahe. Im Zuge des Projektes werden ohnehin Änderungen und Anpassungen vorgenommen.

2. Da der Beginn des Projektes nach einer sehr kurzen Planungsphase beginnt, werden bereits nach kurzer Zeit Resultate sichtbar, zudem können regelmäßig Nachbesserungen vorgenommen werden. Bei der Methode Scrum werden beispielsweise sogenannte "Sprints" vorgenommen, die sich jeweils auf Zeiträume von einer Woche oder einen Monat beziehen und somit regelmäßige Überprüfungen beinhalten.

3. Sämtliche Resultate können vom Kunden und von internen Testern überprüft werden, sodass der Kunde einen stetigen Einblick in den Stand der Dinge hat.

4. Änderungen sind nicht nur zulässig, sondern ausdrücklich erwünscht. So bleiben die Projektteilnehmer flexibel und können sich auf veränderte Bedingungen einstellen.

5. Bei agilen Methoden finden täglicher Austausch und eine Kommunikation statt, die alle Beteiligten einbezieht. Durch diese kontinuierliche Kommunikation können Änderungen in kleinen Schritten problemlos vorgenommen werden.

6. Das gesamte Projekt wird in Priorisierungen unterteilt. Alle Aufgaben werden also in Teilaufgaben unterteilt, um sicherzustellen, dass die wichtigsten Aufgaben die entsprechende Priorität erhalten.

Den Vorteilen agiler Methoden stehen jedoch auch Nachteile bzw. Potenziale für Unzufriedenheit gegenüber:

1. Insbesondere Entwickler sind nicht immer zufrieden mit der agilen Softwareentwicklung. Die häufigen Meetings reißen sie aus ihrer eigentlichen Aufgabenstellung heraus, kosten subjektiv wahrgenommen und zuweilen auch objektiv feststellbar Zeit. 2. Da bei agilen Methoden sehr häufig getestet wird, kann es zu erheblichen Mehrkosten kommen, die für die Tester kalkuliert werden müssen. 3. Der oben besprochene Vorteil des schnellen Projektbeginns beinhaltet auch den Nachteil, dass die Kostenentwicklung schlecht einzuschätzen ist. Da zu Beginn von Projekten zahlreiche Aspekte noch nicht klar sind, kann dem Kunden nur ein ungefährer Wert hinsichtlich der entstehenden Kosten genannt werden. 4. Die genannten Teilaufgaben müssen jeweils mit einem „Done“ als erledigt gekennzeichnet werden, außerdem kann die ständige Kommunikation zu Befindlichkeiten führen, die den Projektverlauf stören. Insbesondere die Tatsache, dass Kunden nur selten an den Details der Softwareentwicklung interessiert sind, sondern Ergebnisse sehen wollen, kann sich zum kommunikativen Problem entwickeln[2].

Bedeutung für das Development

Die Frage, ob agile Methoden oder das Wasserfall Modell den Vorzug erhalten, kann nur individuell beantwortet werden. Es hängt von der Art des Projekts ab, von den Beteiligten und von den Erwartungen des Kunden. Allerdings muss man nicht zwingend zwischen einer der beiden Methoden wählen. Denkbar sind auch Ansätze, die auf dem Wasserfall Modell basieren und agile Komponenten mit einbauen.

Einzelnachweise

  1. Grundprinzipien der agilen Softwareentwicklung image.informatik.htw-aalen.de. Abgerufen am 09.02.2018
  2. Vor- und Nachteile der agilen Softwarentwicklung yuhiro.de. Abgerufen am 09.02.2018

Weblinks