So konnten wir gemeinsam mit unserem Kunden anpacken
Scrum als Framework für agile Softwareentwicklung
Wir halfen 1&1 bei der Einführung und Weiterentwicklung von Scrum.
Scrum ist ein Framework für die agile Softwareentwicklung. Es stellt einen Management-Rahmen zur Verfügung, innerhalb dessen die Teams selbstorganisiert arbeiten können, um den größtmöglichen Effekt für die Wertsteigerung eines Produktes zu gewährleisten.
Die Produktmanager beider Projekte von 1&1 arbeiteten ein sogenanntes Product Backlog aus, in welchem die Anforderungen an die Produkte ESB bzw. Domainverwaltung grob festgehalten wurden. Diese groben Anforderungen wurden von den jeweiligen Teams der Projekte vom Aufwand her geschätzt. Die Produktmanager priorisierten daraufhin die groben Anforderungen. Die Projektlaufzeit bis zum Release wurde in zeitlich genau gleich lange Abschnitte namens Sprints unterteilt. Zu Beginn jedes Sprints wurden vom Produkt Backlog die höchstpriorisierten (d. h. die wichtigsten) groben Anforderungen in feingranularere Aufgaben unterteilt. Das Team schätzte nun ein, wie viele dieser Aufgaben sie im folgenden Sprint würden übernehmen können und arbeitete diese Aufgaben ab.
Gegen Ende jedes Sprints wurde dem Produktmanager präsentiert, welche der geplanten Aufgaben erledigt wurden und wie das Ergebnis aussah. Der Produktmanager nahm die fertigen Aufgaben ab. Aufgrund der Erkenntnisse von Team und Produktmanager innerhalb des Sprints und bei der Vorstellung der Ergebnisse konnten Schätzungen korrigiert und verfeinert werden, und Auswirkungen auf die zukünftige Produktgestaltung und -entwicklung wurden deutlich. Diese Erkenntnisse flossen direkt in die vorhandenen groben Anforderungen im Product Backlog ein: Es kamen neue hinzu, und vorhandene Anforderungen wurden geändert oder gelöscht.
Am Ende jedes Sprints führte das Team zusammen mit dem Produktmanager eine Retrospektive durch. In Retrospektiven wird durch das Analysieren des vergangenen Sprints versucht, Änderungspotenzial zu identifizieren: Gutes soll gefördert und Schlechtes vermieden werden.
Durch das Vorgehen in Sprints folgten die Projekte dem iterativen und inkrementellen und damit agilen Prozess hinter Scrum. Dabei wurde in jedem Sprint der größtmögliche Wert für das Produkt anvisiert. Durch die Vorstellung der Ergebnisse in jedem Sprint und durch die Retrospektive erfolgte eine Adaption des Prozesses an die jeweils aktuellen Bedürfnisse der Stakeholder und die Umgebung.
Auf diese Weise konnte das Domain-Team seine Architektur nach jedem Sprint weiter ausbauen, wobei es die Erkenntnisse des vorherigen Sprints in seine Arbeit einfließen lassen konnte. Das ESB-Team konnte flexibel auf die sich schnell verändernde Umgebung eingehen, z. B. auf die anzukoppelnden Services, die sich selbst einem ständigen Veränderungsprozess gegenüber sahen.
it-agile hat 1&1 bei dem Einsatz von Scrum durch einen Agilen Coach in der Rolle des Scrum Masters unterstützt. Eine zusätzliche Rolle für das Projektmanagement war somit nicht mehr notwendig, die zusätzliche Aufgaben übernahm ebenfalls der Scrum Master für beide Projekte. Er leitete die täglichen Besprechungen, die in Scrum typischerweise im Stehen abgehalten werden (Daily Scrum). Weiterhin organisierte der Coach alle Arten von Planungen für das Projekt: sowohl die Planungen der groben Anforderungen für das Product Backlog als auch die Planung der feingranularen Aufgaben für das Entwicklerteam. Bei Nachfragen, Missverständnissen oder Uneinigkeiten über Anforderungen oder Aufgaben vermittelte er stets zwischen Produktmanager und Team.
Während der Retrospektiven, die bis zu drei Stunden andauern konnten, moderierte der Coach. Da in einer Retrospektive durchaus auch einmal den Dingen auf den Grund gegangen wird, sind diese Meetings nicht nur sehr effektiv, sondern auch sehr intensiv. Der Coach ist geübt in der Bewältigung von Konfliktsituationen und greift klärend ein.
Der Scrum-Prozess ist lebendig und wird ständig angepasst, nicht zuletzt aufgrund der diversen Feedbackschleifen wie die Vorstellung der Ergebnisse nach jedem Sprint oder die Retrospektive. Dabei steht es dem selbstorganisierende Team weitestgehend frei zu entscheiden, wie es seine Aufgaben erledigen will. Der Coach führt das Team zu Entscheidungen über den Prozess. Sind Entscheidungen vereinbart, wacht er über deren Einhaltung und weist gegebenenfalls auf Abweichungen hin. Bei Abweichungen macht er das Team darauf aufmerksam und führt es wieder auf den Weg oder sucht mit ihm nach neuen Wegen.