Waterfall vs. Agile

Früher haben wir für die Verwaltung unserer Produkte die Wasserfallmethode verwendet. Es war natürlich, da es leicht zu verstehen ist und in verschiedenen Sektoren weit verbreitet ist. Es wird auch in allen Managementbereichen an Universitäten gelehrt.
Die Methodik, die wir verfolgen, beinhaltet das Sammeln aller Inputs des Kunden zu Beginn eines Projekts, was als Grundlage für das gesamte Projekt dient. Alle Änderungen oder Unterschiede werden zunächst aus vertraglicher Sicht behandelt, bevor sie in den Code implementiert werden. Auf der Grundlage der vereinbarten Angaben bieten wir einen Festpreis für das Projekt an. Um das Projekt effektiv zu verwalten, unterteilen wir es in Phasen, und der Kunde zahlt nach jeder abgeschlossenen Phase.
Unsere Methodik besteht aus vier Phasen:
In dieser Phase führen wir eine gründliche Analyse der Eingaben, Geschäftsziele, Prozesse und Marketingstrategien des Kunden durch. Wir ermitteln auch funktionale und nichtfunktionale Anforderungen sowie die unterstützten Geräte. Diese Analyse hilft uns bei der Erstellung einer Projektdokumentation, in der die vorgeschlagene Lösung skizziert wird, manchmal einschließlich Wireframes. Darüber hinaus führen wir eine technische Analyse durch, um die vorgeschlagene Architektur, Technologie und Datenbank zu beschreiben.
In dieser Phase unterteilen wir das Projekt in technische Aufgaben, schätzen die Aufgaben ab, erstellen ein Budget und geben dem Kunden einen Überblick über die zu erwartenden Implementierungskosten.
In dieser Phase wird am grafischen Design der Lösung gearbeitet. Wir geben dem Kunden 2-3 Wiederholungen Feedback zum Design, bevor wir mit der Umsetzung der geplanten Aufgaben beginnen. Während dieser Phase wird der Kunde regelmäßig über den Fortschritt des Projekts informiert. Am Ende wird das Endprodukt geliefert. Alle neuen Anforderungen, die in dieser Phase eingeführt werden, werden als zusätzlicher Aufwand betrachtet und müssen vom Kunden geschätzt und genehmigt werden.
Nach der Lieferung des fertigen Produkts an den Kunden vereinbaren wir in der Regel einen SLA-Vertrag und bieten über einen definierten Zeitraum fortlaufenden Support für die Lösung. Wenn der Kunde das Projekt in einer beliebigen Phase des Projekts verlassen möchte, müssten wir uns auf die Bedingungen für die Stornierung von Bestellungen und den Vertrag einigen.
Wir sagen nicht, dass dieser Ansatz völlig falsch ist. Es kann für einige kleine Projekte oder für die Erstellung derselben Softwarelösung für jeden Kunden geeignet sein. Aber das ist nicht das, was wir normalerweise tun. Wir entwickeln maßgeschneiderte Software für unsere Kunden. Wir sind in der Lage, grobe Schätzungen auf der Grundlage unserer bisherigen Erfahrungen abzugeben, aber je komplizierter oder umfangreicher das Projekt ist, desto schwieriger wird es, jedes Detail zu Beginn des Projekts durch uns oder sogar durch die Kunden zu spezifizieren.
Manchmal ist es uns passiert, dass sich während der Entwicklung die verantwortliche Person vom Kunden oder deren Unternehmensprozess geändert hat. Oder dass Kunden, wenn sie das entwickelte Feature oder die entwickelte Grafik endlich gesehen haben, feststellen, dass sie anders funktionieren müssen oder dass aufgrund von Änderungen im Verhalten der Endbenutzer oder auf dem Markt etwas geändert werden muss.
All diese Dinge bedeuteten Änderungen der Anforderungen, die in der Regel an das bereits entwickelte Produkt gestellt wurden. Am Ende war der Kunde mit dem Projekt nicht zufrieden, weil die ursprünglichen Anforderungen nicht den tatsächlichen Bedürfnissen entsprachen, und wir waren mit dem Projekt nicht zufrieden, da die Projektkosten stiegen und die Kunden sehr hart über die benötigten zusätzlichen Ressourcen verhandelten.
Einschränkungen der Waterfall-Methode:
Deshalb haben wir langsam begonnen, den Ansatz zu ändern. mit neuen Kunden.
Am Anfang haben wir etwas zwischen Agile und Waterfall gemacht, eher wie ein Hybrid. Die Kunden waren Agile nicht gewohnt und vertrauten ihr am Anfang nicht sonderlich, also gingen wir Kompromisse ein. Wir haben uns auf einen festen Zeitplan und ein ungefähres Budget auf der Grundlage der angegebenen Anforderungen geeinigt. Der Unterschied zur vorherigen Wasserfallmethode besteht darin, dass wir eng mit Kunden von Agile zusammengearbeitet haben. Wir haben die Lieferung in Sprints aufgeteilt, wir haben alle 2 Wochen eine Demo für den Kunden durchgeführt und wir haben daran gearbeitet, die Anforderungen mindestens einen Sprint im Voraus zu spezifizieren.
Die Zusammenarbeit mit dem Kunden und seine Zufriedenheit mit dem Endprodukt waren viel besser, aber dennoch wuchs der Produktbestand während des Projekts, sodass auch der Zeitplan verschoben werden musste. Der Nachteil dieser Zusammenarbeit war wiederum, dass jede weitere Stunde, die wir aufwenden mussten, viel Zeit für Berichterstattung und Verteidigung aufgewendet wurde. Es war keine Win-Win-Partnerschaft, die wir haben wollten.
Wir wussten, dass die nächste Zusammenarbeit rein agil sein musste. Wir haben unsere Verträge überarbeitet und im Laufe der Jahre wurden die Agile-Methode und ihre Vorteile bei den Kunden immer bekannter.
Warum Agile?
Wir legen Wert auf Ehrlichkeit und Transparenz, wenn wir ein Projekt mit Kunden beginnen. Anstatt feste Termine und Preise zu versprechen, erstellen wir grobe Schätzungen, die auf ersten Ideen oder Spezifikationen basieren.
Wir arbeiten jedoch eng mit dem Kunden zusammen, um die Bedürfnisse und Anforderungen der Endbenutzer zu verfeinern und den Umfang des Projekts an ein mögliches Budget anzupassen.
Unser vorrangiges Ziel ist es, unseren Kunden qualitativ hochwertige Arbeit zu bieten, und wir priorisieren dies, indem wir uns bei jedem Sprint auf unsere umfangreiche Erfahrung, unser Fachwissen und unser unerschütterliches Engagement verlassen. Wir glauben, dass wir durch die enge Zusammenarbeit mit unseren Kunden und die konsequente Weiterentwicklung der Bedürfnisse und Anforderungen der Endnutzer qualitativ hochwertige Arbeit liefern können, die ihren Erwartungen entspricht. Darüber hinaus setzen wir uns dafür ein, dass unsere Kunden die vollständige Kontrolle über ihre Projekte haben und jederzeit einen anderen Softwareanbieter wählen können, wenn sie mit unseren Dienstleistungen unzufrieden sind.
Wir glauben, dass unser Erfolg als Softwareentwicklungsunternehmen letztlich von der Zufriedenheit unserer Kunden abhängt, und wir bemühen uns sicherzustellen, dass jedes Projekt, das wir durchführen, zu einem positiven Ergebnis für beide Parteien führt.
Von den agilen Methodenframeworks aus verwenden wir hauptsächlich Scrum, aber für einige Projekte auch Kanban. Wir arbeiten meistens in kurzen, zweiwöchigen Iterationen und zeigen, diskutieren und wiederholen die Ergebnisse am Ende eines Sprints mit den Kunden. Wir sammeln Feedback, leiten es in eine Aufgabe um und priorisieren, je nach Absprache mit dem Kunden.
Wenn ein Kunde einen plötzlichen Richtungswechsel benötigt, ist das kein Problem, denn bei Agile sind wir nicht an feste Verträge oder starre Prozesse gebunden. Wir klären einfach die Bedürfnisse mit dem Kunden und planen die Änderung gegebenenfalls ab dem nächsten Sprint.
Empfohlene Lektüre für Sie
Neue Blogbeiträge, die Sie interessieren könnten
Jakub Bílý
Leiter/in Geschäftsentwicklung