Auf einen Blick – Unterschiede zwischen agiler Softwareentwicklung und DevOps
Wenn ich anmerke, dass die besten Unternehmen SAP nutzen, würden Sie mir sicherlich sofort zustimmen. Wenn ich sagen würde, dass dabei die Bereiche Entwicklung und Testing eher behäbig und träge ablaufen, kämen Sie nicht umhin, mir auch hier beizupflichten. Der starre Wasserfall-Ansatz für die Auslieferung neuer Funktionen, Bugfixes und Updates in einer traditionellen Softwareentwicklung ist insbesondere in der Welt von SAP felsenfest verankert.
Doch viele führende globale Marken wie Facebook, Walmart, Sony Pictures und Zalando verfolgen inzwischen neue Ansätze, um ihre Unternehmen wettbewerbsfähiger und kundenorientierter auszurichten. Dazu gehören agile Softwareentwicklung und DevOps – zwei moderne Entwicklungsmethoden, die eine schnelle Reaktion auf die Veränderungen in der digitalen Welt ermöglichen. Zudem können diese neuen Ansätze Kosten und Risiken senken und dabei die Qualität steigern.
Die Vorteile dieser Methoden werden immer offensichtlicher und kommen auch in Unternehmensanwendungen wie SAP immer mehr zum Einsatz. Dieser Artikel befasst sich mit den Unterschieden zwischen den drei Methoden Wasserfall, Agilität und DevOps.
Der Wasserfall-Ansatz: Der Standardprozess für SAP
Um zu verstehen, worin sich die agile Softwareentwicklung und DevOps von traditionellen Arbeitsweisen unterscheiden, ist es ratsam, zunächst den Wasserfall-Ansatz zu definieren.
Die Softwareentwicklung nach dem Wasserfall-Prinzip lehnt sich an Verfahren aus der Herstellung und dem Bauwesen an. Mithilfe eines klar strukturierten, linearen Weges hin zu einem Endprodukt wird garantiert, dass alle Systeme vorhersehbar funktionieren und im Voraus spezifiziert werden können.
Im Wasserfall-Modell werden alle Projektanforderungen vorher festgelegt. Im Anschluss erfolgen Design, Implementierung, Prüfung und Wartung. Die letztendliche Freigabe des Endprodukts erfolgt auf einen Schlag. Während des gesamten Prozesses wird vorausgesetzt, dass der Bedarf im üblichen Geschäftsbetrieb ähnlich bleibt. Die Teams sind in Silos getrennt organisiert und arbeiten anhand einer umfassenden Dokumentation. Automatisierung ist nicht vorgesehen; das Testing erfolgt als Projektabschluss ganz am Ende.
In SAP Umgebungen, mit ihrem hohen Grad an Integration und zahlreichen Abhängigkeiten, wurde der Wasserfall-Ansatz zur akzeptierten Praxis.
Doch mit den richtigen Veränderungen in der Unternehmenskultur und einigen Anpassungen der Prozesse und Tools kann auch die SAP Entwicklung von agiler Softwareentwicklung und DevOps profitieren. So kann ein Unternehmen die Flexibilität erreichen, wie sie im heutigen, schnelllebigen Wettbewerb erforderlich ist.
Die agile Softwareentwicklung
Die agile Methode geht auf das agile Manifest (Manifesto for Agile Software Development) zurück, das im Jahre 2001 von einer Gruppe Entwickler veröffentlicht wurde. Softwareentwicklung wird darin als ein anpassbarer, code-orientierter Ansatz definiert, der auf Zusammenarbeit basiert. Das Hauptaugenmerk liegt dabei auf folgenden Grundsätzen:
- Menschen und Zusammenarbeit stehen über Prozessen und Tools.
- Funktionierende Software steht über umfassender Dokumentation.
- Kundenmitarbeit steht über der Vertragsverhandlung.
- Reagieren auf Veränderungen steht über dem Befolgen eines Plans.
Diese eher formale Entwicklungsmethodik macht sich eine Reihe gängiger Frameworks zunutze. Dazu zählen Scrum – ein Teamkonzept, das sich auf regelmäßige Tätigkeiten konzentriert, die in sogenannten Sprints durchgeführt werden – und Kanban – eine schlank organisierte Methode zur Verwaltung von Arbeit in humanbasierten Systemen.
Im Gegensatz zum Wasserfall verlaufen hierbei agile Entwicklung und Tests Hand in Hand – während des Prozesses statt am Ende des Prozesses. Die Teams kommunizieren mit den Verantwortlichen und den Kunden und beziehen alle Beteiligten bei jedem Schritt mit ein. Die Dokumentation wird auf das Minimum beschränkt. Feedback wird sehr häufig abgefragt und Qualitätsprobleme werden nach jedem Sprint bearbeitet.
Der iterative Lieferansatz der agilen Softwareentwicklung ermöglicht eine Verschiebung der Prioritäten für wöchentlichen oder sogar täglichen Mehrwert und reduziert gleichzeitig deutlich das Projektrisiko. Typische sechsmonatige Wasserfall-Lieferpläne müssen erst abgeschlossen werden, bevor eventuelle Kurskorrekturen gemacht werden können. Im Gegensatz dazu reagiert die agile Softwareentwicklung flexibel, kontinuierlich und regelmäßig auf spezifische, sich herauskristallisierende Bedürfnisse.
DevOps
DevOps führt das agile Konzept einen Schritt weiter. Ziel ist es, der IT eine noch flexiblere Reaktion auf Geschäftsanforderungen zu ermöglichen, indem funktionsübergreifende, multidisziplinäre Teams in einem kollaborativen Ökosystem vernetzt werden. Dafür werden Mitarbeiter aus Entwicklung, Testing, QA, Betrieb und Sicherheit sowie andere Stakeholder über den gesamten Projektlebenszyklus hinweg eingebunden. Dies wiederum unterstützt kontinuierliches Testen, Integrieren, Ausliefern und Bereitstellen von stabiler, qualitativ hochwertiger Software, die durch kontinuierliches Feedback begleitet und durch Automatisierung optimiert wird.
Gene Kim, anerkannter Forscher, Autor und CTO, beschreibt „die drei Wege“ von DevOps wie folgt:
- Leistungsfähigkeit eines Gesamtsystems, das dem Kunden von der Entwicklung bis hin zum Regelbetrieb einen Mehrwert schafft.
- Optimierung von Feedback-Schleifen zur kontinuierlichen Verbesserung von Korrekturarbeiten.
- Schaffung einer Kultur des Experimentierens und Lernens, um kontinuierliche Verbesserung und Innovation zu erzielen.
Bevor ein Unternehmen eine Entwicklungsumgebung basierend auf DevOps einsetzen kann, muss es zunächst einen agilen Entwicklungsprozess in einer kollaborativen Arbeitskultur verankern und das Programm mit der richtigen Technologie unterstützen, um Erfolg zu haben.
Eine Möglichkeit dafür bietet das CALMS-Modell, ein Framework zur Einbeziehung von DevOps in ein Organisationsmodell, das auf Kultur (C), Automatisierung (A), Lean (L), Messung (M) und Sharing (S) basiert. Es gibt aber auch andere Wege. Es ist jedoch richtig, dass der agile Ansatz eine Voraussetzung für DevOps ist; umgekehrt ist dies jedoch nicht der Fall. DevOps beruht auf einer agilen Arbeitsweise, aber die agile Entwicklung bleibt in ihrer Wiederholbarkeit erhalten, wenn sie von DevOps getrennt genutzt wird. DevOps ist der Weg, um eine kontinuierliche Umsetzung von Veränderungen zu gewährleisten.
Die Vorteile von agiler Softwareentwicklung/DevOps in SAP
Wie können diese Methoden also dazu beitragen, ein komplexes und mit unternehmensweiten Abhängigkeiten versehenes System wie SAP zu transformieren?
Zunächst einmal kann das Bereitstellen selbst kleinerer Änderungen in SAP Systemen ohne DevOps zeitaufwändig sein, was oft zu langen Freigabezyklen, Systeminstabilität und hohen Risiken führt. Die Teams arbeiten getrennt voneinander, die Prozesse beruhen auf manuellen Arbeitsschritten und sind fehleranfällig. Da die Sichtbarkeit des Workflows nicht gegeben ist, ist diese Arbeitsweise nach wie vor ineffizient und verursacht hohe Gemeinkosten.
Mit DevOps-Builds im Zusammenhang mit agiler Entwicklung können Sie für SAP…
- Fehler schnell feststellen und schnell beheben, indem Anforderungen im Rhythmus des Geschäftsbetriebs ausgeliefert werden.
- Durch die Unterteilung von Releases in kleine Batches werden Risiken reduziert und Erfolge schneller sichtbar.
- Provisorische Abhilfemaßnahmen werden vermieden und ein schlanker Ansatz bei der Software-Bereitstellung genutzt.
- Sichtbarkeit und Kontrolle unter Einbeziehung aller Beteiligten – jeden Tag.
- Schnelle Rückkehr zur Normalität ohne Risiken und Unsicherheiten, wie sie bei umfangreichen Bereitstellungen bestehen.
Zusammen bieten die agile Entwicklung und DevOps Ihren IT-Teams die nötigen Werkzeuge für eine schnelle und kundenorientierte Implementierung von Änderungen, was Ihrem Unternehmen letztlich einen entscheidenden Wettbewerbsvorteil einbringt. Eine Kombination beider Ansätze kann in der SAP Welt für eine einschneidende Veränderung sorgen.
Wir von Basis Technologies sind der festen Überzeugung, dass es für Unternehmen keinen Grund gibt, auf die Vorteile dieser Ansätze zu verzichten. Wenn Sie mehr darüber erfahren wollen, wie wir Ihrem Unternehmen zu einer effizienteren Nutzung von SAP verhelfen können, fragen Sie eine kostenfreie Produktpräsentation an.
Übersicht der verschiedenen Entwicklungsmethoden:
