Montag, 19. Juni 2023
Dreistunden-Sprints
Bild: Pixabay - Mabel Amber - Lizenz |
Zu den Firmen, die in der agilen Community gehypt und als Vorbild gesehen werden, gehört seit einigen Jahren auch Tesla. Dass das so ist, hängt weniger damit zusammen, dass man wirklich weiss wie dort gearbeitet wird, und mehr mit einem bekannten "Methodenbotschafter". Joe Justice hat dort als Agile Coach gearbeitet und erzählt oft von dieser Zeit (zum Beispiel hier). Und die eine Erzählung die zum "agilen Mythos" von Tesla beiträgt ist diese: dort gibt es Teams, deren Sprint nur drei Stunden dauern.
Wie genau das vor sich geht, verrät er mit Verweis auf eine Geheimhaltungsvereinbarung nicht, er betont aber, dass am Ende jedes Sprints ein Increment steht, was durchaus beeindruckend ist. Wenn wir jetzt unterstellen, dass sich dahinter nicht nur eine Fantasie-Geschichte verbirgt, sondern ein echter Erfahrungsbericht, verlockt all das sehr zur Spekulation. Wie kann es Tesla wohl geschafft haben, auf diese unglaublich wirkenden Lieferzyklen zu kommen?
Um mit etwas nicht Unwesentlichem zu beginnen - es ist nicht so, dass alle Teams diese schnelle Taktung haben. Justice berichtet selber, dass es nur einige Teams sind die so organisiert sind, bei anderen dauert es deutlich länger, bis zu drei Monaten.1 Das relativiert die Geschichte bereits ein bisschen, alleine deshalb weil nicht klar wird, wie die Mengenverhältnisse sind. Würden z.B. nur 10 Prozent der Teams in Dreistunden-Sprints arbeiten wäre das immer noch beachtlich, aber nicht so sehr wie bei 90 Prozent.
Eine zweite wesentliche Rahmenbedingung ist die, dass es sich nicht um Sprints handelt, wie wir sie aus Scrum kennen. Scrum ist für eine bis vier Wochen konzipiert und würde in derartig kurzen Zeiträumen für Meeting-Overhead sorgen, dazu kommt, dass es die zentrale und im Framework zwingend vorgegebene Scrum Master Rolle laut Justice bei Tesla nicht gibt. Dort wird also nicht nach Scrum gearbeitet. Um welche andere Variante von Sprints es sich handelt, bleibt offen, es könnten z.B. auch Endsprints sein.
Eine dritte Information gibt es wieder bei Justice selbst: bei vielen Teams handelt es sich nicht um langfristig stabile Produktteams, sondern um Ad hoc-Teams, die kurzfristig in einem Open Space-artigen Prozess aus den gerade verfügbaren Mitarbeitern zusammengestellt werden. Das bedeutet aber auch, dass diese Teams nicht alle drei Stunden, bzw. jeden Sprint, ein Increment liefern, alleine deshalb nicht, weil sie sich nach jedem Sprint wieder auflösen und ihre Mitglieder ins nächste Ad hoc-Team wechseln.
Mit diesem Wissen im Hinterkopf - möglicherweise ist es am Ende viel banaler als man denkt. Ein Teil der Mitarbeiter arbeitet in tage-, wochen- oder monatelangen Zyklen mehr oder weniger agil, nur der andere Teil findet sich in kurzfristig gebildeten Ad hoc-Teams zusammen, die dann relativ kleine Aufgaben übernehmen (etwa den Austausch eines Maschinen-Bauteils oder das Anpassen eines Formulars auf einer Webseite). Und diese schnellen Klein-Arbeiten nennt man dann "Sprint".
Montag, 6. Juni 2022
Woher die Sprints in Scrum ihren Namen haben
![]() |
Bild: Pexels / Run4FFWPU - Lizenz |
Dass der Ursprung von Scrum sich irgendwo im Dunkel der Geschichte verliert hat zur Folge, dass sich Vieles nicht mehr genau nachvollziehen lässt. Da nicht absehbar war welche Popularität das Framework einmal erreichen würde wurden z.B. Entscheidungen und Entwicklungen nicht dokumentiert, weshalb bei vielen Begriffen nicht mehr genau zu sagen ist warum sie damals gewählt wurden. Zumindest bei einem ist jetzt aber Licht ins Dunkel gekommen - beim Sprint.
Verdanken tun wir das Mike Cohn, einem der ersten Scrum-Pioniere. In der ersten Folge seines Agile Mentors Podcast erzählt er, dass er bereits im Jahr 1994 mit Scrum in Berührung gekommen ist, also noch bevor es 1995 auf der OOPSLA-Konferenz erstmals der Öffentlichkeit vorgestellt wurde. Er hat es damit in seiner frühesten Form erlebt, und in der sah es noch deutlich anders aus als heute. Das betrifft auch die Sprints, deren Ursprung er wie folgt beschreibt:
In den ersten Jahren hatte Scrum (bzw. dessen Vorformen) noch starke Züge von Wasserfall. Anders als heute folgte nicht unmittelbar ein Sprint dem nächsten, stattdessen waren die Sprints lediglich die Umsetzungsphasen im Anschluss an vorgelagerte längere Planungs- und Konzeptionszeiträume. In diesen vorgelagerten Schritten wurde bereits vieles vordefiniert was danach nur noch abzuarbeiten war, und dieses finale Abarbeiten erfolgte möglichst schnell - als Endspurt, oder auf Englisch als Sprint.1
Im Rahmen der methodischen Weiterentwicklung wurde die vorgelagerte Planung und Konzeption in den 90ern dann nach und nach als eigenständige Phase abgeschafft und in die Sprints integriert, heute findet sie sich dort in den Planning- und Refinement-Meetings wieder. Infolgedessen rückten die Sprints immer näher aneinander, bis zu der heute üblichen Regelung, in der sie nur noch durch eine logische Sekunde voneinander getrennt sind.
Man könnte argumentieren, dass man die Sprints irgendwann in dieser Zeit hätte umbenennen müssen um semantisch korrekt zu bleiben, da sie durch den Wegfall der vorgelagerten Planungsphasen ihren Endspurt-Charakter verloren haben. Andererseits liesse sich sich aber auch der Standpunkt vertreten, dass ein Sprint weiterhin der Umsetzungs-Endspurt nach den vorgelagerten Backlog Refinements ist, die jetzt während oder parallel zu den früheren Sprints stattfinden.
Der Grund für die Nicht-Umbenennung ist aber vermutlich banal: der Begriff der Sprints ist bereits früh so stark mit Scrum assoziiert worden, dass seine Aufgabe die Anwender zu stark irritiert hätte. Und wirklich wichtig scheint der Benennungs-Hintergrund für die Scrum-Gründer Ken Schwaber und Jeff Sutherland auch nicht zu sein, jedenfalls haben sie ihn in keinem ihrer Grundlagenwerke thematisiert. Um so dankbarer kann man Mike Cohn dafür sein, dass er sein "historisches Wissen" geteilt hat.
1Im OOPSLA-Konferenzpapier finden sich diese Planungs- und Umsetzungsphasen noch abgeschwächt als "Pre-Game" und "Game" wieder
Dienstag, 15. Februar 2022
Nachträglich Arbeit in den Sprint aufnehmen
Bild: Unsplash / Jason Goldman - Lizenz |
Um mit dem Naheliegendsten anzufangen: zuerst stellt sich die Frage warum es keine zu erledigende Arbeit mehr im Sprint gibt. Es ist keineswegs immer so, dass bereits alles erledigt wurde - oft ist zwar noch Arbeit da, die aber durch fehlende Zulieferungen oder ausgefallene Systeme nicht beendet werden kann. Statt neue Arbeit nachzuziehen sollte man sich in solchen Situationen zuerst fragen ob die nötigen Zulieferungen und Reparaturen im Sprint nicht auch selbst erledigt werden können.
Selbst wenn alle Aufgaben im ursprünglichen Sprint Backlog erledigt sind müssen nicht zwangsläufig neue gesucht werden. Stattdessen kann es auch sein, dass zu der bereits erledigten Arbeit sinnvolle Ergänzungen möglich sind. Refactorings des Code können durchgeführt werden, Tests können automatisiert werden, Dokumentationen können vereinheitlicht werden, etc. etc. Das jetzt schon zu tun kann verhindern, dass später "Aufräum-Sprints" nötig werden.
Und noch etwas kann man mit der bereits fertigen Arbeit machen wenn im Sprint noch Zeit übrig ist: sie den Anwendern und Stakeholdern vorführen, deren Feedback einholen und das gegebenenfalls noch im selben Sprint nutzen um die Arbeitsergebnisse noch weiter zu verbessern. Dieser Austausch kann in Scrum auch deutlich vor dem Sprint Review stattfinden, schliesslich steht nirgendwo geschrieben, dass die Neuerungen erst da gezeigt werden dürfen.
Aber unterstellen wir, dass all das nicht möglich (oder bereits erledigt) ist und noch immer Kapazität im Sprint übrig ist. Auch dann ist die oberste Aufgabe im Product Backlog nicht automatisch die Beste. Sie sollte auch im verbleibenden Sprint abschliessbar sein. Ist das nicht der Fall besteht das Risiko, dass sich im nächsten Planning die Prioritäten ändern und dass das halbfertige Ergebnis danach so lange auf Halde liegt bis es veraltet ist und die Arbeit umsonst investiert wurde.
Ein weiterer zu berücksichtigender Fall tritt ein, wenn der Backlog-Eintrag für sich genommen noch keine nutzbare Funktionalität erzeugt.1 Es mag zwar verlockend erscheinen durch eine frühe Umsetzung "Vorarbeit" für das nächste Sprint-Ziel zu erledigen, zum einen besteht aber auch hier das Risiko, dass es im nächsten Planning zum Umpriorisierungen kommt, zum anderen führt eine solche asynchrone Fertigstellung oft zu nicht gut abgestimmten Ergebnissen und zu höheren Integrationsaufwänden.
Um es auch von der positiven Seite zu betrachten - was kann man denn guten Gewissens in einen Sprint nachziehen? Idealerweise Arbeitspakete deren Umsetzung bereits für sich genommen einen Mehrwert erzeugt und die in der noch verbleibenden Zeit des Sprints vollständig umsetzbar sind. Selbst wenn sie nicht die höchste Priorität im Backlög haben sollten stiften sie einen Mehrwert, gleichzeitig können die in den letzten Absätzen genannten Risiken vermieden werden.
Falls sie alle in der verbleibenden Zeit umsetzbar sind können auch mehrere zusammengehörende Backlog-Einträge in den Sprint gezogen werden, die sich dann durch ein "Zusatz-Sprintziel"2 verbinden lassen. Gegebenenfalls ist es zu diesem Zweck auch möglich aus einem für die verbleibende Sprintdauer zu grossen Ziel einen Spike, ein Proof of Concept oder ein MVP herauszulösen, das auch allein für sich genommen von Wert ist.
Was ich auch schon erlebt habe ist, dass sich Teams die ihr Sprintziel vorzeitig erreicht haben aus dem Backlog eine "Carte Blanche" ziehen konnten, mit der sie an allem arbeiten konnten wozu sie sonst nicht gekommen sind, vom Abbau technischer Schulden über die Verbesserung der eigenen Entwicklungstools bis hin zum Erlernen neuer Programmiersprachen. Für viele war das ein zusätzlicher Anreiz um ihre Arbeit möglichst schnell und gut zu erledigen.3
Und ganz zuletzt - vielleicht muss man auch gar keine Arbeit nachziehen und kann stattdessen Überstunden abbauen. Auch das passiert in manchen Teams viel zu selten.
2Ggf. mit anderem Namen, da es ja eigentlich nur ein Sprintziel geben soll.
3Nur um es klarzustellen: natürlich sollte man auch unabhängig vom Sprint-Status an diesen Themen arbeiten können.
Montag, 17. Mai 2021
Sprintfähigkeit (wieder)herstellen
Bild: Pexels / Jonathan Borba - Lizenz |
Auf den ersten Blick sieht Scrum wie eine Arbeitsweise aus auf die man sich einfach umstellen kann, der Scrum Guide scheint schliesslich lediglich den Sprint, die drei Rollen, die vier Meetings und die drei Artefakte vorzugeben. Das scheint sich schnell einführen zu lassen. Auf den zweiten Blick wird es allerdings deutlich schwieriger, denn das dritte der drei Artefakte hat es in sich: das Increment ist eine neue, benutzbare Produktversion, und davon muss es mindestens eine pro Sprint geben.
Wer schon einmal in einem komplexen Produktentwicklungs-Umfeld gearbeitet hat wird erkennen welche Herausforderung das bedeuten kann: die initialen Anforderungen müssen so geklärt sein, dass die Arbeit an ihnen sofort beginnen kann, das Team muss crossfunktional genug sein um nicht auf Zulieferungen warten zu müssen und Tests und Deployments müssen automatisiert sein um möglichst schnell stattfinden zu können.
Die wenigsten Teams die bisher in einem eher klassischen Umfeld mit bürokratischem Anforderungs-Management, starker Arbeitsteilung und vielen manuellen Arbeitsschritten gearbeitet haben werden aus dem Stand dazu in der Lage sein, mit dem Effekt, dass aus einem sofort gestarteten Sprint kein auslieferbares Increment entstehen kann (und aus den nächsten vermutlich auch nicht). Frustration und Enttäuschung wären die Folge.
Um es dazu nicht kommen zu lassen ist es wichtig, dass vor dem ersten Sprint die Grundlagen dafür geschaffen werden ihn überhaupt durchführen zu können. Es wird häufig versucht das in einen so genannten Sprint 0 zu packen, was aber nicht immer funktioniert. Gerade in grösseren Organisationen können Wochen und Monate dafür nötig sein, was den Begriff des Sprints völlig konterkarieren und unbrauchbar machen würde.
Zielführender ist es in solchen Fällen überhaupt erstmal die Sprintfähigkeit herzustellen bevor man mit Scrum beginnt. Das kann ein letztes mal in Form eines klassischen Projekts entstehen, es kann aber auch nach einem anderen mehr oder weniger agilen Vorgehen durchgeführt werden. Wichtig ist in jedem Szenario aber ein klares Zielbild: nur wenn nachvollziehbar definiert ist welche Kriterien für eine Sprintfähigkeit zu erfüllen sind ist klar wann diese Vor-Phase vorbei ist.
Ein Sonderfall dieser Situation tritt ein wenn ein bereits nach Scrum arbeitendes Team seine Sprintfähigkeit verliert, zum Beispiel durch Personalabgänge oder ausfallende Infrastruktur. Der Scrum-Begründer Ken Schwaber empfiehlt in diesem Fall (zumindest bei grösseren Vorhaben) so genannte Scrumble-Phasen, in denen die Sprints ausgesetzt werden und stattdessen an der Wiederherstellung der Sprintfähigkeit gearbeitet wird.
Elementar in beiden Varianten ist, dass in ihnen ein möglichst ausschliesslicher Focus darauf liegt an den Voraussetzungen für Scrum zu arbeiten. Wird parallel dazu bereits mit der Arbeit am Produkt begonnen, werden diese fehlenden Voraussetzungen dazu führen, dass sich nicht integrierte Arbeit anstaut oder Vorarbeiten durchgeführt werden die sich später ggf. nicht abschliessen lassen. Beides würde wieder zu den Problemen führen für deren Beseitigung Scrum eigentlich erfunden wurde, es wäre also nicht im Sinne der Idee.
Donnerstag, 21. Januar 2021
Verschachtelte Sprints
Bild: Pixabay / Hannah Alkadi - Lizenz |
Im Kosmos der agilen Frameworks gibt es Begriffe die niemand kennt, hinter denen sich aber Phänomene verbergen die in vielen Teams so alltäglich sind, dass es niemandem auffällt, dass sie keinen bekannten Namen haben. Verschachtelte Sprints (auf Englisch "nested Sprints") gehört in diese Kategorie. Kaum jemand nennt sie so, dort wo Scrum oder andere iterative Ansätze angewandt werden sind sie aber durchaus häufig anzutreffen.
Konkret verbergen sich dahinter mehrere aufeinanderfolgende Sprints deren Länge genau einem grösseren Zeitraum (der auch Sprint heissen kann, aber nicht muss) entspricht. Diese Anordnung - ein Objekt das mehrere andere Objekte enthält - entspricht genau der üblichen Definition von Verschachtelung. Die Benennung passt also. Nur - warum macht man so etwas? Die naheliegende Antwort: um die Arbeit von Scrum-Teams in grössere Planungs- und Lieferzyklen zu integrieren oder um Synchronisierungen zu erleichtern.
Häufig anzutreffen ist in diesem Zusammenhang ein "Einschachteln" in einen klassischen Planungszyklus, z.B. einem Quartals-, Halbjahres- oder Jahresplan. In einer klassisch aufgestellten umgebenden Organisation kann das ein einfacher erster Schritt in Richtung Agilität sein, da es die bestehenden Budgetierungs- und Planungsprozesse noch nicht angreift und so Konflikte vermeidet. Es besteht aber das Risiko, dass Sprints dadurch bewusst oder unbewusst lange im Voraus verplant werden, wodurch die eigentlich gewünschte Flexibilität verlorengeht.
Eine ebenfalls häufige Hybridform zwischen agilem und klassischem Vorgehen liegt vor, wenn mehrere Sprints der Dauer zwischen zwei Meilensteinen eines klassisch arbeitenden Teams entsprechen. Das macht vor allem Sinn wenn dieses andere Team zwar eine langfristige Grobplanung, dafür aber einen kürzeren Ausdetaillierungs-Rhythmus hat (eine so genannte Rolling Wave-Planung). Auch bei starrer geplanten Meilensteinen ist eine Synchronisierung mit Sprints möglich, dann aber erneut mit dem Risiko Flexibilität einzubüssen.
Selbst wenn verschachtelte Sprints vor allem in Hybrid-Kontexten häufig sind gibt es sie auch dort wo nur (mehr oder weniger) agile Teams zusammenarbeiten. Am bekanntesten dürften dabei die so genannten "Program Increments" im Scaled Agile Framework (SAFe) sein, die in der Regel vier bis fünf Sprints umfassen, ein anderes Beispiel sind die "light-weight, risk-based milestones" aus dem zum PMI gehörenden Disciplined Agile.
Zuletzt können mehrere Scrum Teams ihre Sprints ineinander verschachteln, etwa wenn ein Teil von ihnen Sprintlängen von einer Woche hat und ein anderer Teil von zwei Wochen. Ein Szenario in dem eine derartige Synchronisierung Sinn macht wäre zum Beispiel eines in dem gemeinsame Sprint Reviews stattfinden um die Kalender der Stakeholder zu entlasten. Ein anderes wäre gegeben wenn Nutzer einer Software um eine Zusammenlegung der Produktions-Releases am Sprintende bitten, um sich nur ein- oder zweimal pro Monat auf ein neues System-Verhalten einstellen zu müssen.
Zusammengefasst: es gibt viele gute, halbwegs gute oder schlechte Gründe dafür verschachtelte Sprints einzusetzen. Da nicht immer klar ist mit was man es zu tun hat (und da sich die Bewertung auch ändern kann) ist es sinnvoll ein regelmässiges Inspect & Adapt durchzuführen. Zum Glück ist das in derartigen Konstellationen leicht - gleichzeitig endende Sprints sind gute Anlässe für gemeinsame Retrospektiven.
Donnerstag, 9. Juli 2020
Sprint Backlogs
Bild: Pexels / Bruno Bueno - Lizenz |
Donnerstag, 18. Juni 2020
Endspurt, Design Sprint, Sprint
Bild: Flickr / A Healthier Michigan - CC BY-SA 2.0 |
1Der übliche Lösungsansatz im agilen Vorgehen wäre die Vermeidung oder Auflösung von Abhängigkeiten, z.B. durch crossfunktionale Teams oder shared Code.
Montag, 23. Dezember 2019
Der Weihnachts-Sprint
Bild: Pixabay / destressguy - Lizenz |
Der Hintergrund ist einfach: je nach Sprint-Länge und -Rhytmus wird dieser Sprintwechsel entweder in die Weihnachtsfeiertage oder in die Zeit zwischen Weihnachten und Neujahr fallen, in der fast alle Menschen sich im Urlaub befinden. Dass ein geordnetes Durchführen aller Arbeiten und Meetings damit schwer bis unmöglich wird ist klar, aber was soll stattdessen gemacht werden?
Natürlich gibt es darauf mehrere mögliche Antworten. Einige wenige Teams rechnen die Feiertage aus der Sprintlänge heraus, was zwar effektiv ist aber den Kalenderrhytmus durcheinanderbringt. Andere lassen einen Sprint ausfallen und überlassen es den wenigen Kollegen die nicht im Urlaub sind ihre Zeit selbst zu verplanen. Manche ziehen die üblichen Intervalle durch, zur Not mit reduzierter Mannstärke. Die meisten machen aber einen Weihnachts-Sprint mit angepasster Länge.
In der Anwendung sieht das so aus, dass die üblichen Wochentage des Sprintwechsels beibehalten werden, allerdings nicht in den üblichen Abständen zueinander sondern in Relation zu den Feiertagen. Bei einem Mittwochs-Sprintwechsel würde das bedeuten, dass der Weihnachtssprint am letzten Mittwoch vor dem 24.12. beginnt und am ersten Mittwoch nach dem 01.01. endet.
Je nach Jahr würde ein solcher Sondersprint unterschiedlich lang dauern, etwa 2018/19 zwei Wochen oder 2019/20 drei Wochen. Abhängig von der normalen Sprintlänge (möglich sind 1 bis 4 Wochen) kann eine solche Abweichung einen deutlich kürzeren oder längeren Sprint ergeben als üblich, und aufgrund der Gruppierung um die Feiertage auch den davorliegenden Sprint spürbar verkürzen.
Dort wo eine Velocity berechnet wird macht es Sinn diese Sprints aus der Berechnung herauszunehmen, da diese sonst ihre Aussagekraft verlieren würde. Zum einen wegen des von der Norm abweichenden Verhältnisses von Dauer und Durchsatz, zum anderen aber auch weil aufgrund der Urlaube die Crossfunktionalität nicht durchgehend gewährleistet werden kann, was natürlich Auswirkungen auf die Leistungsfähigkeit hat.
Eine Tradition der besonderen Art kommt in manchen Unternehmen noch dazu: als Entschädigung für die Mitarbeiter die im Büro den Betrieb aufrechthalten währen die Kollegen sich auf den Pisten und Stränden befinden wird ihnen ermöglicht selbst zu entscheiden woran sie in dieser Zeit arbeiten wollen. In gewisser Weise ist auch das ein Weihnachtsgeschenk.
Donnerstag, 13. Juni 2019
Design Sprints (am Beispiel von illegalem Whisky)
Es geht doch nichts über eine Erklärung komplexer Sachverhalte anhand von abseitigen Beispielen.Montag, 8. Oktober 2018
Warum niemand zum Sprint Review kommt
![]() |
Bild: Pixabay / Magic Desk - Lizenz |
Es gibt keine Stakeholder
So einfach ist es manchmal. Wenn z.B. die aktuellen Entwicklungsziele die Kopfgeburt eines einzelnen Topmanagers sind, die dieser gegen den Willen aller Beteiligten durchgesetzt hat, dann ist es nicht verwunderlich wenn ausser ihm keiner erscheint.Es wurden keine Features entwickelt, sondern Komponenten
Wenn das was entwickelt wurde nicht benutzbar und bewertbar ist, warum sollte dann jemand zum Review kommen wollen? Es gibt ja nichts worüber man reden könnte (und ganz nebenbei hat dieses Vorgehen auch nicht viel mit Scrum zu tun).Es gab kein Sprintziel / keinen Fokus im Sprint
Wenn ein Sprint kein Ziel hat sondern stattdessen unterschiedliche Anforderungen hineingestopft werden stellen viele Stakeholder die Sinnfrage. Lohnt sich ein zweistündiges Meeting wirklich, wenn für jeden nur ein Feature dabei ist, das von Interesse ist? Eher nicht.
Es ist kein Review sondern eine Demonstration
Manche Teams führen kein Sprint Review durch sondern ein Demo-Meeting. Der Unterschied: Neuerungen werden nur vorgeführt und nicht diskutiert. Wird den Stakeholdern so die Möglichkeit zum Feedback geben genommen sinkt erfahrungsgemäss die Teilnahmebereitschaft.Es gab keine Ankündigung
Da nicht jedes Thema für jeden gleich interessant ist kommen viele Stakeholder nicht zu jedem Review. Um sie zu aktivieren hilft es, wenn die Inhalte mit einigen Tagen Vorlauf kommuniziert werden, so dass klar ist ob sich das Erscheinen lohnt.Die Vorführung der neuen Features ist konfus oder lustlos
Wer die Teilnehmer eines Meetings nicht ernstnimmt muss sich nicht wundern wenn sie wegbleiben. Und ein nicht vorbereitetes, unstrukturiertes oder widerwillig durchgeführtes Review ist ein Zeichen, dass dieses nicht ernst nehmen stattfindet.Es gibt keine gemeinsamen Reviews
Ein Sonderfall für Projekte oder Produkte mit mehreren Teams. Wenn es den Anschein hat, dass zu viele Meetings stattfinden neigen, Stakeholder dazu nicht mehr alle zu besuchen. Die einzelnen Reviews zusammenzulegen kann dem entgegenwirken.---
Natürlich gibt es noch viele weitere mögliche Gründe dafür, dass Sprint Reviews schlecht besucht sind, diese hier sind mir aber vergleichsweise häufig aufgefallen. Behebt man sie ist zumindest die Wahrscheinlichkeit, dass sich weitere Teilnehmer einfinden, deutlich höher.
Donnerstag, 26. April 2018
Sprintziele
Bild: Wikimedia Commons / Santeri Viimäki - CC BY 4.0 |
Ein Sprintziel hilft dem Product Owner bei der Planung. Wie in anderen Vorgehensweisen lassen sich auch in Scrum Aufgaben vom Grossen ins Kleine herunterbrechen. Aus der Produktvision wird z.B. eine Teilvision, daraus einige Meilensteine und daraus mehrere Sprintziele. Auch die können und sollen einem Inspect & Adapt unterliegen, trotzdem (oder gerade deswegen) können sie ein gutes Werkzeug sein um Arbeit in Etappen einzuteilen, die man nach und nach planen und angehen kann.
Ein Sprintziel hilft dem Product Owner bei der Priorisierung. Was im Backlog weiter oben stehen sollte und was nicht ist oft nur schwer zu bestimmen. Ist z.B. eine bessere Exportierbarkeit von Kundendaten wichtiger als eine bessere Importierbarkeit von Stammdaten? Wer kann das sagen? Werden die einzelnen Anforderungen zu Sprintzielen gruppiert kann das einfacher sein. Wenn das nächste Sprintziel z.B. lautet, bis zum bald bevorstehenden Stichtag DSGVO-kompatibel zu sein, dann ist klarer was dazugehören sollte (Kundendaten exportieren) und was nicht (Stammdaten-Import).
Ein Sprintziel hilft einem Team dabei fokussierter und konzentrierter zu arbeiten. Gerade bei komplexen und komplizierten Themen gibt es kaum einen größeren Produktivitäts-Hemmer als häufiges Kontext Switching. Sich in kurzen Abständen in immer neue Themen eindenken und immer neue Schnittstellen und Abhängigkeiten klären zu müssen kann in absurdem Ausmass Zeit fressen. Umgekehrt kann das fokussierte Arbeiten an einem Themenkomplex für Synergieeffekte im Denken und Umsetzen sorgen, die vieles beschleunigen.
Ausserdem hilft ein Sprintziel auch bei der Erfolgsmessung, und zwar in der denkbar einfachsten Weise. Man muss sich nur fragen: Haben wir das Sprintziel erreicht, ja oder nein? Damit das möglich ist müssen die Formulierungen natürlich klar und überprüfbar sein, also nicht "Wir wollen ein besseres Nutzungserlebnis bieten" sondern "Wir wollen die Anzahl der bis zum Geschäftsabschluss notwendigen Mouseclicks unter 20 drücken". Als Nebeneffekt führen die dafür nötigen Überlegungen und Diskussionen auch zu einem besseren Verständnis dessen was mit der Anforderung eigentlich gewollt ist.
Zuletzt noch ein Hinweis der selbstverständlicher klingt als er ist - es sollte ein Sprintziel geben, nicht mehrere. Auch hier ein Beispiel: "Wir wollen die die Performance erhöhen und das Design von Rot-Blau auf Grün-Silber umstellen" ist zwar ein Satz, trotzdem sind es mehrere Ziele. Ich habe mit Teams gearbeitet, die alle Sprintziele abgelehnt haben in denen ein Komma, ein Punkt oder die Wörter "und" und "ausserdem" vorkamen. Es hat ihnen geholfen.
Montag, 21. August 2017
Team-Urlaub für einen Sprint
Bild: Pixabay / Walkerssk - Lizenz |
Diese Frage dürfte bei so gut wie jedem Scrum Team regelmässig auftreten, und das nicht nur im August sondern in allen üblichen Ferienzeiten, z.B. Ende Dezember. Jedesmal wenn sich ein Teil der Teammitglieder für einige Tage oder Wochen verabschiedet fehlen Erfahrungswerte, unerwartete Mehraufwände fallen schwerer ins Gewicht und Arbeitstechniken wie Pair Programming oder Code Reviews können ggf. gar nicht mehr angewandt werden, weil wie im gerade genannten Beispiel nur ein Entwickler übrig ist.
Ein Lösungsansatz den ich bei einem anderen Kunden gesehen habe war, dass ein Team sich entschieden hat geschlossen in den Urlaub zu gehen, und zwar für genau einen Sprint. Nach der Retrospektive des Sprints davor gingen alle in ihre Ferien. Nach der Rückkehr gab es ein kurzes Backlog Refinement um sicherzustellen, dass sich in der Zwischenzeit nichts Neues ergeben hatte, danach ging der normale Rhythmus mit einem Planning wieder los.
Der Vorteil dieses Vorgehens war, dass die oben genannten negativen Effekte auf diese Art vermieden werden konnten. Statt mehrere Sprints mit ausgedünnter Personaldecke zu haben war das Team mit Ausnahme dieser zwei Wochen durchgehend voll besetzt, der "Urlaubssprint" wurde in der Sprintplanung ignoriert und auch in der Berechnung der Velocity nicht berücksichtigt. Dass das Review ausfallen würde wurde den Stakeholdern rechtzeitig vorher mitgeteilt.
Was dieses Vorgehen in diesem Fall begünstigt hat war eine besondere Rahmenbedingung: das Team war Teil eines Tribes, so dass andere Teams einspringen konnten wenn Bugfixing- oder Support-Aufgaben zu erledigen waren. In Konstellationen in denen das nicht der Fall ist müsste man über Ausgleichsmaßnahmen nachdenken. Eine die ich an anderer Stelle miterlebt habe war z.B. die, dass ein Team-Mitglied sich bereiterklärt hat seinen Urlaub später zu nehmen. Während des Urlaubssprints arbeitete er aber in einem anderen Team mit, wodurch die Auswirkungen der Ferienzeit auch dort abgeschwächt wurden.
Donnerstag, 19. Januar 2017
Was gehört in einen Sprint 0?
Bild: Pxhere/Matt Lee - CC0 1.0 |
Onboarding:
Diese klassischen Anfangs-Tätigkeiten fallen in jeder Methode an: Beschaffung und Verteilung von Schlüsselkarten, Zugangsberechtigungen, Nutzeraccounts, Hardware, Arbeitsplätzen, Schrankfächern und dergleichen mehr.Knowledge Transfer:
Wer kennt die bestehenden Anwendungen besonders gut, wer ist Experte für welche Programmier-Sprache, wie bedient man Wikis und Ticketsysteme, welche Tricks gibt es beim Einrichten der Zugänge und nicht zuletzt: welche Gerichte sollte man in der Kantine essen und welche nicht.Besuche beim Kunden/Benutzer:
Da man Anwendungen nicht für sich selber baut sondern für diejenigen die sie später anwenden sollen ist ein Besuch bei denen sehr zu empfehlen. Haben sie wirklich die Wünsche und Bedürfnisse die von den Business Analysten und Requirement Engineers unterstellt wurden? Das ist nicht immer der Fall.Produktvision formulieren:
Welches Problem lösen wir mit unserem Produkt, welchen Bedarf befriedigen wir oder welchen neuen Markt wollen wir mit ihm erschaffen? Nur wer das weiß kann auf ein Ziel hinarbeiten ohne sich auf halbem Weg in einem Gemischtwarenladen unnötiger Features zu verlieren.Backlog Refinements:
Gerade zu Beginn sind Anforderungen oft in einem noch nicht umsetzbaren Zustand. Zu groß, zu unklar, zu detailliert, zu mehrdeutig, etc. Um nicht im Planning von Sprint 1 in Probleme zu laufen macht es Sinn bereits Vorarbeiten zu leisten.Architektur/Teststrategie/Entwicklungsstandards/etc.
Ein großer Unterschied zum klassischen Vorgehen. Diese Dinge sollen nicht komplett im voraus festgelegt werden, im Gegenteil. Sie müssen so schlank und flexibel gestaltet werden, dass sie im Zweifel den Bedürfnissen angepasst werden können.Technische Infrastruktur:
Von den Staging-Umgebungen über die Build Pipeline bis hin zu den Testautomatisierungs- und Monitoring-Tools gibt es einiges an technischen Voraussetzungen die in Scrum zwingend nötig sind, so dass sie schon von Beginn an bereitgestellt werden müssen.Workshops zu Methoden und Techniken:
Scrum, Kanban, XP, TDD, Micoservices und was es sonst noch gibt - dort wo die Teammitglieder es noch nicht kennen sollte es vermittelt werden. Und selbst wenn alle es bereits kennen macht das Sinn, denn häufig verstehen verschiedene Menschen etwas völlig Unterschiedliches unter den selben Begriffen.Last but not least: Teamevents:
Auch das Socializing sollte nicht unter den Tisch fallen. Das kann vom gemeinsamen Mittagessen bis zum mehrtägigen Hackathon alles Mögliche bedeuten, wichtig ist, dass die Teammitglieder sich kennen und schätzen lernen. Das ist die Grundlage für vieles weitere.Montag, 16. Januar 2017
Design Sprints in Agile und Scrum
Ich gestehe, ich bin im Moment zu faul um etwas zu schreiben, stattdessen mal wieder ein Video, diesesmal zum Thema Design Sprints.Einen Hinweis gebe ich aber noch mit: wer glaubt, dass in einem Designsprint der Inhalt des folgenden Entwicklungssprints vorbereitet wird, der hat das Konzept nicht verstanden.
Montag, 6. Juni 2016
Eine alternative Festlegung von Sprint-Längen
![]() |
Bild: Wikimedia Commons/Photobobil - CC BY 2.0 |
Für Unternehmen die mit Scrum arbeiten kann das ein Problem sein. In den Mai-Sprints stehen weniger Arbeitstage zur Verfügung, es wird weniger vervollständigt, die Velocity sinkt. Und an dieser Stelle tritt ein Verfälschungseffekt ein: das Sinken der Velocity liegt nicht an sinkender Leistungsfähigkeit sondern eben an den Feier- und Brückentagen. Das lässt sich allerdings aus den Zahlen nicht herauslesen - sowohl in der kurzfristigen als auch in der langfristigen Auswertung wirkt das Absinken wie ein Leistungsabfall. Wenn man jetzt basierend auf der Velocity eine Prognose der verbleibenden Arbeitszeit machen will wird diese unrealistisch niedrig sein.
Ein Unternehmen mit dem ich vor ein paar Jahren zu tun hatte, hatte einen interessanten Weg gefunden mit diesem Effekt umzugehen: Sprint-Längen wurden dort nicht in Wochen festgelegt sondern in Arbeitstagen, z.B. 10 Arbeitstage pro Sprint. Ein Sprint im letzten Mai hätte demnach nicht einfach die Kalenderwochen 20 und 21 umfasst sondern wäre wegen des Feiertages am Pfingstmontag erst am 17. losgegangen und 10 Werktage später am Montag dem 30. beendet worden.
Für jedes Unternehmen das auf diese Weise vorgeht hat die Velocity eine wesentlich höhere Aussagekraft und Brauchbarkeit als für diejenigen, die noch mit Kalenderwochen arbeiten. Auf der Negativseite ist es dafür aber auch so, dass der "gefühlte Rhytmus" aus dem Gleichgewicht kommen kann, schließlich können Planning, Review und Retrospektive jetzt nicht mehr alle zwei Wochen stattfinden sondern gegebenenfalls etwas später. Vor allem bei der Einbindung von Stakeholdern kann das zu Problemen führen.
Andererseits - irgendwelche Probleme gibt es ja immer. Für mich kommt diese alternative Festlegung von Sprint-Längen auf jeden Fall auf die Liste der Dinge die ich irgendwann mal ausprobieren muss.
Montag, 15. Februar 2016
(Kein) Sprint-Abbruch
Bild: Wikimedia Commons/Jocelyn Augustino - CC0 1.0 |
Sprint-Abbrüche sind in Scrum ein Mythos. Manche kennen sie gar nicht, viele haben nur eine ungefähre Vorstellung gesehen hat sie fast niemand. Das hat mich zu ein paar eigenen Überlegungen zu diesem Thema inspiriert. Tatsächlich ist mir nämlich aufgefallen, dass ich in den hunderten von Sprints die ich als Scrum Master, Teammitglied, Scrum Coach oder sonstwas erlebt habe kein einziger dabei war, der abgebrochen worden ist. Ich habe darüber noch nie nachgedacht, frage mich aber gerade warum das wohl so ist.
Zunächst das Grundlegende: einen Sprint abzubrechen ist möglich und unter bestimmten Voraussetzungen sogar sinnvoll, weshalb der Scrum Guide diese Möglichkeit sogar explizit erwähnt:
A Sprint could be cancelled if the Sprint Goal becomes obsolete. Only the Product Owner has the authority to cancel the Sprint.
Man sieht - das Vorgehen ist klar geregelt. Ich war auch bereits mehrfach in Situationen in denen ein Abbruch Sinn gemacht hätte und meine mich erinnern zu können, dass ich meinen Product Ownern auch zum Abbruch geraten habe. Dazu gekommen ist es nicht.
Rückblickend würden mir mehrere Gründe einfallen, aus denen sich die Product Owner vermutlich dagegen entschieden haben1:
- Unkenntnis der Scrum-Regeln Dass ich zum Abbruch geraten habe meine ich zu wissen, aber habe ich auch erwähnt, dass das in Scrum möglich und geregelt ist? Kann ich jetzt nicht mehr sagen, es wäre aber eine Möglichkeit. Nicht alle POs die ich hatte kannten sich mit der Methode wirklich aus.
- Angst vor Strafe oder Gesichtsverlust Ein Klassiker in der deutschen Firmenkultur. Fehler dürfen nicht sein und werden bestraft, und auch ein Verlust an Prestige kann eine Strafe sein. Wenn jetzt das Starten eines später abgebrochenen Sprints als Fehler gewertet wird, dann wird das niemand zugeben wollen und darum nicht abbrechen. In solchen Firmen scheitert Scrum meistens.
- Falsch verstandenes Eliminate Waste "Wenn wir den Sprint abbrechen war die ganze Arbeit umsonst." An den Spruch kann ich mich tatsächlich erinnern. Sie war natürlich auch so umsonst (sonst hätte sich der Abbruch nicht angeboten), aber mir saß da ein Betonkopf gegenüber.
- Einheitlicher Sprintrhythmus Der irgendwie noch nachvollziehbarste Grund. Wenn mehrere Teams synchron sprinten sollen, dann muss auf einen abgebrochenen Sprint ein verkürzter oder verlängerter folgen, oder eine sprintfreie Zwischenphase. Alles nicht wirklich ideal.
- Faulheit Der vermutlich menschlichste Grund. Ein abgebrochener Sprint bedeutet mehr Arbeit: Aufräumarbeiten, mehr Meetings, Rechtfertigung beim Management, etc. Das will sich nicht jeder antun, selbst wenn es eigentlich sinnvoll wäre.
1Natürlich werden wir uns über die Entscheidung unterhalten haben, allerdings habe ich an der Stelle Erinnerungslücken.