Wie berücksichtigt ein Scrum-Team Infrastrukturaufgaben im Planungsmeeting?

33

Wie berücksichtigt ein Scrum-Team Entwickler- / Infrastrukturaufgaben in der Planungsbesprechung?

Auf den ersten Blick scheinen sie keine User Stories zu sein, da sie keinen Mehrwert für den Endbenutzer bieten.

Es ist jedoch manchmal auch nicht sinnvoll, sie als Aufgaben an eine bestimmte User Story anzuhängen. Angenommen, die Aufgabe lautet: "Bamboo einrichten". Diese Aufgabe ist nicht erforderlich, um eine User Story abzuschließen, da das Team sie manuell erstellen und bereitstellen kann. Das Anhängen an eine User Story ist daher nicht sinnvoll, da diese Aufgabe nicht erforderlich ist, um die User Story zu vervollständigen.

Das deutet also darauf hin, dass diese Aufgaben zu User Stories werden. Wenn die Team-Story auf sie verweist, ändert sich die Geschwindigkeit, die ungerade ist, da der Product Owner die Geschwindigkeit anhand seines Backlogs und nicht anhand seines Backlogs mit einer Reihe von technischen User-Storys ermitteln möchte.

user11347
quelle

Antworten:

25

Es sind eigentlich keine User Stories. Sie sind Stakeholder-Geschichten. Sofern die Software nicht direkt von den Benutzern bezahlt wird, ist es selten, dass eine Story ausschließlich zu deren Gunsten erstellt wird.

Ich gebe Ihnen ein paar Beispiele:

  • Keyword-Artikel, mit denen Werbetreibende effektivere Anzeigen schalten können
  • CAPTCHAs, die verhindern, dass Moderatoren Spam manuell bearbeiten müssen.

Die meisten technischen Geschichten bieten tatsächlich einen Geschäftsvorteil, aber nur selten für die Benutzer. Eine andere Formulierung kann helfen. Normalerweise verwende ich die Feature Injection-Vorlage von Chris Matts:

In order to <achieve my goal>
As <the stakeholder who wants the goal>
I want (<some users to do>) <some stuff>.

Hierbei werden alle Arten von Interessengruppen, einschließlich des Entwicklungsteams, ausdrücklich berücksichtigt. Jetzt können Sie auch Ihre technischen Geschichten formulieren und den geschäftlichen Nutzen herausstellen:

In order to minimize the risk of deploying something broken
As the team deploying the code
We want to spend a few days on an automated deployment system.

Ich habe ein paar Blog-Posts dazu geschrieben: Es handelt sich nicht um User Stories , Feature Injection und den Umgang mit technischen Stories . Ich hoffe, sie helfen.

Lunivore
quelle
3
Semantik ... IMHO widerspricht dies der Agile-Philosophie; Hinzufügen der erforderlichen Trennung, wo es keinen wirklichen Wert außer warmen, verschwommenen Gefühlen liefert.
Aaron McIver
5
Sprechen Sie aus Erfahrung oder theoretisieren Sie? Ich frage, weil ich diese Vorlage jetzt bei einer Reihe von Teams verwendet habe und festgestellt habe, dass es wirklich hilfreich ist, herauszufinden, was zur Erreichung der Projektvision erforderlich ist, wenn das Ziel an erster Stelle steht . Mike Cohn verwendet optional "so dass". Ich glaube es nicht.
Lunivore
1
Ich sehe, dass diese Vorlage hilfreich ist, um den Wert der auszuführenden technischen Aufgabe der nichttechnischen Bestellung mitzuteilen. Es gibt einen Unterschied zwischen "Als QA-Analyst möchte ich einen Continuous Integration Server, damit die Anwendung jeden Tag automatisch getestet wird" und "Um den manuellen Testaufwand am Ende des Projekts zu verringern, und der Wahrscheinlichkeit eines Als QA-Team wollen wir einen Continuous Integration Server testen. " Durch das Anzeigen des versteckten Geschäfts erhält das OP genügend Informationen, um zu entscheiden, ob es einbezogen werden soll oder nicht.
Soronthar
1
@ Soronthar Wo endet es dann? "Um die Frustration zu verringern, wollen wir als Entwicklungsteam unsere eigenen Regeln festlegen." Das ist einer der Gründe, warum Sie sich weiterhin auf den Benutzer konzentriert haben. Aufgaben sollten vor der Bestellung verborgen sein. da sich die PO nicht mit diesen Details befassen sollte.
Aaron McIver
9
Oh, und nur für den Fall, dass es nicht klar war - es ist mir wichtiger, nützliche Arbeit zu erledigen als Scrum. Oder schlank. Oder BDD. Ich glaube auch, dass die nützlichste Arbeit in Software mit Lernen und Risikomanagement zu tun hat. Wenn die Methodik die Ausführung von nützlicher Arbeit behindert, tendiere ich zur nützlichen Arbeit.
Lunivore
12

Die Geschwindigkeit ist ein Maß für die Fähigkeit des Teams, nützliche Arbeit zu leisten (im Gegensatz zu Drag). Infrastrukturaufgaben bieten dem Endbenutzer, wenn auch indirekt, immer noch einen Mehrwert, indem sie das Team auf lange Sicht effizienter machen. Ich habe kein Problem damit, diese Dinge als User Stories zu verfolgen (der Benutzer ist in diesem Fall das Entwicklerteam) und sie entsprechend zu priorisieren. Ein Product Owner, der sich in guter Kommunikation mit den Kunden befindet, sollte in der Lage sein, herauszufinden, wo solche Aufgaben passen, ohne die Ergebnisse zu stören.

Kristo
quelle
3
Ich halte es für gefährlich, wenn Teams die Unterscheidung zwischen Dingen, die für den Benutzer direkt von Nutzen sind, und Dingen, die hoffentlich indirekt von Nutzen sind, verwischen. Insbesondere ein Ansatz "Alles, was wir mögen, ist wertvoll" fördert die Vergoldung und Infrastruktur der Entwickler im Interesse der Infrastruktur. Ich ermutige die Leute nachdrücklich, nur Geschichten mit direktem geschäftlichem Wert in Richtung Geschwindigkeit zu zählen, da dies das einzige ist, wofür Kunden Bargeld bezahlen.
William Pietri
3
Waltzing mit Bären. Alles, was Sie tun, was wirklich wertvoll ist, ist größtenteils wertvoll, weil es noch niemand zuvor getan hat (ansonsten gibt es andere, billigere Möglichkeiten, dies zu erreichen). Das meiste, was wir tun, ist wertvoll, zu lernen, wie man die neuen Dinge macht. Die Infrastrukturaufgaben helfen uns dabei, Feedback zu den neuen Dingen zu erhalten und schneller zu lernen. Ich bin bei @Kristo, wenn es uns hilft, schneller zu lernen.
Lunivore
@Lunivore - Der Unterschied ist, dass niemand Sie für das Lernen bezahlt. Sie bezahlen dich für das, was du mit dem Lernen machst. Teams sollten sich immer etwas Zeit nehmen, um ihre Tools und ihr Wissen zu verbessern. Aber es als Geschwindigkeit zu betrachten, verwechselt es mit der Art von Arbeit, für die das Team da ist.
William Pietri
Es geht nicht nur um Werkzeuge und Wissen. Gedankenexperiment von Ashley Johnson: Denken Sie an das letzte Projekt, das Sie gemacht haben. Überlegen Sie, wie lange es dauern würde, es mit denselben Leuten, denselben Anforderungen und derselben Technologie noch einmal zu tun, aber nachdem Sie alles gelernt haben, was Sie gelernt haben. Die Quote von PMs liegt zwischen 25% und 33% - der Rest ist, wie viel wir in Softwareprojekten lernen. Lesen Sie den Beitrag von Dan North zu Deliberate Discovery: dannorth.net/2010/08/30/introducing-deliberate-discovery
Lunivore
11

Mach sie nach und nach.

Wenn es kein Stakeholder will, mache es nicht zu einer Geschichte. Pass einfach auf, ein bisschen nach dem anderen. Zum Beispiel, wenn Sie das erste Mal manuell bereitstellen. Beim zweiten Mal automatisieren Sie ein bisschen davon. Beim dritten Mal automatisieren Sie etwas mehr. Letztendlich ist dein Build nicht das größte Problem, also konzentrierst du dich auf etwas anderes.

Sie werden am Anfang mehr von diesen entwicklerorientierten Aufgaben haben, und das ist in Ordnung; Ihre Geschwindigkeit (gemessen an Geschichten) wird nur niedriger sein. Das ist eine korrekte Darstellung der Situation. Aber Sie werden immer welche haben, deshalb ist es wichtig, dass sich das Team daran gewöhnt, das Notwendige zu tun, um den Prozess zu verbessern.

William Pietri
quelle
+1: Spike-Lösung beim ersten Mal, dann Refactor, um beim zweiten Mal besser und zuverlässiger zu sein.
S.Lott
Wie stellen Sie also sicher, dass entwicklerorientierte Aufgaben den Sprint nicht übernehmen, insbesondere wenn Sie noch keine gute Geschwindigkeitsmetrik festgelegt haben? Ich möchte ein frühes Ergebnis nicht verpassen, da wir zu viel Zeit mit Dingen verbracht haben, die auf lange Sicht hilfreich sein werden.
Kristo
Und Sie sollten sich trotzdem Zeit für regelmäßige Überlegungen und Prozessverbesserungen nehmen.
Michael
@Kristo, ich glaube nicht, dass Ihr Kunden- / Produktmanager Sie damit davonkommen lässt. Auch ohne eine festgelegte Geschwindigkeit werden Sie eine gute Vermutung anstellen und den Wert aushandeln, der für diese ersten Sprints geliefert werden soll. Plus, wenn Sie wie @ S.Lott festnageln, schlägt Sie vor, nicht irgendwie zu liefern.
Michael
@Kristo: Sie stellen sicher, dass Sie dies schrittweise tun und regelmäßig darüber nachdenken. Wenn Sie anfangen, wissen Sie nur, dass Sie auf jeden Fall die falsche Menge tun werden. Sprechen Sie jede Woche darüber, ob Sie mehr oder weniger Infrastruktur betreiben sollten und ob Sie sich auf die wertvollsten Dinge konzentrieren. Es ist immer ein Spagat.
William Pietri
6

Meiner Meinung nach besteht der ideale Ansatz darin, den Aufwand für die Infrastruktur als Aufgabe in die User Story einzubeziehen, in der er zunächst Wert hat. wie du erwähnt hast.

Nimm dein Beispiel; Das manuelle Erstellen und Bereitstellen bedeutet, dass es sich um eine fortlaufende Anstrengung handelt und keine Form der Fertigstellung aufweist. Es existiert auf unbestimmte Zeit.

Dasselbe gilt für Code, der in einer typischen Anwendung, die zuvor manuell ausgeführt wurde, jeden Teil des Aufwands automatisiert. Definieren Sie diesen Aufwand als Aufgabe unter einer User Story als abgeschlossen. die von Natur aus Wert für den Endbenutzer hat.

Sie könnten die Anwendung sicherlich bei jedem Sprint erstellen und bereitstellen, aber das wird dann Teil der täglichen Aufgaben, die nicht formell über den Backlog verfolgt werden, und dies alles wird dann streitig.

Aaron McIver
quelle
Vielen Dank für diese Antwort. Abschließend wird klargestellt, wie dies zu tun ist: "Der ideale Ansatz besteht darin, den Aufwand für die Infrastruktur als Aufgabe unter die User Story zu stellen, in der er zuerst Wert hat."
Igor Popov
Eigentlich sollte diese Infrastrukturarbeit Teil der Definition of Done sein.
Igor Popov
4

User Stories definieren einen Geschäftswert aus der Benutzerperspektive. Aus diesem Grund werden Infrastrukturaufgaben im Allgemeinen als "Abfall" betrachtet. Das heißt nicht, dass sie nicht gebraucht werden. Dies bedeutet, dass mehr Infrastrukturaufgaben weniger geschäftlichen Nutzen bringen. Aus diesem Grund sollten Infrastruktur-Tasks nicht als User-Storie betrachtet und keinen User-Stories zugeordnet werden.

Bei einem Planungsmeeting muss das Team überlegen, welche Infrastrukturaufgaben beim nächsten Sprint unbedingt erforderlich sind. Das Engagement wird unter Berücksichtigung dieser Infrastrukturaufgaben erfolgen. Dies wirkt sich auf die Geschwindigkeit des Teams aus. Dies ist das richtige Ergebnis, da die Geschwindigkeit misst, wie viel Geschäftswert das Team liefern kann.

Ladislav Mrnka
quelle
2

Ich habe User Stories nie mit der Notwendigkeit gleichgesetzt, dem Endbenutzer einen Mehrwert zu liefern. Es mag üblich sein, aber es ist nicht so, wie wir mit User Stories umgehen. Manchmal werden diese Arten von Aufgaben als "Spikes" bezeichnet, aber wir haben auch regelmäßige User Storys, die wie jede andere User Story geschätzt werden.

Andy Wiesendanger
quelle
Einige Teams arbeiten auf diese Weise, aber das erschwert die Messung des erzielten Werts. Persönlich schlage ich vor, dass Teams nur Geschichten erstellen, die geschäftlichen Wert haben. (Spikes haben einen geschäftlichen Wert, weil die Produktleute Informationen über zukünftige Optionen und deren Kosten kaufen.)
William Pietri
Aber was ist Geschäftswert? Es ist ein weit gefasster Begriff, und alles, was es einem Unternehmen ermöglicht, Software früher / besser / usw. freizugeben, hat für dieses Unternehmen einen Wert.
Andy Wiesendanger
Ich unterscheide zwischen Dingen von direktem Wert, die hauptsächlich für das Team von Bedeutung sind, und Dingen von direktem Wert, die hauptsächlich für die Menschen von Bedeutung sind, für die Sie tatsächlich da sind. Ich denke, Sie sollten letztere nur für die Geschwindigkeit berücksichtigen, da dies der einzige Wert ist, auf den es letztendlich ankommt. Dinge, die zur Verbesserung dieser Wertschöpfung beitragen, werden durch eine verbesserte Langzeitgeschwindigkeit in der Geschwindigkeit berücksichtigt. Das sofortige Zählen verzerrt Anreize und zählt den Gewinn doppelt.
William Pietri
2

Soweit ich weiß, wird ein Großteil der Infrastruktur als gegeben angesehen. Dies beinhaltet Dinge wie:

  • Revisionskontrollsystem;
  • Automatisiertes Build-System;
  • IDE und andere Entwicklertools;
  • Entwicklungsserver;
  • Bereitstellungsprozess; und
  • Projektablauf und Standards.

Die meisten Methoden, mit denen ich gearbeitet habe, widmen ihnen nicht viel Aufmerksamkeit. Diese bilden das, was ich Release 0 nenne. Diese Dinge sollten vorhanden sein, bevor Sie mit der Entwicklung beginnen. Sobald Sie anfangen, an den Geschichten zu arbeiten, können Änderungen an diesen Dingen als Prozessverbesserungen nachverfolgt werden.

Während das Entwicklungsteam möglicherweise Eingaben hat, sollten die meisten dieser Elemente von einem Projektunterstützungsteam bearbeitet werden. Die Standardisierung dieser Elemente über mehrere Projekte hinweg dürfte sich für das Unternehmen auszahlen.

BillThor
quelle
1
+1: Wenn dies nicht vorhanden ist, ist Agile wirklich schwer. Stabile, bewährte Infrastruktur und Plattform eine Art Voraussetzung für Agilität.
S.Lott
1

Folgendes berücksichtigen:

  • Das Scrum-Team erweitert eine vorhandene Produktsuite um wichtige Funktionen.

  • Die Entwicklungstechnologie / -tools / -dienstprogramme müssen aktualisiert werden, um auf der Grundlage der Best Practices für das Engineering auf dem neuesten Stand zu bleiben.

  • Es ist sinnvoll, ein Release mit dieser Arbeit vorab zu laden, damit Sprints-Probleme im Laufe des Releases behoben werden können.

  • Da das Unternehmen indirekten Wert aus diesen Artikeln bezieht, schlage ich im Interesse der Transparenz vor, dass es sich um Product Backlog Items (PBIs) handelt.

  • Das Team bewertet diese Elemente und behandelt sie wie jede PBI.

Dieses Problem ist für mich darauf zurückzuführen, dass ich keine Zeit damit verschwenden möchte, herauszufinden, wie ich diese Arbeit als Aufgabe unter anderen geschäftsorientierten PBIs verstecken kann.

Ich möchte nicht, dass die PBI-Dimensionierung durch diese Art von Infrastrukturarbeit verzerrt wird. Ich möchte sehen, was getan wird und verstehen, wofür ich bezahle.

Ich halte es auch für sinnvoll, dass das Team das Engagement des Unternehmens versteht, indem es in die Infrastruktur investiert, die für die Bereitstellung hochwertiger Lösungen erforderlich ist.

Chris
quelle
0

XP empfiehlt eine "Iterationsnull", bei der alle Tools und die Infrastruktur eingerichtet sind. Das Schreiben von Geschichten für diese ist optional, aber wahrscheinlich eine gute Idee. Das Testen Ihrer Infrastruktur (inkrementelle Erstellung, automatisiertes Testen und Bereitstellen, Benachrichtigungen usw.) ist von Vorteil

Steven A. Lowe
quelle
2
XP empfiehlt das nicht. Einige Leute tun es, aber es ist definitiv nicht Teil der Extreme Programming, wie sie von Beck et al. Ich persönlich halte Iteration Zero für eine schlechte Idee.
William Pietri
Ein weiteres Problem ist, dass Sie nicht immer bei 0 beginnen. Möglicherweise stellen Sie fest, dass Sie jetzt oder im nächsten Sprint etwas benötigen.
Andy Wiesendanger
@ William: siehe "Planning Extreme Programming" von Kent Beck, Kapitel 15, Seite 66.
Steven A. Lowe
Das ist keine Empfehlung. Sie sagen, es sei eine Idee und sagen: "Wenn Sie noch nie mit Ihrer Technologie gearbeitet haben, sollten Sie zwei Wochen in Betracht ziehen, um die Technologie genau richtig zu bekommen, bevor Sie mit der Programmierung beginnen." Und sie schlagen nicht "die gesamte Infrastruktur" vor, sondern lediglich das einfache automatisierte Testen, Erstellen und Bereitstellen von Skripten.
William Pietri
@ William: Aha, ich verstehe, worauf du hinaus willst. Ich meinte nicht die gesamte Software- Infrastruktur, sondern nur das, was Sie erwähnt haben
Steven A. Lowe
0

In unserem Team machen wir Folgendes:

  1. Nehmen Sie einen niedrigeren Fokusfaktor an .
  2. Versuchen Sie, solche Aufgaben in User Stories einzubeziehen , die tatsächlich implementiert werden müssen.
  3. Wenn einige Aufgaben absolut notwendig sind, aber keinen direkten geschäftlichen Nutzen bringen (wie das Migrieren von Komponententests von einem Framework auf ein anderes), erstellen wir zu Beginn des Sprints eine Liste mit "fortlaufenden Aufgaben" . Dies sind entwicklungsbezogene Aufgaben, die keine Geschichten sind, aber das Entwicklungsteam möchte, dass sie erledigt werden. Wir listen diese Aufgaben an unserer Tafel auf und halten sie dennoch von den Geschichten getrennt. Während des Sprints überprüfen wir bei jedem täglichen Meeting, was getan wurde, um diese Ziele zu erreichen.

Der Schritt 2 ist der wichtigste. Wie in einer agilen Praxis versuchen Sie in Scrum so wenig wie möglich zu tun, um Ihre Aufgaben zu erfüllen. Nehmen Sie es als eine Möglichkeit, Ihr Leben nicht damit zu verschwenden, unnötige Arbeit zu verrichten: Meine Erfahrung zeigt, dass bis zu 50% der Dinge, die "cool" sein würden, auf lange Sicht aufgegeben und nicht mehr gepflegt werden.

P Shved
quelle