Ein Leitfaden für Einsteiger in die agile Entwicklung für SAP
Die agile Entwicklung gehört seit einigen Jahrzehnten zu den Standardverfahren für die Softwareentwicklung, und das aus gutem Grund: Sie hilft den Entwicklungsteams nachweislich, qualitativ hochwertigere Software in kürzerer Zeit zu liefern.
Während viele Unternehmen in ihrer IT-Landschaft agile Entwicklungstechniken einsetzen, verwenden die meisten SAP-Teams nach wie vor einen eher traditionellen "Wasserfall"-Ansatz.
In diesem Blog werden wir erörtern, warum agile Entwicklung vorteilhaft ist und wie der Ansatz in SAP-Umgebungen angewendet werden kann.
Warum agile Entwicklung?
Das Tempo der Digitalisierung hat in den letzten Jahren exponentiell zugenommen, nicht nur aufgrund globaler Ereignisse, sondern auch aufgrund sich ändernder Kunden- und Marktanforderungen. Um diesen Anforderungen gerecht zu werden, ist eine Digital-First-Strategie erforderlich, die auf IT-Systemen basiert, die flexibel und reaktionsschnell sind, ohne die Stabilität zu beeinträchtigen.
Eines der wichtigsten dieser IT-Systeme ist SAP, aber die traditionellen Methoden für die Entwicklung und Bereitstellung von Änderungen an SAP können einfach nicht mit den Anforderungen des Unternehmens Schritt halten. Agile Entwicklung ist bei IT-Teams, die nicht mit SAP arbeiten, weit verbreitet, was bedeutet, dass sie bereit sind, mit hoher Geschwindigkeit zu arbeiten und schnell auf Marktveränderungen zu reagieren. Da SAP jedoch häufig mit anderen Systemen verbunden ist, können sich diese Systeme nur so schnell anpassen wie SAP selbst. SAP wird dann zum Engpass für die Schaffung von Mehrwert und Innovation.
Ein Artikel von McKinsey hat gezeigt, wie schwerwiegend dieser Engpass sein kann: 75 % der ERP-Umstellungsprojekte scheiterten an der Einhaltung von Zeit und Budget. Ihre Untersuchung zeigte fünf Hauptgründe dafür auf, von denen mir drei besonders auffielen: mangelnde Integration zwischen dem Unternehmen und der IT-Abteilung, mangelnder Fokus auf die Bereitstellung von Geschäftswert im Gegensatz zur technischen Ausführung und die traditionelle Wasserfall-Methode bei der ERP-Entwicklung.
Die gute Nachricht ist, dass die agile Entwicklung in SAP Ihnen helfen kann, einige dieser Herausforderungen zu lösen, sowohl bei großen ERP-Transformationsprojekten, wie z.B. der Umstellung auf S/4HANA, als auch bei der Bereitstellung von tagtäglichen Änderungen und kleineren Projekten.
Die Vorteile der agilen Entwicklung für SAP
Das Ziel der agilen Entwicklung ist es, häufiger qualitativ hochwertige Software zu liefern, damit die Kunden schneller einen Mehrwert/konkreten Nutzen erhalten.
Die Entwicklung und Bereitstellung von Änderungen auf diese Weise macht es auch wesentlich einfacher, das Risiko und die Ungewissheit von Großprojekten zu planen und zu mindern. Es ist unmöglich, auch nur ein paar Monate im Voraus zu wissen, was passieren wird. Die Aufteilung größerer Projekte in kleinere Teilprojekte ermöglicht es den Teams, sich schnell an die auftretenden Änderungen anzupassen.
Agile Entwicklung reduziert auch die Auswirkungen und Risiken, die Softwareänderungen auf Ihre Systeme und Benutzer haben können. Wenn Sie einige Male im Jahr viele große Änderungen einführen, dauert es länger, bis diese Änderungen einen Nutzen bringen, da die Benutzer Zeit brauchen, um sie zu erlernen und sie vollständig zu nutzen. Durch die häufigere Bereitstellung kleinerer Änderungspakete werden die Benutzer viel schneller geschult, so dass sie die Vorteile früher nutzen können. Kleinere Änderungen bedeuten auch ein geringeres Risiko aus technischer Sicht, da einfach weniger Dinge kaputt gehen können.
Die Priorisierung ist ein weiterer wichtiger Bestandteil der agilen Entwicklung. Jeder, der schon eine Weile mit SAP zu tun hat, kennt die Frustration, wenn man eine Version bereitstellt, deren Entwicklung Monate gedauert hat, und dann feststellen muss, dass einige der Änderungen nicht mehr benötigt werden oder nicht den Anforderungen des Kunden entsprechen. Ein agiler Entwicklungsansatz ermöglicht es den Teams, die Prioritäten immer wieder neu zu setzen, um sicherzustellen, dass das, was geliefert wird, auch tatsächlich von Wert ist.
Bei größeren Projekten ist es schwierig, den finanziellen Nutzen zu erkennen, bis sie veröffentlicht sind und die finanziellen Auswirkungen mit dem investierten Betrag verglichen werden. Wenn Sie größere Projekte in kleinere Leistungen aufteilen, erhalten Sie eine bessere Vorstellung von den Kosten und dem Ertrag. Bei der agilen Entwicklung können Sie die Investitionen und den Nutzen jeder einzelnen Bereitstellung nachverfolgen, während diese freigegeben wird.
Ein weiterer wichtiger Vorteil der agilen Entwicklung besteht darin, dass die Freigabe kleinerer Arbeitseinheiten den Status der Softwareentwicklung und die erzielten Fortschritte besser sichtbar macht. Dies ist vor allem bei SAP-Systemen wichtig, da viele SAP-Teams in organisatorischen Silos arbeiten und nur einen begrenzten Überblick haben.
Wie man agile Entwicklung in SAP umsetzt
Bei der agilen Entwicklung handelt es sich nicht um eine vordefinierte Checkliste von Aufgaben, die erledigt werden müssen. Es handelt sich vielmehr um eine Methodik oder eine Reihe bewährter Verfahren, die auf verschiedene Weise angewandt werden können. Drei der gängigsten Methoden sind Kanban, Scrum und Scaled Agile Framework for Enterprises (SAFe ®).
Kanban wurde in den frühen 1940er Jahren in den Produktionssystemen von Toyota entwickelt. Es geht darum, eine Liste mit jeder auszuführenden Aufgabe zu erstellen und diese Aufgaben nach und nach in der Reihe abzuarbeiten. Wenn Sie schon einmal Spalten auf einem Whiteboard mit Post-it-Zetteln gesehen haben, die je nach Arbeitsfortschritt über die Tafel verschoben werden, dann ist das Kanban. Wenn Sie jemals Anwendungen wie Trello oder Jira verwendet oder gesehen haben, handelt es sich um weit verbreitete Kanban-basierte Tools.
Scrum ist wahrscheinlich die am weitesten verbreitete agile Methode, die ich bei Unternehmen sehe, die in SAP agil arbeiten, vor allem, weil sie etwas strukturierter ist (es handelt sich um einen Timebox-Ansatz mit einem definierten Arbeitsumfang) die sich bei größeren Projekten leichter anwenden lässt. Wir werden uns später noch näher mit Scrum befassen.
Schließlich gibt es noch SAFe, einen stark strukturierten Ansatz mit vielen verschiedenen Ebenen und Skalen. Bei SAFe geht es im Allgemeinen darum, die Konzepte der Agilität auf die gesamte Organisation zu übertragen, nicht nur auf die Softwareentwicklung, so dass es auch andere Dinge wie die Budgetplanung einschließt.
Es gibt keinen richtigen oder falschen Weg, agil zu arbeiten. Sie müssen eine Lösung finden und anpassen, die für Ihr Team am besten funktioniert. Hier bei Basis Technologies verwenden wir zum Beispiel Kanban für Dinge wie Support-Tickets und Fehlerbehebungen und Scrum für unsere größeren Entwicklungsprojekte.
Warum die meisten Teams Scrum verwenden
Scrum fügt sich gut in die agile Methodik ein, da es auf kleinen, definierten Arbeitsabschnitten, den so genannten "Sprints", basiert. Diese sind in der Regel zwei bis vier Wochen lang und umfassen ein kleines Team, das an einer ganz bestimmten Reihe von Aufgaben arbeitet, die als "Sprint Backlog" bezeichnet werden.
Es handelt sich um einen sehr kooperativen Ansatz, bei dem alle Teammitglieder täglich ein Meeting oder "Stand-Up" abhalten, bei dem sie besprechen, woran sie arbeiten und welche Engpässe oder Probleme auftauchen, die das Team beheben könnte. Ziel ist es, die typischen Silos, in denen Teams arbeiten, zu durchbrechen und alle Beteiligten dazu zu bringen, gemeinsam und schnell Software zu entwickeln.
Die Scrum-Teams, die an jedem Sprint arbeiten, bestehen aus mehr als nur EntwicklerInnen. In einem Standard-SAP-Scrum-Team gibt es auch den Scrum Master, der im Grunde ein Projektmanager ist, und den Product Owner, der den Kunden oder den Endbenutzer vertritt. SAP-Scrum-Teams bestehen in der Regel auch aus Mitgliedern der Basis-, QS- und Konfigurationsteams.
Produkt-Backlog
Das Produkt Backlog wird verwendet, um die Arbeit zu definieren, die in jedem Sprint stattfinden wird, und die Anforderungen im Product Backlog werden in so genannten "User Stories" organisiert. In einer User Story wird definiert, was der Benutzer braucht, warum er es braucht und welches Ergebnis er sich wünscht. Dies ist ein typischer Punkt, an dem SAP-Teams bei der Einführung von agilem Vorgehen Schwierigkeiten haben, weil sie bei der Entwicklung nicht in kleinen Stücken denken, sondern in großen, langfristigen Projekten. Diese kleinen User Stories sind jedoch das Rückgrat der agilen Entwicklung, da sie dazu beitragen, den Kunden den Wert dann zu liefern, wenn sie ihn brauchen, und nicht erst in drei, sechs oder zwölf Monaten.
User Stories (Epics) können Teil von übergreifenden Zielen sein, die als "Themen" bezeichnet werden. Themen befassen sich mit den Ergebnissen, die Sie zu erreichen hoffen, und es kann sogar Ziele auf mittlerer Ebene geben, die als "Epos/Epics" bezeichnet werden und zwischen den User Stories und dem Thema liegen. Sie würden dann eine bestimmte Anzahl von User Stories in einem Sprint definieren und eine Epic über eine bestimmte Anzahl von Sprints liefern.

Wie Sie im obigen Diagramm sehen können, können wir diesen Arbeitsablauf in SAP abbilden. Sie könnten zum Beispiel "Vertrieb" als Thema haben, mit Dingen wie "Wasser" und "Vertragsmanagement" als Untergruppen, und dann könnte der Prozessschritt so etwas wie die Bearbeitung einer Rücksendung sein. Der Prozessschritt ist der Ort, an dem die User Stories liegen, und das ist der Teil, der für die agile Entwicklung entscheidend ist.
Agile Werkzeuge
Es gibt viele Tools für die Verwaltung des agilen Backlogs wie Jira, ServiceNow, Azure DevOps und andere, aber in der Regel gibt es keine Möglichkeit, diese Tools mit SAP zu verbinden. Hier kommt ActiveControl, unser SAP DevOps-Automatisierungstool, ins Spiel. Mit ActiveControl kann jeder von Ihnen erstellte Transport automatisch mit einer User Story in Ihrem agilen Management-Tool verknüpft werden, so dass Sie vollständige Transparenz darüber haben, welche Aufgaben gerade in Bearbeitung sind, wer daran arbeitet und so weiter.
Verwaltung einer gemeinsamen Entwicklungsumgebung
Eine der größten Herausforderungen für SAP-Teams bei der Einführung der agilen Entwicklung ist die gemeinsame Entwicklungsumgebung von SAP. Mehrere Teams (70 im Falle eines unserer Kunden) arbeiten an verschiedenen Aufgaben mit unterschiedlichen Zielsetzungen in derselben Entwicklungsumgebung und derselben Codebasis. Das schafft große Probleme und Kopfschmerzen, weshalb Automatisierungswerkzeuge wie ActiveControl für die Verwaltung des Ganzen entscheidend sind. ActiveControl verfolgt automatisch jede Änderung, während sie durchgeführt wird, zusammen mit demjenigen, der sie durchgeführt hat, so dass Sie während des gesamten Sprints einen vollständigen Überblick über die erledigte Arbeit haben.
Shift Left
Ein weiterer Bereich, in dem Automatisierung und agile Entwicklung Hand in Hand gehen, ist die Verlagerung von Tests nach links, um Probleme früher zu erkennen und die Qualität der Releases zu verbessern. SAP verfügt über eigene Werkzeuge wie ABAPUnit-Tests, Code Inspector und ABAP Test Cockpit. ActiveControl kann Ihnen dabei helfen, diese Werkzeuge in Ihren Entwicklungszyklus einzubauen, um sicherzustellen, dass keine Transporte freigegeben werden, bevor die entsprechenden Prüfungen durchgeführt und abgezeichnet wurden.
Überprüfung & Feedback
Der letzte Teil von Scrum ist die Überprüfung der geleisteten Arbeit und die gemeinsame Arbeit an der Verbesserung des Prozesses für den nächsten Sprint. Der Sprint-Review dient dazu, die Arbeit zu bewerten, die Sie geplant hatten, welche Arbeit Sie geleistet haben und wie erfolgreich Sie beim Erreichen Ihrer Ziele waren. Es ist auch eine Gelegenheit, die Prioritäten für die Stories neu zu setzen und den nächsten Sprint zu planen.
In der Sprint-Retrospektive geht es eher darum, wie die Arbeit geleistet wurde, wie der Prozess verbessert werden kann, welche Herausforderungen aufgetreten sind und wie Sie diese bewältigen können.
Zusammenfassung
Agile Entwicklung für SAP ermöglicht es Ihnen, moderne Entwicklungspraktiken auf Ihre SAP-Landschaft anzuwenden, damit Sie Änderungen schnell erstellen und umsetzen können. Durch die schnellere und häufigere Bereitstellung hochwertiger Software sind Unternehmen besser in der Lage, auf die sich ändernde Marktdynamik zu reagieren und einen Wettbewerbsvorteil zu wahren.
Wenn Sie neugierig sind, wie Sie agile Methoden in Ihrer SAP-Landschaft einsetzen können, setzen Sie sich mit uns in Verbindung, um zu erfahren, wie wir Ihrem Unternehmen helfen können.