Du hast deinen AdBlocker an?

Es wäre ein Traum, wenn du ihn für t3n.de deaktivierst. Wir zeigen dir gerne, wie das geht. Und natürlich erklären wir dir auch, warum uns das so wichtig ist. Digitales High-five, deine t3n-Redaktion

t3n 32

Agile Webentwicklung: Praktische Tipps zu Teamaufbau, Tools und Kundenbeziehungen

Agile Webentwicklung. (Foto: PeskyMonkey/iStock)

Der zweite Teil unseres Praxisberichts über agiles Projektmanagement widmet sich den Details agiler Webentwicklung, zum Beispiel mit TYPO3 oder Magento – vom Teamaufbau über die technischen Voraussetzungen bis hin zur optimalen Kundenbeziehung.

In t3n-Ausgabe 31 wurden Scrum und Kanban als populäre agile Methoden vorgestellt, um IT-Aufträge schneller, sicherer und damit erfolgreicher abzuwickeln. Der folgende Artikel zeigt die konkreten Folgen für die Webentwicklung auf und gibt Einblicke in die Praxis des Web-Dienstleisters AOE media, der auf die Open-Source-Lösungen TYPO3, Magento Enterprise und Solr Search spezialisiert ist. Die idealen Voraussetzungen, um agile Webentwicklung im Unternehmen zu implementieren, lassen sich in drei Bereiche gliedern: Team, Technik und Kundenbeziehung.

Aufbau agiler Teams

Agile Teams wählen ihre Methode – ob Scrum, ob Kanban – gemeinsam und in Bezug auf das jeweilige Projekt oder die Projektphase aus. Ein Team wird dabei langfristig und interdisziplinär aufgebaut. Es verfügt im Normalfall über alle Kompetenzen, um ein Produktinkrement zu erzeugen, ohne auf externe Zuarbeit angewiesen zu sein: Die Mitglieder bringen unterschiedliche Fähigkeiten ein und ergänzen sich gegenseitig, um anstehende Aufgaben zu lösen und Innovationen durch gegenseitigen Austausch voranzutreiben. Nicht nur die verschiedenen angewandten Methoden, sondern auch die Werte und Prinzipien des agilen Manifests sollten dabei von jedem Teammitglied bis hin zum Management akzeptiert und verinnerlicht sein. Hierzu gehört zum Beispiel, den Kunden durch die frühzeitige Auslieferung hochqualitativer Software regelmäßig in kleinen Teillieferungen zufriedenzustellen, dabei ein gleichmäßiges Tempo einzuhalten, Informationen von Angesicht zu Angesicht zu übermitteln oder das Team durch Vertrauen und ein förderliches Biotop zu unterstützen und zu motivieren. Der Gedanke „Vertrauen ist gut, Kontrolle ist besser“ hat bei der agilen Webentwicklung ausgedient. Führungskräfte verlieren zunehmend ihre Kontrollfunktion und dienen mehr denn je als Coachs, die ihre Mitarbeiter darin unterstützen, ihre Ziele aus sich selbst heraus zu erreichen.

Bei AOE media setzt sich ein Scrum-Team meist aus TYPO3- oder Magento-, Flow-, Frontend- und JavaScript-Entwicklern, Testern sowie einem Entwickler zusammen, der sich um das Continuous Deployment kümmert. Darüber hinaus gibt es einen Scrum Master und einen Product Owner. Dieser schreibt gemeinsam mit dem Kundenbetreuer das Product Backlog, in dem die Epics (Features) und User Stories stehen. Auch die Akzeptanzkriterien für User Stories werden bereits in diesem Stadium in Gherkin (Beschreibungssprache für Behaviour Driven Development) geschrieben, um daraus automatisierte Tests erstellen zu können.

Transparenz und Integration sind im Team maßgeblich: Im Idealfall kommt der Product Owner aus dem Mitarbeiterstab des Auftraggebers. Kann der Kunde dieser Rolle nicht gerecht werden, was oft passiert, stellt AOE media einen so genannten Proxy Product Owner (PPO). Er ist häufig ein ehemaliger Projektmanager, der nun die Interessen des Kunden dem Team gegenüber vertritt. Sind Mitarbeiter nicht in festen Teams gebunden, befinden sie sich im Kernteam, einem Pool für Wartung und allgemeine Entwicklungsarbeit. Benötigen Projektmanager oder PPO Verstärkung, fragen sie im täglichen Kernteam-Meeting (Daily) nach Unterstützung.

AOE-Mitarbeiter können dank Vagrant, einer Software für das Erstellen von virtuellen Boxen, innerhalb kürzester Zeit in neue Projekte einsteigen: Zwischen der Entscheidung, an einem Projekt zu arbeiten, und dem tatsächlichen Entwicklungsbeginn vergehen nur 15 Minuten (ramp-up-time). Für die Installation von Vagrant wird VirtualBox von Oracle benötigt. Die virtuelle Maschine wird anschließend mit der Open-Source-Automation-Plattform Chef konfiguriert (Infrastructure as a Code), die den aktuellen Stand des gewünschten Projekts installiert und die vom Entwickler in einer früheren Projektphase geschriebenen „Rezepte“ ausführt. Die Rezepte dienen gleichzeitig als Dokumentation des Projekts. Nach getaner Arbeit checkt der Entwickler seine Ergebnisse in die Deployment-Pipeline ein. Vagrantboxen machen Entwicklungsserver, auf denen sich mehrere Projekte befinden, überflüssig.

AOE media setzt auf Scrum; das Team besteht unter anderem aus TYPO3- oder Magento-, Flow-, Frontend- und JavaScript-Entwicklern sowie Testern.
AOE media setzt auf Scrum; das Team besteht unter anderem aus TYPO3- oder Magento-, Flow-, Frontend- und JavaScript-Entwicklern sowie Testern.

Agile Webentwicklung: Board oder Software?

In der agilen Webentwicklung kommen sowohl klassische Whiteboards in verschiedenen Größen als auch digitale Boards beziehungsweise Software für agiles Projektmanagement zum Einsatz. Haptische Boards, bei denen Tickets in Form von Post-its bewegt werden, sind sehr flexibel, benötigen keine Technik, um Prozesse anzupassen, und bieten eine stärkere Visualisierung und Interaktivität als digitale Boards. Von Nachteil ist, dass Arbeiten an verteilten Standorten unmöglich ist ebenso wie das Anhängen von Screenshots, Akzeptanzkriterien und Ähnliches.

Aus diesem Grund arbeitet AOE media sowohl mit Whiteboards als auch mit großen Monitoren und entsprechender Software. Dailies können so international abgehalten werden und auch der Product Owner auf Kundenseite wird per Webkonferenz dazugeschaltet. Hier greift wieder das Vertrauensprinzip: Der Kunde sieht den aktuellen Stand der Dinge, kann User Stories erstellen oder diese mitentwickeln und priorisiert die Aufgaben für das Team.

Als Software haben sich je nach Einsatzgebiet und Kunde Jira Greenhopper, Kunagi und Target Process, für das AOE Betatester ist, bewährt. Während Kunagi Scrum-Projekte ausschließlich nach der reinen Lehre unterstützt, zeigt sich Target Process flexibler: Neben Scrum und Kanban lassen sich auch eigene Prozesse sowie Boards einrichten. Diese Flexibilität kommt AOE zugute, da hier jedes Team seinen eigenen Prozess definiert. Wenn Kunden phasenweise kurzfristige Lösungen brauchen, wird auch zwischen den Methoden gewechselt: von Scrum nach Kanban und zurück.

Continuous Deployment

Agile Methoden werden als iterativ-inkrementell bezeichnet. Das bedeutet, dass ein Web-Projekt in Zyklen von zwei Wochen aufgeteilt wird, in denen jeweils ausgewählte Aufgaben der Software nacheinander realisiert, getestet und beständig optimiert werden. Ziel ist es, den Zeitraum vom Erkennen einer Anforderung bis zum Nachweis der korrekten Umsetzung möglichst kurz zu halten. Um hierbei hohe Qualität zu gewährleisten, sind unter anderem tägliche Software-Builds notwendig:

Continuous Deployment, auch als fortlaufende Integration bezeichnet, bedeutet, ein Webprojekt regelmäßig neu zu generieren und zu testen: AOE verwendet hierfür die Software Jenkins. Mit Jenkins werden die Deployment-Pipeline aufgebaut, die einzelnen Schritte abgearbeitet und definiert, was beim Testen im Falle eines Fehlers passiert – inklusive Fehlermeldung an die zuständigen Entwickler. Jenkins wertet auch die Code-Richtlinien von AOE aus, zum Beispiel ob Leerzeichen statt Tabs verwendet worden sind. Das Ziel ist, viele kleine funktionsfähige Änderungen statt einer großen durchzuführen, damit die Entwickler von Anfang an Kontrolle und Überblick über das Projekt haben und das Feedback der Stakeholder oder eventueller Testpersonen einbauen können. Fehler werden so schneller erkannt und Kosten für Neuprogrammierungen vermieden. Die Website des Kunden ist dabei konstant verfügbar, auch während der Veröffentlichung von Änderungen.

Agile Webentwicklung: Automatisierte Tests

Zur Qualitätssicherung bei geschäftskritischen TYPO3- oder Magento-Projekten gehört auch die Testautomatisierung. Sie stellt sicher, dass komplette Websites und ein- sowie angebundene Applikationen stets fehlerfrei arbeiten. Gerade bei einem komplexen Shop-Projekt wie mit Magento Enterprise sind eine Vielzahl von möglichen Fehlerquellen zu überprüfen und zu testen: Check-out oder Preisberechnung erfordern automatisierte Tests noch stärker als eine Content-Site. Im Frontend müssen zum Beispiel die Formular-Verarbeitung, die Template-Darstellung, Feeds, Web-Dienste oder Ajax perfekt funktionieren. Neben den einzelnen Funktionstest der Komponenten sollte auch das Gesamtsystem auf Basis seiner Anforderungen getestet werden (Systemtest).

Für das Testen der Abbildung der Geschäftslogik und des Quellcodes kommt bei AOE PHPUnit zum Einsatz – noch vor der Installation des Web-Projekts auf dem Integrationssystem, auf dem die Entwicklungsschritte der einzelnen Teammitglieder erstmalig zusammengeführt werden. Es folgen die in den Akzeptanzkriterien definierten Tests der Frontend-Funktionen mit Selenium oder Cucumber. Dadurch ist es möglich, Interaktionen einer Web-Anwendung automatisiert zu prüfen und beliebige Testläufe durchzuführen. So können zum Beispiel Formulare auf verschiedenen Browsertypen geprüft werden. Alle Testmethoden laufen innerhalb von Jenkins und werden schon während der Entwicklung verwendet. Sobald neue Ergebnisse in die Deployment-Pipeline eingecheckt werden, wird das System automatisch komplett oder teilweise neu aufgebaut. Geprüfter Code wird dann um weitere ausführbare Inhalte erweitert und erneut getestet. So ist gewährleistet, dass dem Entwickler nach jeder neuen Programmierung positiv bewerteter Code zur Verfügung steht.

Vertrauen statt Verträge

Natürlich kommen auch agile Projekte nicht ohne Vertragsgestaltung aus. Um mit Scrum erfolgreich zu sein, ist jedoch die Kundenbeziehung entscheidend. Moderne Methoden, die in alte Konzepte wie den herkömmlichen Festpreisvertrag gepresst werden, können nicht funktionieren. Ein verbindlicher Gesamtpreis für ein Projekt ist stets eine Schätzung und als solche mit einer hohen Unsicherheit verbunden, bei der nicht selten entweder Auftragnehmer oder -geber draufzahlen. Um sich als Dienstleister gegen den „Cone of Uncertainty“ abzusichern, ist es deshalb üblich, von vornherein einen Puffer in die Angebote einzubauen.

Der agile Festpreisvertrag dagegen, den AOE media für seine Kunden entwickelt hat, nennt einen verbindlichen Gesamtbetrag für eine gesetzte Menge an Anforderungen. Diese sind inhaltlich jedoch flexibel: Eine noch nicht realisierte Aufgabe kann jederzeit durch eine andere, ebenso teure ersetzt werden, wodurch beide Seiten absolute Budgetsicherheit erhalten. Agil operierende Web-Dienstleister wie AOE bestätigen das dazu benötigte Kundenvertrauen durch das gelieferte Produktinkrement mit jeder Iteration.

Continuous Deployment: AOE Media generiert und testet laufend die eigenen Web-Projekte. Hierfür kommt das Tool Jenkins zum Einsatz.
Continuous Deployment: AOE Media generiert und testet laufend die eigenen Web-Projekte. Hierfür kommt das Tool Jenkins zum Einsatz.

Scrum-Elemente im Detail

Ist die Infrastruktur für agile Webentwicklung geschaffen, geht es in die Praxis. Zum Ablauf einer zwei Wochen dauernden Scrum-Iteration gehören folgende Elemente:

  • Backlog Grooming: circa ein bis zwei Stunden, ein bis zwei Tage vor dem eigentlichen Planning. Die Dauer hängt unter anderem von Anzahl und Größe der neuen Features ab. Epics (große Features wie Check-out im Webshop) und User Stories (aus Nutzersicht formulierte Anforderungen wie „Ich möchte meine Zahlungsdaten beim nächsten Einkauf nicht erneut eingeben müssen.“) werden priorisiert und deren Lösung besprochen. Das Team schätzt, wie hoch die Komplexität (Story Points) ist. Vom Product Owner vorher festgelegte Akzeptanzkriterien werden geprüft und Impediments (Hindernisse) identifiziert.
  • Planning – ein Tag für das Team: Dieses Element gliedert sich in Sprint Review (demonstriert dem Kunden die Arbeitsergebnisse des letzten Sprints), Sprint Planning (die priorisierten Aufgaben aus dem Backlog Grooming münden in die konkrete Arbeitsplanung des nächsten Sprints) sowie Retrospektive (Teamveranstaltung, um Beziehungen, Prozesse und Werkzeuge zu verbessern). Jedes Teammitglied gibt positives Feedback auf die letzte Iteration und nennt Dinge, die geändert werden sollten. Der Scrum Master clustert das Feedback nach ähnlichen Themen, aus denen Action Points für das Team erstellt werden. Darüber hinaus gibt bei AOE jedes Teammitglied auf einer Skala von +5 bis -5 an, wie es sich gerade fühlt, woraus anschließend der Team Happiness Index ermittelt wird.
  • Task Breakdown – die Detailplanung: User Stories werden in konkrete Aufgaben zerlegt, sodass der Arbeitsaufwand in Stunden geschätzt werden kann.

Beim Daily Scrum treffen sich alle Scrum-Teams täglich zu einem kurzen Meeting. AOE media hat dafür einen eigenen Raum. Weltweit verteilte Teams nutzen etwa Skype. Im Daily erzählt jedes Team-Mitglied beispielsweise, was es seit dem Vortag erreicht hat, was es plant und ob es Hindernisse gibt. Das Daily kann auch der Zeitpunkt sein, an dem Tickets über das Scrum-Board bewegt werden, zum Beispiel nach Fertigstellung von progress zu testing. Jedes Team ist bei AOE frei, eigene Regeln zu erstellen.

Fazit

Erst das Gesamtpaket führt in der agilen Webentwicklung und im agilen Projektmanagement zum Erfolg. Dazu gehört, Scrum mit seinen Phasen und Elementen zu verstehen und diszipliniert umzusetzen (siehe den Artikel über agile Webentwicklung in t3n-Ausgabe 31). Ebenso wichtig sind ein agil denkendes Team (inklusive Management), eine vertrauensvolle, transparente Kunden(ein)beziehung, jeweils passende Software und Instrumente sowie umfangreiche Maßnahmen zur Qualitätssicherung.

Joern Bock
Joern Bock

beschäftigt sich seit 1996 mit der Gestaltung, Konzeption und Organisation interaktiver Medienprojekte. Bei AOE media hat er das Projektmanagement maßgeblich ausgebaut und den Einsatz agiler Entwicklungsmethoden wie Kanban, Scrum oder Lean vorangetrieben. Er organisiert Treffen der Agile Usergroup Rhein-Main.

Bitte beachte unsere Community-Richtlinien

3 Reaktionen
franklang1981

Danke für die wichtigen Tipps & Informationen zur Agilen Webentwicklung.

Georg

Agil mit der Sigrune? :-D

Du musst angemeldet sein, um einen Kommentar schreiben zu können.

Jetzt anmelden

Finde einen Job, den du liebst