Einblicke in die agile Softwareentwicklung mit Scrum
Viele Softwareprojekte, die nach dem Wasserfallmodell entwickelt werden, stoßen mit dem bisherigen Projektmanagement an ihre Grenzen. Agile Softwareentwicklung gilt oft als die Lösung für dieses Problem – schnell und flexibel sollen die Ergebnisse erarbeitet werden. In diesem Beitrag geben wir Ihnen Einblicke in die Softwareentwicklung mit Scrum, die seit 2011 beim ERP-System GODYO P4 Anwendung findet.
Agile Verfahren werden in immer mehr Unternehmen etabliert – allen voran Scrum. Durch fortschreitende Digitalisierung entstehen Wünsche und Anforderungen an eine Software, die heute noch niemand genau benennen kann. Damit erhöht sich das Risiko, eine Lösung am künftigen Bedarf vorbei zu entwickeln. Agile Softwareentwicklung ist eine gute Alternative für dieses Problem: Lösungen und Ergebnisse sollen schnell und flexibel erarbeitet werden, da sich innere und äußere Bedingungen während einer Entwicklungsphase ändern können.
Was ist Scrum?
Bei klassischen Projektmanagementverfahren wird der komplette Funktionsumfang am Anfang festgelegt und allzu oft am Ende festgestellt, dass das Ergebnis so nicht gewünscht war. Mit Scrum wird eine Software iterativ weiterentwickelt und dem Kunden mit Zwischenergebnissen präsentiert. Feedback kann so frühzeitig in die Planung und Weiterentwicklung einfließen und dafür sorgen, dass am Ende das gewünschte Ergebnis erzielt wird. Die Entwicklung findet dabei in mehrwöchigen Sprints statt. Für jeden Sprint wird ein Aufgabenpaket festgelegt, das vom Entwicklungsteam möglichst selbständig abgearbeitet wird. Der Product-Owner des ERP-Systems GODYO P4 sorgt dabei für die Definition der Aufgaben und steht für Rückfragen jederzeit zur Verfügung.
Nach Abschluss des Sprints bewertet das Team den Sprint in einer Retrospektive und zieht ggf. Rückschlüsse, die in die Planung des nächsten Sprints einfließen. Nach jedem Sprint steht eine neue, getestete Version der unseres ERP-Systems GODYO P4 zur Verfügung.
Weniger Bürokratie und Pläne, mehr Flexibilität durch Scrum
Damit agile Softwareentwicklung funktioniert, ist eine Umstellung bei allen Prozessbeteiligten erforderlich. Konkret bedeutet das den Verzicht auf lange Pflichtenhefte und Entwicklungszyklen. Das Anpassen von Plänen und das Verwalten von Change-Requests wird ersetzt durch Flexibilität und kontinuierliche Releases, die den stetigen Fortschritt der Entwicklung dokumentieren. Da sich diese Entwicklungsmethode radikal von traditionellen Verfahren unterscheidet, muss die Entscheidung für agiles Vorgehen bewusst getroffen werden. Anstatt das Entwicklungsergebnis am Ende einmal abzunehmen, werden Ergebnisse regelmäßig beurteilt und das weitere Vorgehen besprochen. Das erfordert insbesondere von Entscheidern Engagement und die Bereitschaft, sich in diesen Prozess einzubringen.
Risiken managen und Schritt für Schritt abbauen
Weder das Endergebnis des Projektes noch der Weg dahin sind vorher bekannt und definiert. Das bedeutet auch, dass nicht in jedem Fall schon alle kritischen Bereiche, die während der Entwicklung auftauchen können, vorhersehbar sind. Vielmehr wird versucht, auftretende Risiken zu managen und diese Schritt für Schritt abzubauen.
Agile Softwareentwicklung mit Scrum
- Produkt-Backlog
Im Produkt-Backlog werden alle Anforderungen und Aufgaben für die Weiterentwicklung unseres ERP-Systems priorisiert, spezifiziert, geschätzt und gesammelt. - Sprint Planung
Bei der GODYO Business Solutions AG wird das ERP-System GODYO P4 in 2-wöchigen Sprints entwickelt. In der Sprint-Planung werden alle Aufgaben für den anstehenden Sprint festgelegt und gemeinsam besprochen. - Sprint-Backlog
Im Sprint-Backlog befinden sich alle eingeplanten Aufgaben für den aktuellen Sprint. Welche Aufgabe von wem erledigt wird, stimmen die Teammitglieder untereinander ab. - Sprint-Durchführung
Während des Sprints werden die eingeplanten Aufgaben bearbeitet. Sobald eine Aufgabe erledigt und mit automatischen Tests abgesichert wurde, wird diese von einem anderen Entwickler manuell nachgetestet. - Daily
Im Daily berichtet jeder Entwickler kurz und knapp über seinen aktuellen Stand, bei der Ihm zugewiesenen Aufgabe. Dabei sollte möglichst darauf geachtet werden, dass das Daily nicht länger als 15 Minuten beansprucht. - Review
Im Review geben die Entwicklungsteams aus Client und Datenbank Einblicke in die aktuelle Entwicklungsarbeit. Das Support- und Consulting-Team bekommt somit einen Überblick über alle Änderungen und Anpassungen. - Neue Softwareversion
Nach jedem Sprint steht eine neue Version des ERP-Systems GODYO P4 für unsere Kunden zur Verfügung. - Retrospektive
In der Retrospektive wird der vergangene Sprint besprochen. Positive und negative Aspekte werden schriftlich festgehalten. Bei negativen Punkten werden punktuell Maßnahmen erarbeitet, um eine Wiederholung zu vermeiden.
Agil: ganz oder gar nicht
Eine Vorgabe bei Scrum ist es, die Entwicklerteams interdisziplinär zu organisieren, damit sie unabhängig von außenstehenden Personen agieren können. Das Team sollte so zusammengestellt werden, dass möglichst alle erforderlichen Kompetenzen abgedeckt sind. Flache Strukturen sorgen hier für flexible Lösungen und schnelle Entwicklungen. Wenn alle Teammitglieder eng zusammenarbeiten und Kompetenzen optimal auf die in der Planung festgelegten Aufgaben verteilen, wird eine flexible und schnelle Softwareentwicklung gewährleistet. Die Arbeitsorganisation und Aufwandsschätzungen werden ebenfalls vom Entwicklerteam selbst vorgenommen. Gemeinsame Standards stellen sicher, dass alle Teammitglieder ein gemeinsames Verständnis über Absprachen, Notizen und Ziele haben.
Das Vorgehen des Entwicklungsteams sowie der aktuelle Entwicklungsstand werden durch kontinuierliche teaminterne Überprüfungen und die regelmäßigen Abnahmen der Kunden sichergestellt. Auch wenn Überprüfungen äußerst wichtig sind, liegt der Fokus dennoch auf der eigentlichen Entwicklungsarbeit, welche nicht durch zu viele Überprüfungen wieder beeinträchtigt werden soll. Wir können aber sagen, dass durch regelmäßige Prüfungen eine exzellente Softwarearchitektur gefördert wird, was zur Agilität beiträgt.
Bei der Softwareentwicklung mit Scrum kann es vorkommen, dass das Vorgehen oder die Aufgabenstellung angepasst werden muss, wenn eine Überprüfung vermuten lässt, dass eine gegenwärtige Abweichung vom Ziel zu einem inakzeptablen Produkt führt. Auch die Abstimmung mit internen und externen Dienstleistern bezüglich Terminen und Budgets können durch die agilen Prozesse eine Herausforderung sein.
Die 12 Prinzipien der agilen Softwareentwicklung
- Zufriedene Kunden durch schnelle Entwicklung
- Wettbewerbsvorteil durch agile Prozesse
- Kurzfristige Auslieferung funktionierender Software
- Intensive Zusammenarbeit während der Projektphasen
- Schaffen eines motivierenden Umfelds
- Face-to-Face-Kommunikation bei Absprachen
- Primäres Maß für Fortschritt ist die funktionierende Software
- Nachhaltige Entwicklung durch gleichbleibenden Arbeitsrhythmus
- Fokus liegt auf Design und Technik
- Einfachheit ist essentiell
- Teams arbeiten selbstorganisiert
- Steigerung der Effizienz durch Reflektieren der eigenen Arbeit
Fazit zur agilen Softwareentwicklung mit Scrum
Sind die Rahmenbedingungen für agile Softwareentwicklung vorhanden und werden diese vom Unternehmen unterstützt, dann sind Scrum & Co. leistungsfähige Methoden für die moderne Softwareentwicklung.