Wann man eher eine agile und wann eher eine klassische Vorgehensweise in Software-Entwicklungsvorhaben wählen sollte.
In unseren Projekten stehen wir immer wieder vor der Fragestellung, wann man denn nun eigentlich welche Methode einsetzen soll, also wann eher agil / Scrum und wann eher klassisch / Wasserfall zum Einsatz kommt. Wir möchten uns an dieser Stelle bewusst nicht an der leider meist ideologisch geführten Debatte um das vermeintlich bessere Vorgehensmodell beteiligen. Wie an anderer Stelle bereits festgestellt, braucht es manchmal »einen Hammer und manchmal einen Schraubendreher«. Und genauso, wie man sich für ein Werkzeug anhand gewisser Eigenschaften der Problemstellung (»Schraube oder Nagel in die Wand«) entscheidet, sollte man auch die Entscheidung für die einzusetzende Methode anhand der Eigenschaften des Umsetzungsvorhabens treffen.
Klingt logisch, aber so ein Entwicklungsprojekt weist ja nun eine Menge Eigenschaften auf. Es hat einen Anfang und ein Ende, es gibt vielleicht schon eine Zielarchitektur oder zumindest eine Vorstellung davon, evtl. stehen die Mitarbeiter oder der Entwicklungspartner schon fest und aufgrund dessen häufig auch schon die Technologie, etc. An welcher Eigenschaft entscheidet sich nun die Methode?
Unserer Erfahrung nach ist die Art des Problems, für dessen Lösung die Software erstellt werden soll, das definierende Kriterium für die entsprechende Entwicklungsmethodik: handelt es sich um ein kompliziertes Problem, so empfiehlt sich eher ein klassisches Vorgehen, bei komplexen Problemstellungen hingegen die agile Herangehensweise.
Sagt sich leicht, aber wir haben zugegebenermaßen einige Zeit und Diskussionen gebraucht, um zu einer entsprechenden Semantik der beiden häufig, aber vermutlich seltener trennscharf verwendeten Wörter »komplex« und »kompliziert« zu kommen.
Komplex ist ein Problem, wenn es viele und insb. unbekannte Größen aufweist. Je näher man an den Kunden kommt, desto komplexer wird es in der Regel. Wir finden dann häufig nicht oder nur schwer berechenbare Situationen vor: wer weiß schon, wie der Kunde sich Morgen verhält? Die Aufgabe einer Stewardess an Bord eines Airbus ist bspw. eine komplexe Aufgabe, da sich nicht vorhersagen lässt, wie sich welcher Passagier in der Luft an Bord verhalten wird und was er dann bspw. trinken möchte. Das »Problem« wird in diesem Fall durch hingehen, fragen und verstehen gelöst, also grundsätzlich eher explorativ.
Eine komplizierte Problemstellung weist viele Variablen auf, die aber (weitestgehend) bekannt bzw. zu ermitteln und somit berechenbar sind. Hier befinden wir uns häufig in Situationen mit vielen Abhängigkeiten, Systemen und Schnittstellen. Hierbei sollte dann aber auch eher analytisch an die Aufgabenstellung gegangen und sich die Berechenbarkeit zunutze gemacht werden: ein Airbus wird dann doch (glücklicherweise!?) eher mit klassischen Vorgehensweisen gebaut.
Weitere interessante Ansätze zur Definition von komplex und kompliziert finden sich bspw. im KULTURMANAGEMENT BLOG.
Zurück zur Softwareentwicklung, am Beispiel E-Commerce: Je näher wir mit unserem Vorhaben also »an« den Kunden, bspw. in Richtung Frontend kommen, desto mehr spricht in der Regel für eine agile Entwicklungsmethode, da wir hier oft auch eine unklare Anforderungssituation vorfinden. Bewegen wir uns mit der zu lösenden Problemstellung eher in Richtung Backend und haben es mit vielen (bekannten) Schnittstellen und Systemen zu tun, dann kann eine klassische Vorgehensweise angebrachter sein.
Weitere Artikel

Barrierefreiheit als Erfolgsfaktor – Wie Unternehmen langfristig profitieren
Das erwartet Sie in diesem Artikel Dieser Beitrag ist der dritte und letzte Teil unserer…

So wird eine Website barrierefrei – Die wichtigsten Maßnahmen
Das erwartet Sie in diesem Artikel Dieser Beitrag ist der zweite Teil unserer Serie zum…

Warum Barrierefreiheit im Web für Unternehmen immer wichtiger wird
Das erwartet Sie in diesem Artikel Dieser Beitrag ist der Auftakt unserer Serie zum Thema…

Software Architecture Gathering 2024
Das Software Architecture Gathering 2024 des iSAQB [1] fand vom 11. bis 14. November in Berlin im…

atra Weihnachtsspende 2024
Am vergangenen Wochenende war der erste Advent – die Weihnachtszeit hat offiziell begonnen. In dieser…

Die vielen Gesichter von Softwarearchitekten
Die Architekten der digitalen Welt: Eine nicht ganz ernst gemeinte Erkundung der Charaktere hinter den…

Team Topologies: Der Schlüssel zu erfolgreicher Teamarbeit in komplexen Organisationen
Stellen Sie sich vor, Ihre Teams agieren wie ein Rennwagen – schnell, effizient, aber oft…

Kostenvergleich interner und externer Softwareentwickler
Beim Vergleich der Kosten von angestellten Softwareentwicklern in Anwenderunternehmen mit den Beratungshonoraren externer Softwareentwickler gibt…

Wie Weihnachten und Open-Source-Software zusammenpassen
Unser Spendenansatz zum diesjährigen Weihnachtsfest. Auch wir spenden im geschäftlichen Umfeld zu Weihnachten, anstatt zu…

atra.consulting
atra.consulting als Dachmarke der SCS Consulting und Schwarze Consulting gegründet. Nach dem Zusammenschluss der SCS Consulting GmbH und Schwarze Consulting…