Arbeiten Sie an Projekten, als würden Sie LEGO bauen. Warum Agile und Scrum (unserer Meinung nach) die beste Art der Webentwicklung ist.
Stellen Sie sich zwei Konferenzräume vor - in einem haben wir einen langen Tisch mit einem ausgeprägten Kopfteil, an dem der Chef sitzt (Wasserfallmodell), in dem anderen haben wir einen runden Tisch (Scrum) - was denken Sie, in welchem der beiden ist mehr Raum für Diskussion und Gedankenaustausch?
Im Gegensatz zu traditionellen Methoden
Um die Arbeitsweise die hinter dem Begriff Agile steckt am besten zu verstehen, ist es am einfachsten, sie mit herkömmlichen Modellen, die auf einer klaren Hierarchie basieren, zu vergleichen. Bei einer solchen Arbeitsweise erhält man vorab definierte Spezifikationen, arbeitet daran und wird für ein vorab definiertes Ergebnis bezahlt.
Projekte, die auf diese Weise durchgeführt werden, folgen dem traditionellen Wasserfallmodell, bei dem alles immer in eine Richtung geht - von oben nach unten. Eine agile Arbeitsweise kehrt diese Reihenfolge zwar nicht komplett um, unterscheidet sich jedoch dahingehend, dass sie auch den Informationsfluss in die entgegengesetzte Richtung ermöglicht.
Kreative Programmierung
Wenn wir an die Arbeit von Programmierern denken, verbinden wir sie selten mit Kreativität. Wir sind vielmehr der Meinung, dass es wie bei jedem Engineering darum geht, bestimmte Prinzipien und Mechanismen zu verwenden, damit die Technologie so funktioniert, wie sie soll. Mittlerweile werden nur noch die wenigsten IT-Projekten mit Standardlösungen von der Stange umgesetzt. Die Entwicklung von Websites, Webanwendungen und E-Commerce-Lösungen erfordert nicht nur technische Fähigkeiten, sondern auch die richtige Anpassung der Technologie an das Unternehmen, seine Herausforderungen und vor allem an dessen Endkunden. Dabei werden wahre Kundenerlebnisse geschaffen, die das Produkt oder die Dienstleistung von der Konkurrenz abheben und Kunden begeistern.
Das Erstellen eines digitalen Produkts erfordert viel Kreativität, und Kreativität hat den Vorteil, dass man nicht nur vorgefertigte und getestete Lösungen verwendet, sondern auch die Initiative ergreift und neue Ansetze vorschlägt. Agile ist ein perfekter Rahmen für kreative Lösungen, da IT-Teams Anforderungen vielmehr als Ziele als als Lösungen behandeln können. Anstelle von Formalitäten konzentrieren sie sich auf die Bereitstellung eines funktionierenden Produkts das viel einfacher an Änderungen angepasst werden kann als bei herkömmlichen Arbeitsmethoden.
Agiles Manifest
Individuen und Interaktionen sind wichtiger als Prozessen und Werkzeuge
Funktionsfähige Produkte sind wichtiger als eine umfassende Dokumentation
Zusammenarbeit mit dem Kunden ist wichtiger als Vertragsverhandlungen
Das Eingehen auf Änderungen ist wichtiger als die strikte Verfolgung eines Plans
Agile kann daher als Philosophie der Webentwicklung beschrieben werden, während Scrum bereits eine spezifische Methode ist, die auf dieser Philosophie basiert.
Eine Schachtel voller Lego Steine
Sie müssen sich jetzt nicht vorstellen, wieder Kind zu sein, aber es hilft wenn Sie sich vorstellen einen Bausatz Lego Steine vor sich zu haben. Wenn Sie die Schachtel öffnen, finden Sie nicht alle Lego Steine bunt durchgemischt auf einem Haufen, sondern schön ordentlich zu kleineren Bauten abgepackt. So können Sie Schritt für Schritt jede der kleinen Bauten zum großen Ganzen zusammenfügen. Sie haben bei jedem Schritt genau die Steine zur Verfügung, die Sie gerade benötigen. Sie werden Ihren Bausatz nicht nur schneller fertig gebaut haben, sondern können auch leichter überprüfen ob jeder Stein am richtigen Platz sitzt. Mit jeder der kleinen Bauten sehen Sie einen Erfolg auf dem Weg zum fertigen Lego Gebilde. Dieser kleine Ausflug in die Welt von Lego verdeutlicht auf eine einfache Weise worum es bei Scrum geht.
Eines der Hauptmerkmale von Scrum ist die Aufteilung des Projekts in Sprints die sich aus verschiedenen Events zusammensetzen, die da wären: Sprint Planning, Sprint Review, Sprint Retrospektive und Daily Scrums. Scrum Teams bestehen normalerweise aus drei bis neun Personen, die gemeinsam an einem Projekt arbeiten. Ein wichtiges Merkmal ist ihre Autonomie, die als die Fähigkeit verstanden wird, sich selbst zu organisieren und die besten Entscheidungen auf dem Weg zum Erreichen des Ziels zu treffen.
In einem Scrum-Team gibt es immer zwei sehr wichtige Rollen - den Product Owner und den Scrum Master. Der erste ist Mitglied des Teams und stellt sicher, dass das Team den Wert des Produkts oder der Lösung maximiert. Die Rolle des Product Owners wird am besten von jemandem auf Kundenseite besetzt, der die Fähigkeiten und Verantwortlichkeiten besitzt, Entscheidungen über das Produkt oder die Lösung zu treffen, dessen Vision und Strategie mit gestaltet und das Budget kontrolliert. Der Scrum Master hingegen überwacht nicht das Produkt, sondern den Prozess. Das heißt, er entfernt alle Blocker, schützt das Team vor äußeren Einflüssen und stellt alle erforderlichen Tools zur Verfügung, um das Projekt abzuschließen.
Kehren wir für einen Moment zu LEGO zurück - sagen wir, Sie möchte ein Schloss bauen. In diesem Prozess stellt der Product Owner sicher, dass alle Funktionen gemäß der Vision und dem Entwurf des Schlosses vorhanden sind - zum Beispiel zwei Türmen, eine Zugbrücke und ein Innenhof. Der Scrum Master stellt sicher, dass dem Team nicht die geeigneten Blöcke ausgehen, und das Team wiederum fokussiert sich darauf, das Schloss technologisch zuverlässig, stabil und sicher zu machen.
„Ein großer Teil unserer Entwicklungsleistung entfällt auf die Bewältigung grundlegender technischer Herausforderungen - beispielsweise auf die Gewährleistung einer hohen Qualität, Sicherheit oder Leistung der Lösung. Agile trägt wirklich dazu bei, mehr Transparenz und Verständnis in diese Richtung zu schaffen - und ermöglicht es den eher technischen Teammitgliedern, den geschäftlichen Wert und die Benutzererfahrung wirklich zu erfassen. Beides ist von grundlegender Bedeutung für die Bereitstellung einer wirklich großartigen Lösung, die auf allen Ebenen überzeugt. “
Dr. Tomasz Strumiński, Head of Development
Reflektierender Prozess
Die Arbeit mit Scrum bringt sehr gute Ergebnisse in der IT-Branche, aber vor allem ermöglicht es Geschäftsanforderungen mit Hilfe von Technologien besser zu erfüllen. Während im traditionellen Wasserfallmodell ein Team an einem Teil des Projekts arbeiten kann ohne die Vision oder Ziele zu kennen, ist es bei Scrum sehr wichtig, die Geschäftsprozesse des Kunden zu verstehen.
Wie bereits erwähnt, besteht jeder Sprint aus mehreren Events. Im Sprint Planning plant das Team was zu tun ist und wie es im kommenden Sprint umgesetzt wird. Im Sprint Review präsentieren die Teammitglieder das Ergebnis ihrer Arbeit und die Sprint Retrospektive ermöglicht ihnen den vorherigen Sprint zu reflektieren und den Arbeitsprozess stetig weiterzuentwickeln bzw. zu verbessern.
Kurze Iterationen ermöglichen es dem Team, das Produkt schnell mit den Kundenbedürfnissen zu konfrontieren. Wenn Sie es Stück für Stück übergeben wird schnell klar, was funktioniert und was nicht. Geht es in die richtige Richtung oder müssen wir den eingeschlagenen Weg nochmal überdenken? Es ist auch einfacher, Lösungen während des Prozesses zu ändern, anstelle des fertigen Produkts. Die Mitglieder des Teams erhalten auch Feedback, mit dem sie die Kundenbedürfnisse besser verstehen können. Und dank der Retrospektive können sie ihre Arbeitsweise konstruktiv diskutieren und hinterfragen um sie am Ende effektiver zu gestalten.
„Unsere Projekte sind zu einem wesentlichen Teil IT-Projekte, die schwer exakt vorab zu planen und vorherzusagen sind. Die von uns erstellten Lösungen werden aufgrund stetig steigender Anforderungen immer aufwendiger, sei es aufgrund einer komplexeren User Experience oder der wachsenden Anzahl zu integrierender Systeme. Es ist praktisch unmöglich, alle Detailaspekte verlässlich vorherzusehen und zu planen. Für wirklich herausragende Ergebnisse müssen wir dabei auch noch die Fähigkeit erhalten, die Prioritäten laufend anzupassen während wir den den richtigen Fokus – und damit das Bigger Picture – nicht aus den Augen verlieren. Im Zentrum unserer Betrachtung steht immer der Mehrwert, den wir den Anwendern und Plattformbesitzern gleichermaßen bieten wollen. Scrum unterstützt genau das und ermöglicht es uns, mit festen Budgets zu arbeiten und uns zu 100% auf die Wertmaximierung für den Kunden zu konzentrieren, anstatt einfach blind Anforderungslisten abzuarbeiten.“
Klaus Unterkircher, CTO