Was ist die beste Übung für User Stories mit zwei Rollen?

8

Ich habe eine Reihe von User Stories, in denen dieselbe Funktion von mehreren Rollen gemeinsam genutzt werden muss. Ich habe angefangen, diese Geschichten so zu schreiben:

Als Rolle-A oder Rolle-B
Wenn ich Aktion-X ausführe,
sollte Ereignis-Y auftreten.

Ist dies die richtige Art, dieses Konzept in User Stories darzustellen, oder sollte ich es für jede Rolle in eine Story aufteilen?

Sean Hunter
quelle

Antworten:

14

Mach Schluss damit

eine Rolle pro Geschichte; Wenn Sie gezwungen werden, jede Rolle isoliert zu betrachten, können Unterschiede auf natürliche Weise auftreten

[ein Beispiel könnte helfen; Es kann zu Rollenverwirrungen kommen, wenn die Rollen A und B viele der gleichen Geschichten teilen. Wahrscheinlich gibt es eine Rolle C, die stattdessen die gemeinsamen Geschichten "besitzt".]

Steven A. Lowe
quelle
Danke für die Antwort. Das macht die Dinge etwas klarer. Was ist, wenn die Funktion so etwas wie ein Bericht ist? Der Bericht hätte die gleiche Funktionalität für Rolle A und Rolle B, aber Rolle A und Rolle B müssten weiterhin unterschiedliche Berechtigungen innerhalb des Systems haben.
Sean Hunter
2
@ Sean überprüft Ihre Rollendefinitionen erneut. Wenn sich die unterschiedlichen Berechtigungen innerhalb des Systems für Rolle A und Rolle B nicht auf den Bericht auswirken, sind sie irrelevant, und es ist wahrscheinlich, dass A und B nicht die richtigen Rollen für die Berichtsgeschichte sind. Beispielsweise haben sowohl der Rollenarchitekt als auch der Rollenmanager Zugriff auf den 401K-Bericht. Wäre es nicht sinnvoller, "401K-Teilnehmer" als geeignetere Rolle für diesen Bericht zu definieren?
Steven A. Lowe
Ja, das macht Sinn, ich komme dahin, wo du jetzt herkommst. Danke für den guten Rat: D.
Sean Hunter
10

Ich stimme @Steven zu. Sie sollten entweder die Geschichte brechen oder die Rollen verallgemeinern. Das bedeutet, dass Sie eine Verallgemeinerung von A und B haben, die jedes Mal verwendet wird, wenn die Geschichte für A und B gleich ist. (Es ist wie die Vererbung von Rollen / Akteuren, bei denen die Verallgemeinerung Eltern von A und B ist.)

Ladislav Mrnka
quelle
1
Wenn Sie Steven zustimmen, warum haben Sie ihn nicht einfach positiv bewertet, anstatt eine weitere identische Antwort hinzuzufügen?
pdr
2
@pdr: Ich denke nicht, dass der zweite Teil meiner Antwort "identisch" ist und ich habe Stevens Antwort positiv bewertet. Es gibt keine Regel, dass Sie Antworten anderer nicht erweitern können. Es liegt an der Gemeinschaft, dies zu beurteilen und die Antworten zu bewerten, die sie mögen. Wie Sie sehen können, hat Steven mehr positive Stimmen erhalten, was fair ist, so dass ich kein Problem mit meiner Antwort sehe.
Ladislav Mrnka
1
@pdr Ich stimme Ladislavs Hinzufügung zu und habe auch seine Antwort positiv bewertet. Je mehr gute Infos desto besser!
Steven A. Lowe
Ich verstehe, dass das Erstellen einer Verallgemeinerung von Benutzern eine formale Vollständigkeitsprüfung Ihrer Geschichten unterstützen würde, aber ich denke, es ist eine schlechte Idee, solche Geschichten zu schreiben. Der Grund ist, dass es in direktem Konflikt mit der ersten Regel des agilen Manifests steht: "Individuen und Interaktionen über Prozesse und Werkzeuge".
Max Hohenegger
1

Sie müssen Rollen identifizieren und abstrahieren

Das Beispiel, das Sie bereitgestellt haben ...

As a Role-A or a Role-B 
When I perform Action-X 
Event-Y should occure.

skaliert nicht, da das Programm eine exponentielle Anzahl von Kombinationen annehmen kann.

Um einzelne Rollen zu extrahieren, müssen Sie sich die Schritte aus erster Hand vorstellen und dabei den globalen Status ignorieren.

Ich schlage vor, Sie werfen einen Blick auf " Wie man eine Tasse Kaffee bekommt ". Es zeigt, wie eine REST-API für ein Café mithilfe von Zustandsdiagrammen modelliert werden kann.

Der Punkt ist, dass Sie erst dann ein genaues Bild davon zeichnen können, wie das System global interagiert, wenn Sie sehen, dass es auf lokaler Ebene funktioniert.

Evan Scholle
quelle