Vorgehensmodelle versus Agilität in Theorie und Praxis

In der Systementwicklung wird stets nach Wegen gesucht, die komplexen Vorgänge zu vereinfachen und ihnen eine Struktur zu geben, die für die Bearbeiter möglichst intuitiv ist. Äquivalent zu traditionellem Engineering und der Steuerung von Unternehmensprozessen waren Vorgehensmodelle schon vor vielen Jahren der Ansatz, der für mehr Überblick sorgen sollte.

Doch heutzutage scheint sich ihre Bedeutung immer mehr zu verändern, insbesondere was die Anwendung in der Praxis betrifft. Agile Arbeitsweisen sind, trotz ihrer langen Geschichte, heutzutage wieder besonders bedeutend.

Vorgehensmodelle in der Systementwicklung

Die Komplexität von Systemen wächst und wächst, so dass der Überblick bei der Entwicklung immer schwieriger wird. Um dennoch bei jeder Phase der Entwicklung die Kontrolle zu behalten und möglichst ohne Umwege zu fehlerfreien Systemen zu gelangen, gibt es verschiedene Modelle die das Vorgehen der Entwickler standardisieren.

Keine dieser festgeschriebenen Vorgehensweisen hat sich als endgültige Lösung für die Probleme bei der Systementwicklung etabliert. Die bekannten Modelle, wie das Wasserfall-Modell und das V- oder das Phasenmodell sind alles interessante Ansätze, die sowohl gute Grundlagen für modernere Modelle bilden als auch noch Anwendung in der Praxis finden.

Doch diese Modelle haben auch ihre Schwächen, die nicht zuletzt durch die immer schwieriger werdende Planbarkeit in der modernen Welt entstehen. Besonders kleinere Projekte, die neue Horizonte suchen, entziehen sich oft jeder Möglichkeit der klaren Gliederung, was es zwecklos macht, sie traditionellen Vorgehensmodellen zu unterwerfen.

Die Bedeutung iterativer Modelle wie etwa dem Spiralmodell zeigt bereits, wie die Notwendigkeit von mehrmaligen Anpassungen bei der Softwareentwicklung klare Unterschiede zum traditionellen Prozessmanagement analoger Branchen entstehen lässt.

Praktische Anwendung heutzutage

Vorgehensmodelle, die versuchen, das Chaos der Systementwicklung zu quantifizieren und in klar überschaubare, einzelne Schritte zu unterteilen, haben trotz der oft betonten Probleme noch eine große Bedeutung in der Softwareindustrie inne.

Insbesondere bei großen, stabilen Projekten mit vielen Mitwirkenden oder gar zusätzlichem Outsourcing ist es kaum abdingbar, die Entwicklungsphasen klar zu gliedern, damit alle auf der gleichen Wellenlänge sind.

Zusätzlich dienen altbekannte Modelle immer noch als Grundlage für neuere Ansätze, die mit weitergehenden Erkenntnissen an aktuelle Herausforderungen angepasst werden. So ist beispielsweise das W-Modell, das die ursprünglichen Prozessphasen des V-Modells mit agileren Aspekten kombiniert.

So werden zusätzliche und frühere Testphasen hinzugefügt, um auf eventuell nötige Anpassungen früher und schneller reagieren zu können. Die beiden visualisierten Teilkomponenten des Modells werden dabei so erweitert, dass zwischen Entwurfsphase und Integrationsphase verschiedene Tests und Simulationen stehen. Diese laufen parallel ab und erlauben eine flexiblere Fehlerbehebung und Anpassung des Produktes.

Darüber hinaus lässt die Relevanz rigider Modelle immer mehr nach, nicht zuletzt, da sie für die Programmierer und Systementwickler bei Weitem nicht so viel Spielraum lassen und somit weniger interessant sind.

So sind es häufig die Entscheidungsträger in großen Unternehmen, die mit der Praxis der Entwicklungsarbeit nicht mehr in direktem Kontakt stehen, die die Adaption bestimmter Vorgehensmodelle vorschreiben. Dies geschieht aus Gründen der wirtschaftlichen Sicherheit, die – zumindest scheinbar – durch das Befolgen von systematischen Vorgängen garantiert wird.

Die Relevanz der Lehre

In der Ausbildung junger Systementwickler spielt das Wissen um die Vorgehensmodelle natürlich noch eine große Rolle. Das wird auch noch weiter so bleiben und ist nicht nur ein Relikt der Tatsache, dass viele Branchengrößen zur Hochzeit dieser Phasenmodelle ihre eigene Ausbildung genossen haben.

Die Modularisierung der Prozesse der Systementwicklung ist ein komplexer Umstand, der mit einem besseren theoretischen Überblick über die verschiedenen Situationen zu jeder Etappe während der Entwicklung leichter verstanden werden kann.

Daher wird es weiterhin unvermeidlich bleiben, dass Vorgehensmodelle ihren Platz in der Lehre haben. Das Herunterbrechen des Entwicklungsprozesses in einzelne Phasen erlaubt eine zugänglichere Stückelung, um die jeweiligen Herausforderungen zu verstehen. Auf der anderen Seite ist es grundsätzlich nicht nötig, explizit Vorgehensmodelle zu kennen oder Erfahrung in der Arbeit mit ihnen zu haben, um agile Methoden anwenden zu können.

Agilität und der moderne Praxisbezug

Zu Ungunsten von klassischen Vorgehensmodellen haben sich agile Ansätze jedoch immer mehr zum Shooting-Star des Systems Engineering entwickelt. Obwohl dieser Trend bereits seit knapp 20 Jahren in Bewegung ist und schon große Teile der Industrie haben ihr Vorgehen entsprechend angepasst.

Im Jahr 2001 bereits wurde das ursprüngliche Manifest veröffentlicht. Die Grundlagen, auf denen dieses basierte, sind auch heute noch äußerst relevant und zeigen gut, warum es sich keineswegs um ein kurzfristiges Konzept handelt:

  • Individuen und Interaktionen werden höher bewertet als Prozesse und Werkzeuge
  • Funktionierende Software wird höher bewertet als umfassende Dokumentation
  • Zusammenarbeit mit dem Kunden wird höher bewertet als Vertragsverhandlung
  • Reagieren auf Veränderung wird höher bewertet als das Befolgen eines Plans

Die Grundsätze basieren also auf Denkmustern, die nicht dringend etwas mit Software zu tun haben, sondern aus praktischer Erfahrung in der Zusammenarbeit mit Menschen entstanden sind. Anstatt abstrakter Konzepte für die Systematisierung komplizierter Prozesse geht man hier einen Schritt zurück und nimmt individuelle, menschliche und realistische Aspekte als Maxime.

Systementwicklung, die diesen Empfehlungen folgt ist also in dem Sinne agil, da sie zu wesentlich schnelleren Reaktionen auf Veränderungen fähig ist. Interessanterweise kommt auch dieser Ansatz nun auch vermehrt beim Organisationsmanagement zum Einsatz.

Diese Veränderungen, die den gesamten freien Markt betreffen, lassen sich durchaus in den Kontext des flächendeckenden Erfolgs von Startups setzen. Insbesondere in Tech-Startups werden sowohl in der Softwareentwicklung als auch in allen anderen Aspekten der Unternehmung agile Methoden bevorzugt.

Das ist auch ganz natürlich, da eine grundlegende Kundenorientierung häufig das Kernstück der Operationen in modernen Neugründungen darstellt. Sowohl eine dynamische Reaktion auf neuartige Wünsche von Kunden, die über das bisherige Angebot hinaus gehen, als auch das Grundangebot eines Produktes oder einer Dienstleistung, das an sehr spezifische Bedürfnisse des Marktes gerichtet ist, drücken dies aus.

Auch die Fokussierung auf funktionierende Software ab frühen Entwicklungsstadien ist für Startups äußerst wichtig, da man sich schnell als vertrauenswürdiger und fähiger Geschäftspartner beweisen muss. Kein Wunder also, dass sich Scrum und ähnliche Philosophien in diesem Sektor durchgesetzt haben.

Ein frühzeitiger Prototyp bietet somit die perfekte Verhandlungsbasis für die zukünftige Zusammenarbeit und zeigt den Kunden, dass unter weiterer Rücksprache ein funktionierendes Wunschprodukt entstehen wird. Die Präsentation als funktionierende Software anstatt als theoretisches Modell ist dabei das Kernstück dieser Vorgehensweise.

Etwas Greifbares wird immer direkter und effektiver auf uns wirken, und auch bei der Systementwicklung arbeitet man letztlich mit Menschen zusammen. Bei der analogen Produktentwicklung wird schon lange ein großer Wert darauf gelegt, bei frühen Pitches oder Vorstellungen bereits ein marktfähig aussehendes Produkt inklusive hochwertiger Verpackung für eine finalisierte Präsentation vorzustellen.

Dies wirkt auf die Kunden und Partner sehr positiv und erweckt den Eindruck, dass ein marktfertiges Produkt nur noch einen Steinwurf entfernt ist. Des Weiteren erleichtert es auch für fachfremde Personen die Bewertung und somit das Geben von hilfreichem Feedback, wenn etwas Handfestes vorliegt. In der Systementwicklung für Kunden haben laufende Prototypen den gleichen Effekt.

Qualitätsmanagement und Agilität

Dass bei größeren, stabilen Projekten auch heute noch vergleichsweise wenig Wert auf Agilität gelegt wird, hat mit der Komplexität der Produkte und der Notwendigkeit für intensives Qualitätsmanagement zu tun.

Um langfristig die Qualität riesiger Softwarestrukturen garantieren zu können werden gerne traditionell Prozessorientierte Ansätze zum Qualitätsmanagement eingesetzt. Doch das ist auch nicht mehr die einzige Möglichkeit.

Werkzeuge und Vorgehensweisen, die insbesondere im Kontext von großen Projekten eine agile Form von QM erlauben, sind nicht zuletzt bei für eine breite Nutzerbasis bestimmte Software beliebt. Die Projektmanagement-Software von Jira beispielsweise zielt darauf ab, unabhängig von der Projektgröße die Stärken agiler Entwicklerteams für das Qualitätsmanagement zu nutzen.

Insbesondere die Möglichkeiten zur dynamischen Priorisierung einzelner Kernpunkte anstatt einer vorgegebenen, prozessorientierten Vorgehensweise, erlaubt in der Softwareentwicklung eine schnelle, agile Reaktion auf genau die Probleme, die für ein ungestört laufendes Projekt relevant sind – es kommt also schnellstens wieder zu einer neuen Version, die exakt die essenziellen Probleme gelöst hat.


Autor: Marvin Schubert

Marvin Schubert ist ein Autodidakt. Aufgrund vielfältiger persönlicher Projekte konnte er während den frühen 2010er Jahren einen Platz in verschiedenen Tech-Startups erhalten. Durch die Arbeit an wirtschaftlichen Projekten wurde er auf die Unterschiede zwischen individueller und projektbasierter Entwicklung aufmerksam.

Cover: joyfotoliakid / stock.adobe.com
Bild 1: sakaidasan / stock.adobe.com
Bild 2: Trueffelpix / stock.adobe.com