Agile Software-Entwicklung mit Scrum

von am 18. August 2010 in Entwicklung

Agile Entwicklung mit Scrum

Die Entwicklung einer sozialen Software für mehr als eine Million aktive Mitglieder ist eine spannende Herausforderung. Über 20 Mitarbeiter sind allein in die Entwicklung der KWICK! Software-Plattform involviert, die nicht nur über Webbrowser, sondern zwischenzeitlich auch über zahlreiche mobile Apps und per API (Application Programming Interface) erreichbar ist. Um zeitnah neue Funktionen fertig zu stellen und dabei unseren großen Qualitätsansprüchen gerecht zu werden, setzen wir seit Anfang des Jahres erfolgreich auf die agile Software- und Produkt-Entwicklung mit Scrum.

Die Weiterentwicklung unserer Software erfolgt hauptsächlich auf Basis eines offenen Dialogs mit unseren Mitgliedern und eigenen Beobachtungen der Nutzung. Unsere Mitglieder werden schon früh in Veränderungen des Produktes einbezogen und können in Beta-Tests direktes Feedback geben. Ein agiler und flexibler Ansatz erlaubt uns schnell, uns auf die sich ständig ändernden Marktbedingungen einzustellen. Dabei verzichten wir konsequent auf schwerfällige und langwierige Prozesse, wie man sie zum Beispiel vom traditionellen Wasserfallmodell kennt.

Scrum verfolgt hierbei einen anderen Ansatz: die Teams arbeiten selbstorganisiert in so genannten „Sprints“, einer fest definierten, kurzen Zeitspanne als Entwicklungszyklus. Ziel eines Sprints ist es, ein fertiges Produktinkrement auszuliefern. Die Sprintlänge beträgt bei uns genau drei Wochen. Die Entwicklung ist in zwei Teams organisiert, so dass in regelmäßiger Kontinuität – meist schon auf wöchentlicher Basis – auch umfangreichere neue Funktionen fertig gestellt und der Community zugänglich gemacht werden. Die Zusammenarbeit im Scrum-Team ist dabei in klar getrennten Rollen geregelt und bietet den Teams den Freiraum, sich komplett selbstständig zu organisieren. Die Entwickler können sich im Scrum-Prozess voll und ganz auf ihre Arbeit konzentrieren und werden von äußeren Einflüssen weitestgehend abgeschirmt. Das direkte Feedback zwischen Entwicklern und den Mitgliedern bleibt aber zu jeder Zeit bestehen und ist ein wichtiger Bestandteil unserer Arbeit.

Dank Scrum und weiterer agiler Methoden ist die Entwicklung nicht nur wesentlich schneller geworden, sondern gleichzeitig konnte auch die Qualität verbessert werden. Was auf den ersten Blick wie ein Widerspruch klingt, wurde durch eine konsequente Neugliederung des Projektverlaufs erreicht: unser Qualitätsmanagement ist im gesamten Prozess von Anfang an eingebunden und begleitet die Entwicklungsteams über den gesamten Zeitraum. Wir können so eine hohe Qualität gewährleisten, ohne dass es zusätzlich langwierige Testphasen am Ende eines Sprints gibt. Meist können neue Funktionen schon während eines Sprints in den öffentlichen Beta-Test gegeben werden, so dass wir direktes Feedback erhalten und die Nutzung analysieren können.

Scrum Output

Veröffentlichte Updates im Zeitraum Januar bis Juli 2010

Der Umstieg auf Scrum als Vorgehensmodell bereitete uns im Vergleich zu vielen anderen klassischen Softwareschmieden weniger Probleme, da wir im Vorfeld schon längere Zeit einige Grundprinzipien daraus angewandt haben. Aber erst der vollständige Wechsel zu Scrum und die damit verbundene Befreiung von Altlasten brachte entscheidende Fortschritte in der Entwicklung. Bereits nach vier Sprints stellte sich eine spürbare Steigerung der Produktivität und Motivation heraus. Mit der Einführung von Scrum mussten allerdings auch alle anderen Bereiche im Unternehmen darauf optimiert werden, um sowohl mit der Geschwindigkeit der Entwicklung mithalten zu können, als auch die Entwicklungsteams nicht auszubremsen.

Der Prozess wird ständig weiter entwickelt und verbessert: „inspect and adapt“ ist für uns zu einer Unternehmensleitlinie geworden. Die Veränderung zum Besseren (Kaizen) und die Vorgehensweise nach agilen Methoden hat sich auch in anderen Bereichen manifestiert. Das Technik-Team arbeitet beispielsweise zur Aufgabensteuerung mit Kanban, einer einfachen Methode nach dem Pull-Prinzip. Auch nach bislang 15 erfolgreichen Sprints finden wir immer neue Wege, den Scrum-Prozess weiter zu verbessern. Das Vorgehensmodell hat entscheidend zur Verbesserung der Entwicklungsgeschwindigkeit und nicht zuletzt auch zu einer Produktverbesserung zugunsten unserer Mitglieder beigetragen.

Auszug einiger Releases in diesem Jahr:

Übrigens: unsere Entwickler-Teams in Weinstadt bei Stuttgart suchen noch engagierte Kollegen, die in diesem kreativen, hochmotivierten Umfeld mitarbeiten und -gestalten möchten.

Tags: , , , , , , , , , , , ,

3 Kommentare Kommentar schreiben

  1. @Sven Danke! Wir setzen unterschiedliche Qualitätsmaßnahmen ein: von Unittests bis Akzeptanztests. In der Artikelserie wird auch auf die Architektur eingegangen. Der nächste Beitrag ist z.B. über die Realisierung von Echtzeit-Funktionen.

  2. Sven #

    Sehr interessanter Beitrag! Gerade wenn man im Bereich Software-Engineering tätig ist kann man sehr gut nachvollziehen, dass Scrum in solchen Projekten ideal geeignet ist. Was mir persönlich hier noch gefehlt hat: Welches Vorgehensmodell wurde eigentlich davor eingesetzt und wie wird bei Kwick die Software-Qualität (Unit-Tests) geprüft/verbessert? Gibt es eventuell auch einmal einen Beitrag zum Thema Architektur – fände ich auch sehr interessant! Als Informatik-Student ist man an so etwas halt einmal interessiert 🙂

  3. wow,
    das man sowas kommentieren kann mnicht schlecht ..
    Kwick halt.. ich schwör ich lieb kwick… l….thx
    nochmal das man sich sowas anschauen aknn udn sieh des durch lesen darf..

3 Trackback

Kommentar schreiben





*

Die KWICK! Community ist ein kostenloses Social Network zum neue Leute kennenlernen. Es gibt viele Gestaltungsmöglichkeiten, jedes Mitglied führt einen eigenen Blog und es ist einfach, neue Leute zu treffen.