Wir entwickeln agil.

Was hat ein Wasserfall mit Softwareentwicklung zu tun?

Mit Wasserfall- oder Kaskadenmethode wird der Ablauf eines Entwicklungsprojektes beschrieben, bei dem alle Schritte nacheinander erfolgen und aufeinander aufbauen. Also der klassische Weg: Erst wird alles exakt geplant und dann wird dieser Plan genauso exakt umgesetzt.

Komplexität beherrschbar machen

Software ist von Natur aus komplex. Wenngleich am Anfang einer Entwicklung klar ist, welches Ziel grundsätzlich erreicht werden soll, erschließen sich viele Details erst im fortschreitenden Entwicklungsprozess.

Die klassische Wasserfall-Methode ist zu starr, um der Dynamik realer Software-Entwicklungsprojekte zu genügen.

Neben der Komplexität stellt sich in der Praxis oft auch heraus, dass die Anforderungen an die zu entwickelnde Lösung im Detail doch nicht so klar sind, wie man anfänglich glaubte. Zudem wäre oft eine Möglichkeit zum Ausprobieren wünschenswert, um eine Anforderung klarer formulieren zu können oder sich für eine von mehreren Lösungsmöglichkeiten zu entscheiden.

Flexibilität durch Agilität

Mit einer agilen Vorgehensweise kann der Entwicklungsprozess flexibilisiert werden. Planung und Entwicklung bauen nicht aufeinander auf, sondern werden ineinander verschränkt.

Dabei besteht das Ziel, möglichst frühzeitig prototypenhaft Ergebnisse (Previews) zu produzieren, die vom Auftraggeber und von den Entwicklern gleichermaßen getestet, bewertet und verbessert werden können und auf die zunehmend solider ein nächster Planungs- und Entwicklungszyklus aufbaut.

So können Anforderungen genau dann exakt formuliert werden, wenn alle Rahmenbedingungen wirklich klar sind. Ändern sich Anforderungen, kann vergleichsweise leicht darauf eingegangen werden. Alternativen können prototypenhaft aufgebaut und ausprobiert werden. Das Risiko von Fehl- oder Falsch-Entwicklungen wird drastisch reduziert. Alle Projektbeteiligten können in den Planungs-, Entwicklungs- und Abnahmeprozess frühzeitig eingebunden werden.

Problematisch: Klassische Werkverträge

Diese agile Vorgehensweise kollidiert jedoch oft mit klassischen Vertragskonstruktionen. In einem Werksvertrag sind die Leistungen vor Vertragsdurchführung exakt und abnehmbar zu bestimmen und zu kalkulieren. Bei einer agilen Projektdurchführung gibt es vorab zwar eine Grobplanung, aber eben kein exaktes Pflichtenheft, da die Anforderungen per Definition erst schrittweise zur Projektlaufzeit entwickelt werden.

SCRUM - ein bewährter agiler Projektrahmen

Die Wasserfall-Methode bietet klassisches, planvolles Vorgehen. Wie kann bei agilem Vorgehen dennoch Planbarkeit und damit auch Vertragssicherheit erreicht werden? Dafür haben sich verschiedene Methodenrahmen entwickelt. Der wichtigste agile Methodenrahmen, den auch wir vom ITZ verfolgen ist SCRUM. In diesem Rahmen werden für einen Entwicklungsprozess genaue Rollen und Abläufe definiert. Im Mittelpunkt der Methode stehen die Sprints - einzelne, in sich abgeschlossene (Teil-)Entwicklungszyklen oder auch Miniprojekte auf der Grundlage eines ausschließlich genau für diesen Sprint definierten Satzes von Anforderungen. Aus einem abgeschlossenen Sprint werden die Anforderungen für den nächsten Sprint abgeleitet.

Aber nicht nur in der eigentlichen Entwicklung, sondern auch bei Betrieb, Wartung und Weiterentwicklung hat sich der agile Ansatz bewährt. Das agile Vorgehen wird vom Entwicklungsbereich (Dev) in den Betriebsbereich (Ops) verlängert (DevOps).

Welche Vorteile entstehen dadurch für unsere Kunden? 

Die direkte Kommunikation der Entwickler mit Kompetenzträgern verbessert das Verständnis für Anforderungen und Lösungsoptionen. Die durch die Sprints gegebenen kurzen Release-Zyklen ermöglichen eine kontinuierliche Verbesserung des entstehenden Endproduktes und eine schnelle Beseitigung von Problemen. Eventuelle Engpässe auf Seite des Auftraggebers (Anforderungsanalyse, Konzeption, Dokumentation, Test, Betrieb) können kurzfristig und unkompliziert vom SCRUM-Team abgefedert werden. Durch Einbindung des Teams in alle DevOps-Prozesse wird eine bestmögliche Wartung erreicht.

Die Zusammenarbeit, Kommunikation und Dokumentation erfolgt mit Unterstützung leistungsfähiger Tools, wie das Wiki-System Confluence oder die Aufgaben- und Ticketverwaltung Jira.

Wie sichern wir Kundenzufriedenheit? 

Das Prinzip der agilen Methode besteht vor allem darin, frühzeitig Prototypen auszuliefern und diese immer weiter zu entwickeln. Durch nächtliche Auslieferung auf ein Preview-System, auf welches Sie als Kunde Vollzugriff haben, können Sie den Entwicklungsfortschritt jederzeit prüfen, das System testen und Änderungswünsche einbringen. Mit automatisierten Tests stellen wir gleichzeitig eine weitgehende, formale Korrektheit des produzierten Codes sicher.

Wie beziehen wir unsere Kunden ein? 

Sie sind Bestandteil des SCRUM-Teams! Täglich wird ein so genannter "Daily Scrum" per Telefonkonferenz angehalten. Darüber hinaus findet eine bedarfsorientierte, kurzfristige, direkte Kommunikation über verschiedene Kanäle, wie etwa Mattermost, E-Mail, Telko, Skype oder WebEx statt.

Es besteht die Möglichkeit, auf Wunsch auf dem GIT Repository des Kunden zu arbeiten.

Welche Kontrolle, Einflussnahme und Mitsprache gewähren wir unseren Kunden? 

Sie erhalten Zugriff auf das GIT Repository, Jira und Confluence der Entwickler. Die Sprint Planings, Retrospektiven, Refinements, Reviews erfolgen gemeinsam, ebenso wie Sicherung der Code-Qualität, das Testing, Reporting und die Dokumentation. Dazu legen wir Ihnen regelmäßig Ergebnisse vor, zu:

  • Code-Qualität
  • Abdeckung mit automatisierten Tests
  • Ergebnisse von automatisierten GUI Tests
  • Last- und Performance-Testergebnissen mit JMeter

 

Übrigens, auch wenn sich der vereinbarte Projekt- und Vertragsrahmen mit dem Kunden eher an der Wasserfall-Methode orientiert, "übersetzen" wir dies intern in einen agilen Projektrahmen.