Sind "technische User Stories" in Scrum erlaubt?

11

Sind technische User Stories in Scrum erlaubt? Wenn ja, wie lautet die Standardvorlage zum Schreiben technischer User Stories in Scrum? Ist es das gleiche As a <user> I want to do <task> so that I can <goal>?

Ich habe in einigen Blogs gelesen, dass als Entwickler keine User Story ist , aber ich habe auch gelesen, dass Scrum diese nicht vorschreibt. Es gibt nur wenige Blogs , wo sie geteilt haben User Storys mit System als Benutzer , es ist wie as a <user who is not end user> i want to <system functionality> so that <some techinical thing>. Welches ist der Standard?

Zum Beispiel gibt es User Stories wie:

Als Rezensent möchte ich Fotos von jedem Hotel / Essen hochladen, damit andere Benutzer sie sehen und mögen können

Als Benutzer möchte ich Fotokommentare hinzufügen, damit ich meine Ansicht besser erklären kann

Für diese beiden User Stories gibt es jetzt einen großen technischen Punkt - das Speichern und Abrufen des Bildes

Kann ich also eine technische Geschichte mit dem Titel "Mechanismus zum Speichern und Abrufen von Bildern" mit der folgenden Beschreibung hinzufügen?

Als Entwickler möchte ich einen Mechanismus zum Speichern und Abrufen von Bildern entwickeln, damit Benutzer Bilder hinzufügen / anzeigen können, wo immer dies erforderlich ist

Vignesh Subramanian
quelle
6
„Bild Speicher und Abrufen von Mechanismus“ soll nicht eine technische Geschichte , aber ein Entwickler seine Aufgabe an Ihrer ersten User Story.
Guillaume31

Antworten:

14

Technische Geschichten sind erlaubt, aber ich würde Ihnen raten, sie so weit wie möglich zu vermeiden.

Zum Beispiel kann Ihre Geschichte zum Speichern und Abrufen von Bildern einfach als zwei reguläre User-Geschichten geschrieben werden

  1. Als Prüfer möchte ich, dass meine hochgeladenen Fotos dauerhaft gespeichert werden, damit andere Benutzer sie jederzeit anzeigen können.
    (Beachten Sie, dass dies davon ausgeht, dass das Bild in Ihrer ursprünglichen Upload-Story nach dem Upload nicht dauerhaft gespeichert wird. Obwohl dies seltsam aussehen mag, ist es eine gültige Methode, Storys aufzuteilen, um sie verwaltbar zu machen.)
  2. Als Benutzer möchte ich hochgeladene Bilder zu einem für mich geeigneten Zeitpunkt anzeigen.
    (Dies bedeutet, dass gespeicherte Bilder später abgerufen werden können.)

Technische Geschichten sollten für Arbeiten reserviert werden, die für die Organisation wichtig sind, aber für die Benutzer nicht direkt als Merkmal / Funktionalität sichtbar sind. Fügen Sie beispielsweise einen Lastausgleich hinzu, um eine größere Anzahl oder Anforderungen zu verarbeiten.

Bart van Ingen Schenau
quelle
5
Sogar so etwas wie ein Lastausgleich ist nur das Ergebnis eines Benutzers, der eine bessere Leistung des Systems wünscht. Dies unterscheidet sich also nicht von anderen Implementierungen. Sie möchten Daten speichern, interessieren sich aber nicht weniger für eine Datenbank.
JeffO
1
@ JeffO ist genau richtig. Sogar diese Geschichten sollten im Kontext des Werts für den Benutzer formuliert werden, damit sie priorisiert und entsprechend bewertet werden. Ohne dies könnten Sie leicht die Tatsache aus den Augen verlieren, dass Sie noch nicht genug Last haben, um einen Lastausgleich zu rechtfertigen, sodass die Geschichte für ein paar Monate verschoben werden kann, bis das Verkaufsteam etwas härter arbeitet;) Mike Cohn spricht darüber in dem Buch Suceeding with Agile.
Pbarranis
Würde es einen solchen Fall geben, in dem User Story nicht zutrifft? Was sind zum Beispiel die Beispiele für User Stories, die wir sehen werden, wenn Sie aufgefordert werden, ein künstliches intelligentes AlphaGO zu erstellen, und das ultimative Ziel darin besteht, den Menschen in GO zu schlagen? Wer wäre der Benutzer, den ich interviewen kann, um Erwartungen / Akzeptanzkriterien zu definieren?
Roy Lee
11

In Anbetracht Ihres Beispiels stellt sich die Frage, warum ein Entwickler einen Mechanismus zum Speichern und Abrufen von Bildern entwickeln möchte, damit Benutzer Bilder hinzufügen / anzeigen können, wo immer dies erforderlich ist, es sei denn, ein Benutzer möchte Bilder hinzufügen oder anzeigen.

Das heißt, während Ihre Frage gut ist, ist das Beispiel nicht. Dies ist eine Benutzerfunktion und sollte eine User Story haben. Und wenn der Benutzer diese Funktionalität nicht wirklich benötigt, sollte der Entwickler dies nicht tun wollen.

Eine technische Geschichte ist mehr: "Als Entwickler möchte ich die Duplizierung in den Datenarchivierungsmodulen reduzieren, damit ich nicht jede Änderung an 6 Stellen vornehmen muss."

Die Frage, ob diese in den Sprint aufgenommen werden sollen, ist schwierig und hängt etwas davon ab, wen Sie als Ihren Kunden betrachten. Ist es der Endbenutzer oder das Unternehmen, das Sie beschäftigt, oder das Unternehmen, das das Unternehmen beschäftigt, das Sie beschäftigt?

Viele Branchenmeinungen werden von Personen durchgeführt, die für Beratungsunternehmen arbeiten. Aus dieser Perspektive kann ich das Argument sehen, dass Entwicklergeschichten schlecht sind. Sie sollten nur ein Teil dessen sein, was Sie täglich tun, unsichtbar für das Unternehmen, das dafür bezahlt. Diese Unternehmen wissen instinktiv, dass zu hohe Rechnungen dafür sorgen, dass Ihre Arbeit versiegt. Daher arbeitet jeder Entwickler nach dem Prinzip, nur technische Entwicklungen durchzuführen, die Ihre Entwicklungszeit verbessern oder Ihre Fähigkeit verbessern, fehlerfreie Software freizugeben.

Meine Erfahrung besteht eher darin, in internen Teams zu arbeiten und Software direkt an das Unternehmen zu liefern, das meine Löhne zahlt. In vielen dieser Unternehmen besteht eine Vertrauensbarriere zwischen dem Unternehmen und dem technischen Flügel des Unternehmens. In allen von ihnen gibt es eine andere Mentalität, bei der sinkende Kosten ebenso wie steigendes Einkommen sind.

In diesen Umgebungen kann es hilfreich sein, wichtige Entwicklergeschichten zu definieren. Es erhöht die Sichtbarkeit, schafft Vertrauen und ermutigt Entwickler und Management, über den Wert solcher Aufgaben für das Unternehmen nachzudenken und entsprechende Prioritäten zu setzen.

Letztendlich schlage ich vor, dass Sie es versuchen. Und wenn es keinen Wert bietet, hören Sie damit auf.

Aber mein Instinkt sagt, wenn Sie den Wert dieser Entwicklung für das Unternehmen in Betracht gezogen hätten, hätten Sie nicht einmal versucht, daraus eine Entwicklergeschichte zu machen. Es ist entweder gut für den Endbenutzer oder nicht. Wenn dies nicht der Fall ist, hat das Geschäft keinen Wert.

pdr
quelle
1
Würde es einen solchen Fall geben, in dem User Story nicht zutrifft? Wenn Sie zum Beispiel aufgefordert werden, ein künstliches intelligentes AlphaGO zu bauen, und das ultimative Ziel darin besteht, den Menschen in GO zu schlagen? Wie soll ich die User Stories erstellen, wer würden die Schauspieler der Stories sein und wen (wäre es Product Owner? Oder Consumer?) Soll ich interviewen, um Erwartungen / Akzeptanzkriterien zu definieren?
Roy Lee
2

Das ist eine gute Frage. Ich habe keine offizielle Antwort, aber wo ich arbeite, fügen wir technische User Stories hinzu und nennen sie technische Schulden. Wenn sie nicht erlaubt wären, würde ich einen anderen Weg finden, sie hinzuzufügen, nur um meine Arbeit aufzuzeichnen und dem Unternehmen mitzuteilen. Ebenso erinnert uns diese Dokumentation daran, was für zukünftige Projekte benötigt wird.

Wenn wir in einer neuen Anwendung keine technischen Storys hinzufügen dürfen, besteht die Unterbrechung beispielsweise darin, dass ich nach dem Start eines Sprints, der Datenbankmodelle erstellt und auf die Genehmigung durch meinen Datenmodellierer wartet, eine Woche lang mitsummiere sie iterieren mit dem Modellierer und wenn Sie fertig sind, senden Sie die Skripte an die Datenbank und warten Sie, bis sie die Datenbankobjekte erstellt haben. In der Zwischenzeit werde ich ein neues Codeprojekt, einige grundlegende ORM-Funktionen und mein Layout für die Quellcodeverwaltung erstellen. Wenn alles gesagt und getan ist, habe ich Zeit, eine leere Zielseite zu erstellen und bereitzustellen.

Tag für Tag, während dies geschieht, klettert das Geschäft, wenn ich die Informationen nicht aufzeichne, dass unser Team nicht an dem Projekt arbeitet, obwohl wir es tatsächlich sind. Wenn wir diese Elemente in den Geschichten haben, können wir unsere Arbeit abhaken, die Arbeit dokumentieren und dem Unternehmen mitteilen, dass wir Fortschritte machen.

Wenn es eine bessere Best Practice gibt, bin ich ganz Ohr.

Brian
quelle
Obwohl dies in vielen Unternehmen ein Problem darstellt, ist der 100% ige Auslastungsfehler eine häufige Funktionsstörung. AUSSERHALB: Technische Schulden sind ein bekanntes Problem im Zusammenhang mit erforderlichen Arbeiten, die absichtlich verzögert werden.
Alan Larimer
2

Mein persönliches Gefühl ist, dass Teams nicht zu sehr auf das angewiesen sein sollten, was Scrum erlaubt, und sich mehr Sorgen darüber machen sollten, was für das Team funktioniert. Ein Teil der Grund dafür , dass gedränge ein bisschen ein schlechter Ruf bekommen hat , ist , dass Praktiker kann sich Prozess konzentriert , die auf die Ideen , die hinter agilen Projektmanagement gegensätzlich ist.

Ich werde jetzt aus meiner Seifenkiste steigen, aber wenn Sie sich fragen, ob das Folgende wirklich "Gedränge" ist, lesen Sie bitte das Obige (erneut).

Es ist wichtig, die in den User Stories definierten "Funktionen" von den "Leistungen" zu trennen, die das technische Team bereitstellen muss, um diese Funktionen zu unterstützen. In diesem Fall ist das Speichern und Abrufen von Bildern ein technisches Ergebnis, das Sie (als technisches Team) implementieren müssen. Nahezu jede Geschichte benötigt einige technische Ergebnisse.

Der Grund, warum dies wichtig ist, ist, dass ein technisches Ergebnis (für sich) aus Anwendersicht keinen Wert erzeugt. Wenn Sie anfangen, technische Ergebnisse als User Stories zu verfolgen, können Sie leicht in die Falle tappen, technische Ergebnisse als geschäftlichen Wert zu betrachten. Wenn Sie das Wasser auf diese Weise trüben, verwechseln Sie Arbeiten, die Geschäftsziele unterstützen (dh Dinge, die Geld kosten), mit tatsächlichen Geschäftszielen (dh Dinge, die Geld verdienen).

JimmyJames
quelle
Mist, ich habe nicht bemerkt, dass dies eine alte Frage war ...
JimmyJames
Nein, das ist eine gute Antwort. Ein großes Lob!
Hannele
teams should not be too hung up on what scrum allowsist problematisch. Dies ist ein Hauptgrund dafür, dass das Scrum- Framework weiterhin missverstanden wird. Frachtkulte, die in der Praxis nicht einmal korrekt sind, werden durch anhaltende Unwissenheit verewigt.
Alan Larimer
@AlanLarimer Agilität ist mehr als Scrum. Der Sinn von Agilität besteht darin, Prozesse zu erstellen, die für Teams funktionieren. Ich würde zustimmen, dass das Aufrufen von Scrum, wenn es nicht problematisch ist, aber ich lehne die Vorstellung ab, dass Scrum der Höhepunkt von Projektmanagementprozessen ist.
JimmyJames
Einverstanden, dass die agile Philosophie adaptive Ansätze für die Produktentwicklung (über das Projekt, da Scrum fokussiert ist) fördert und dass es keine Silberkugel gibt. Niemand, der in diesen Fragen und Antworten einen Spitzenstatus beansprucht . Wenn Teams / Organisationen / Gruppen das Scrum-Framework auswählen und Fragen zu seiner Verwendung haben, ist es wichtig hervorzuheben, dass es sich um ein Framework handelt, das die agile Philosophie unterstützt (da es eine Grundlage dafür war), indem es nicht viele Besonderheiten vorschreibt. Das Erkennen von Wert in einer solchen und anderen Flexibilität ist wichtig, um Frachtkulte zu vermeiden und den Unterschied zwischen Rahmen- und Prozessproblemen zu erkennen.
Alan Larimer
1

Alle oben genannten Antworten verweisen nicht auf das maßgebliche Quelldokument für das Scrum-Framework: The Scrum Guide .

Das Product Backlog listet alle Features, Funktionen, Anforderungen, Verbesserungen und Korrekturen auf, die die Änderungen darstellen, die in zukünftigen Versionen am Produkt vorgenommen werden müssen.

Der Fokus sollte auf der Wertschöpfung liegen. Manchmal kommt dieser Wert von technischer Arbeit wie der Aktualisierung der Infrastruktur. Schließen Sie diese Artikel nicht aus!

Der Begriff User Story wird im Scrum Guide nie angezeigt, weil

Es ist ein Rahmen, in dem Sie verschiedene Prozesse und Techniken anwenden können.

Die Verwendung einer User Story ist nur eine mögliche Technik zum Aufzeichnen der PBIs. Obwohl es üblich ist, das Format "Wie ich will, also das" zu sehen, kann es seiner ursprünglichen Absicht widersprechen . Dieses problematische Format wurde auch auf der Agile 2017 angesprochen .

Das Verständnis und die Verwendung von vertikalem Schneiden ist hilfreich, um die Größe der Product Backlog-Elemente (PBIs) zu verringern. Betrachten Sie schneiden , dass einzelne speichern und abrufen Artikel in speichern und abrufen Artikel s .

Alan Larimer
quelle