„Sie können einen Ford in jeder Farbe haben – Hauptsache er ist schwarz“
Als Henry Ford 1913 sein Modell T vom Band laufen ließ, war alles entschieden, sogar die Farbe stand fest. Bei unseren Projekten ist das anders, unsere Modelle unterscheiden sich grundlegend vom Modell T. Zuallererst handelt es sich nicht um Autos sondern um Vorgehen – Vorgehensmodelle. Also darum wie was wann entschieden wird. Und ja, bei uns gibt es neben Schwarz auch andere Farben zur Auswahl.
Projektverläufe lassen sich oft schwer vorhersagen, deshalb nutzen wir neben klassischen Vorgehensmodellen, wie z. B. Wasserfall oder V-Modell, auch Modelle, die auf Iterationen mit kürzerer Laufzeit setzen.
Je komplexer und umfangreicher ein Projektvorhaben ist, desto mehr setzen wir auf agile Modelle. Bei kleinen Projekten wiederum kann sich ein klassisches Modell lohnen.
Aber welche Modelle gibt es und welche Vorteile haben sie? Hier eine kleine Zusammenfassung:
Scrum
Scrum ist ein Framework für die agile Projektarbeit und setzt auf eine feste und abgestimmte Struktur innerhalb einzelner Iterationen. Teamevents, zum regelmäßigen Austauschend sowie zum Begutachten der geleisteten Arbeit und für die Planung kommender Iterationen, bieten hierbei einen festen Rahmen.
Ein großer Vorteil, der nicht zu unterschätzen ist: Feedback kann (und muss) zeitnah erfolgen und gibt dadurch Sicherheit. Durch das Planen kleiner Iterationen kann auf Marktgegebenheiten oder neue Anforderungen besser reagiert werden, als dies zum Beispiel bei einem festen Zeitplan im klassischen Kontext möglich wäre.
Kanban
Kanban zielt auf die Begrenzung paralleler Arbeiten ab und bedient sich der Prinzipien des Lean (Product) Development. Bewährt hat sich Kanban, insbesondere bei der Weiterentwicklung von Produkten und die damit einhergehende Optimierung der Wertschöpfung.
Wie auch bei Scrum sind feste Feedbackzyklen ein wichtiger Bestandteil des Ablaufs, die zeitnahe Reaktionen auf äußere Einflüsse zulassen.
Klassischerweise werden Aufgaben in Spalten einer Tabelle nach Priorität angeordnet. Visualisiert wird der Arbeitsfortschritt durch das Verschieben von geleisteten Arbeitspaketen in die nächste Spalte, von links nach rechts. Die Anzahl der Spalten/Schritte ist dabei variabel und kann unternehmensinternen Prozessschritten angepasst werden.
Kanban kann zum Beispiel in Verbindung mit dem Wasserfallmodell genutzt werden, um die Aufgaben besser planen und strukturieren zu können.
Wasserfallmodell
Im klassischen Wasserfallmodell durchläuft das Projekt festgelegte Phasen, von der Aufnahme von Anforderungen über den Entwurf und Implementierung hin zur Qualitätssicherung und der anschließenden Betriebsphase und Wartung.
Dieses Modell ist stark prozessgesteuert und setzt auf das Einhalten der einzelnen Schritte. Arbeitsergebnisse der einzelnen Phasen werden geprüft und für die weitere Bearbeitung freigegeben.
Insbesondere wenn Fixpreise und strenge Zeitfenster für ein Projekt zwingend sind, wird dieses Modell in Betracht bezogen. Dies bedeutet allerdings auch, dass an einem vereinbarten Projektumfang möglichst nichts verändert werden darf, um weiterhin Zeit- und Kostenrahmen wie ursprünglich geplant halten zu können.
V-Modell
Das V-Modell sieht ähnlich dem Wasserfallmodell ein Vorgehen in Phasen vor. Dabei werden den Entwicklungsphasen einzelne Testphasen gegenübergestellt, die für einen erfolgreichen Abschluss des Projekts durchlaufen werden müssen.
Die Phasen lassen sich als V darstellen, wodurch dieses Modell seinen Namen bekam. Eine Weiterentwicklung ist unter dem Namen W-Modell bekannt, welches agile Methoden berücksichtigt.
Vorteile, die für dieses Modell sprechen, sind nicht zuletzt die festgelegten Testtiefen, die sich von Unit-Tests bis hin zu Akzeptanztests erstrecken.
DevOps
Ein Ansatz zur Verbesserung der Zusammenarbeit und Effizienzsteigerung von Entwicklung, Systemadministration und Qualitätssicherung stellt DevOps dar. Dabei wird die Zusammenarbeit dieser Gewerke über den gesamten Lebenszyklus der Software idealisiert und angestrebt.
In diesem Kontext stellen Continuos-Integration und Continuos-Delivery-Tools wichtige Bestandteile dar, die regelmäßige Tests und Auslieferungen des Produkts gewährleisten sollen.
Letztendlich muss DevOps in der Unternehmenskultur verankert und gelebt werden, um Vorteile aus diesem Ansatz ziehen zu können. Künstliche Barrieren zwischen den genannten Abteilungen sollen eingerissen oder zumindest so gering wie möglich gehalten werden.
Das Aufgabenfeld des Entwicklers wird dadurch durch Test- und Bereitstellungsaufgaben erweitert und gewährleistet in der Regel schnellere Bereitstellungszyklen mit höherer Qualität.
Prototyping
Prototyping ermöglicht anhand eines Mockups oder einer lauffähigen (Teil-) Software die Validierung von Anforderungsspezifikationen oder Ideen. Prototypen ermöglichen zudem das Einholen von Fremdmeinungen zu einem geplanten Produkt und lassen so Rückschlüsse auf die Akzeptanz einer Software durch die Zielgruppe zu.
Dieser Entwicklungsschritt lässt sich in agilen und klassischen Vorgehensmodellen etablieren, sei es als Bestandteil der Entwurfsphase oder als eigene Iteration im kompletten Lebenszyklus einer Software.
Nicht zuletzt kann Prototyping als risikominderndes Werkzeug angesehen werden, da Fehlentwicklungen frühzeitig entdeckt werden und es Raum für Korrekturen gibt.