Vorgehensmodelle in der Softwareentwicklung

Vorgehensmodelle sind festgelegte Reihenfolgen von Aktivitäten, um Projekte abzuarbeiten. In diesem Kapitel werden drei unterschiedliche Vorgehensmodelle beschrieben – mit dem Fokus auf den Umgang mit Anforderungen. Zunächst wird das sehr strikt geregelte Wasserfall-Modell vorgestellt, als ein Extrembeispiel der klassischen Methoden.

Grundlagen des Projektmanagements


Als extremes Beispiel der agilen Methoden wird im Anschluss daran die Vorgehensweise des Extreme Programming (XP) beleuchtet. Scrum stellt einen gewissen Kompromiss dar und wird als drittes Beispiel im Kapitel Einführung in Scrum vorgestellt.

Software muss in immer kürzeren Zeiträumen mit immer mehr Anforderungen realisiert werden; die Anforderungen an Qualität steigen dabei kontinuierlich. Um die geforderte Software-Qualität zu erreichen, sind organisatorische Rahmen erforderlich. Diese organisatorischen Rahmen werden durch ein Prozessmodell beschrieben, das folgende Eigenschaften hat:

  • Phasen und Reihenfolge des Arbeitsablaufes
  • jeweils durchzuführende Aktivitäten
  • Verantwortlichkeiten und Konsequenzen
  • Definition der Anforderungen und der Teilprodukte
  • erforderliche Inputs und ihre Anforderungen
  • notwendige Mitarbeiterqualifikationen
  • anzuwendende Standards, Richtlinien, Methoden und Werkzeuge

In der Literatur wird nach zwei unterschiedlichen Arten der Vorgehensweisen unterschieden: den klassischen Methoden und den agilen Methoden.

Zu den klassischen Methoden zählen die Vorgehensmodelle, die eher sequenziell Projektphasen abhandeln und insgesamt dokumentenlastig organisiert sind. Hier sind die Methoden »Wasserfall«, »Spiralmodell«, »Rational Unified Process« (RUP) und »V-Modell« gemeint. Sie alle teilen Projekte in Abschnitte auf, in denen bestimmte Ergebnisse erbracht werden. Einige führen diese Abschnitte jeweils einmalig aus, andere wiederholen diese. Alle ordnen die Tätigkeiten in Phasen ein.

Im Wasserfall-Modell werden zu Beginn alle Anforderungen formuliert, alle weiteren Phasen bauen auf diesen Anforderungen auf. Jede Änderung bedeutet somit einen Rücksprung in die vorherigen Phasen.

Abbildung 1 verdeutlicht die entstehenden Kosten, wenn erst in späten Phasen des Wasserfall-Modells erforderliche Änderungen festgestellt werden. Die Kosten für Änderungen steigen dann exponentiell.

Aenderungskosten Wasserfallmodell klassisch

Abbildung 1 – Änderungskosten klassisches Vorgehen


Klassische Methoden beschreiben eher, wie etwas während eines Projektes gemacht werden soll, was genau in welchem Dokument zu einer Zeit beschrieben sein muss, so dass Software entwickelt werden kann. Im Vergleich zu agilen Methoden hat der Kunde erst spät Einblick in die Realisierung, somit besteht bereits zu Beginn das Risiko, dass formulierte Anforderungen nicht dem entsprechen, was der Kunde sich vorgestellt hat. Dieses Risiko versuchen klassische Methoden durch vorgegebene Dokumente und Richtlinien zu minimieren. Sie konzentrieren sich darauf, bereits zu Beginn eines Projektes die größtmögliche Planbarkeit des Projektes zu erzielen.

Abbildung 2 verdeutlicht die Kosten, die bei Änderungen in Projekten mit agiler Vorgehensmethodik entstehen. Die Kosten der Änderungen steigen langsam mit der Dauer des Projektes an.

Aenderungskosten agile Vorgehensmethodik

Abbildung 2 – Änderungskosten agiles Vorgehen


Agile Methoden konzentrieren sich darauf, kurzfristig auf Begebenheiten reagieren zu können. Im Hinblick auf Anforderungsmanagement zeigt sich, dass agile Methoden grundsätzlich keine Dokumentationsweise festlegen. Hier wird formuliert, »was«, nicht »wie« etwas durchgeführt werden soll. Neue Anforderungen und die Änderung von Anforderungen sind zu jeder Zeit willkommen. Diesen Umstand beschreibt eines der grundlegenden Prinzipien des Agilen Manifests: »Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage«.


Wasserfall-Modell

Diesen Artikel weiterempfehlen

    

Über den Autor

Die itemis AG ist ein unabhängiges IT-Beratungs­unternehmen, das leistungsfähige Software für Unternehmens­anwendungen, eingebettete Systeme und mobile Applikationen entwickelt – und über diese Themen bloggt.