Denken Sie über die Verwendung von User Stories zur Definition von Geschäfts-/Plattformanforderungen nach?

Ich bin sehr an User Stories für endbenutzergesteuerte Funktionen gewöhnt. Aber wenn Sie ein Projekt von Grund auf neu starten, ist es dann sinnvoll, die Geschäftsinhaber als Benutzer zu behandeln und ihre Bedürfnisse auch so zu definieren? Einige Beispiele

As a Business Owner
I want regular database backups
So that we can maintain business continuity

As a Business Owner
I want end-user analytics
So that we can know how our platform is being used

As a Business Owner
I want end-user authentication
So that only registered users have access

Dinge wie diese sind offensichtlich Features, die ein Dev/Devops-Team erstellen muss, aber sie sind nicht wirklich endbenutzerorientiert im traditionellen Sinne, an den ich bei User Stories denke. Gedanken?

Jeder, der das System verwendet, ist ein Benutzer. Verwendet der „Business Owner“ das System? Dann sind sie ein Benutzer. Sie haben andere Anforderungen als die Endbenutzer, die keine Endbenutzeranalysen verwenden möchten.

Antworten (4)

Die Identifizierung des Hauptkonsumenten der Story ist akzeptabel

Der Begriff „Benutzer“ in User Stories wird oft besser als Akteur oder Rolle in einem Anwendungsfall oder einfach als Wertkonsument verstanden . Das Hauptziel einer klar definierten Rolle in einer User Story besteht darin, die Story so zu gestalten , dass der Umfang eingeschränkt wird. Das sekundäre Ziel besteht darin, sicherzustellen, dass die User Story als Platzhalter für die Zusammenarbeit und nicht als Ersatzspezifikation angesehen wird. Mit einem identifizierten Verbraucher der Geschichte wird es für das Team viel einfacher zu wissen, mit wem es über Implementierungsdetails oder Akzeptanzkriterien sprechen kann.

Um es kurz zu machen, an Ihren Geschichten ist rein pragmatisch nichts auszusetzen. Sie können jedoch besser sein, wenn Sie den „Benutzer“ im Story-Format nutzen, um den Kontext und die Zusammenarbeit zu verbessern.

Verbessern Sie Ihre Geschichten

Während Ihre Geschichten wahrscheinlich so wie sie sind umsetzbar sind, können Sie sie mit einem besseren Rahmen und durch die Schaffung von Möglichkeiten zur Zusammenarbeit verbessern. Schauen wir uns ein Beispiel an.

Mit den oben beschriebenen Zielen könnten Sie Ihre erste Geschichte wie folgt umschreiben:

Als Datenbankadministrator
möchte ich sicherstellen, dass die Datenbank innerhalb von 4 Stunden wiederhergestellt werden kann,
damit wir unsere Geschäftskontinuitätsziele erreichen können.

Diese Geschichte ist dem Original wahrscheinlich überlegen, weil:

  1. Es identifiziert einen Mitarbeiter, der helfen kann, die Implementierungsdetails zu definieren.
  2. Es identifiziert ein nützliches Ziel, das den Lösungsraum einschränkt, ohne übermäßig präskriptiv in Bezug auf die Implementierungsdetails zu sein.
  3. Es bietet Kontext darüber , warum die Geschichte nützlich ist, und dieser Kontext kann häufig die Implementierungsentscheidungen und Diskussionen über die Zusammenarbeit leiten.

Ihre anderen Geschichten würden ebenfalls von einer ähnlichen Behandlung profitieren. Es lohnt sich auf jeden Fall, etwas mehr Zeit aufzuwenden, um sicherzustellen, dass Sie die richtigen Mitarbeiter für eine Kerngeschichte gewonnen haben, sowie ausreichend Kontext, um sicherzustellen, dass das Team das Richtige aufbaut .

Das Iterieren von Features wird erwartet

Wenn es mehrere Rollen oder Feature-Verfeinerungen gibt und eine einzelne Story nicht alle erfasst (oder möglicherweise nicht kann), ist es oft besser, einen grundlegenden Anwendungsfall auszuwählen und dann zu iterieren. Darum geht es bei der iterativen Entwicklung! Wenn Sie User Stories verwenden, sollten Sie Ihre Funktionen sowieso iterativ , inkrementell und empirisch verbessern . Indem Sie einen interaktiven Ansatz verfolgen, können Sie sich darauf konzentrieren, Funktionen just-in-time und auf einem „ausreichend guten“ Qualitätsniveau zu erstellen, anstatt zu versuchen, eine komplexe Lösung mit großem Planungsaufwand im Voraus zu spezifizieren, der im Allgemeinen zu viele Einschränkungen mit sich bringt der Lösungsraum zu keinem nützlichen Zweck.

Richtig gemacht, sind User Stories nicht nur eine andere Art, altmodische Spezifikationen zu beschreiben. Sie stellen ein anderes Paradigma dar, das auf Zusammenarbeit und empirischer Kontrolle basiert, und erfordern eine grundlegend andere Art, über einen Problembereich nachzudenken.

Nutzen Sie User Stories als Konversationsstarter und Kurznotizen, um Ihre Zusammenarbeit zu fördern. Schreiben Sie keine detaillierten Geschichten für Dinge, die derzeit nicht im Umfang sind (YAGNI), sondern verbringen Sie die Zeit damit, die wirklich wichtigen Dinge während der Backlog-Verfeinerung und der Sprint-Planung zu zerlegen und zu identifizieren. Wenn ein bestimmtes Feature schließlich als Teil eines zusammenhängenden Sprint-Ziels in den Geltungsbereich kommt, wird es viel offensichtlicher, ob Sie das richtige Wer und Was in Ihren Geschichten haben, und das wird wiederum eine bessere Anleitung für das Entwicklungsteam sein, wenn es arbeitet wie man es im aktuellen Sprint umsetzt!

Vielen Dank, dass Sie sich die Zeit genommen haben, all dies aufzuschreiben – es war sehr hilfreich
+1 für die Rekontextualisierung des Ziels und nicht der Methodik. Geschäftskontinuität hat einen Wert; Backups sind eine Methode; Wenn Sie die gewünschte Kontinuität bereitstellen können, ist es mir egal, ob Sie dies mit Backups oder Feenmagie tun. Geben Sie an, was getan werden muss, nicht wie es zu tun ist.

Willkommen bei PN.

Einer der einflussreichsten Personen auf dieser Welt (des Projektmanagements), Mike Cohn, schrieb darüber einen Artikel im Jahr 2015, den Sie unbedingt lesen sollten, mit dem Namen Not Everything Needs to Be a User Story: Using FDD Features . Einige seiner Artikel wurden verwendet, um Fragen innerhalb dieser Community gut zu beantworten, und es passt auch zu Ihrer.

Der Artikelname erwähnt die Lösung des Autors für solche Fälle, in denen der Benutzer zu weit entfernt ist - Feature-Driven Development (FDD) .

Wie der Autor schreibt

Ein FDD-Feature wird in diesem Format geschrieben:

[action] the [result] [by|for|of|to] a(n) [object]

Betrachten Sie als Beispiele diese:

  • Schätzen Sie den Schlusskurs der Aktie
  • Generieren Sie eine eindeutige Kennung für eine Transaktion
  • Ändern Sie den auf einem Kiosk angezeigten Text
  • Führen Sie die Daten für doppelte Transaktionen zusammen

Sie haben bereits einige großartige Antworten, aber ich möchte nur etwas hinzufügen. Sie sagen, dass Ihre Geschichten:

sind nicht wirklich endbenutzerorientiert im herkömmlichen Sinne

Ich bin mir nicht sicher, ob dies bei allen Geschichten der Fall ist, die Sie auflisten.

Zum Beispiel:

Als Geschäftsinhaber möchte ich regelmäßige Datenbanksicherungen, damit wir die Geschäftskontinuität aufrechterhalten können

Ja, das ist wichtig für den Geschäftsinhaber, aber das liegt an den Auswirkungen, die es auf die Endbenutzer haben wird.

Du könntest es so umschreiben wie:

Als Endbenutzer möchte ich sicher sein, dass meine Daten geschützt sind, damit ich nicht den Zugriff auf das Produkt verliere oder meine Daten erneut eingeben muss

Ähnlich für:

Als Geschäftsinhaber möchte ich eine Endbenutzerauthentifizierung, damit nur registrierte Benutzer Zugriff haben

Auch Ihre Endbenutzer wollen einen sicheren Service. Dies könnte möglicherweise umgeschrieben werden als:

Als Endbenutzer möchte ich sicher sein, dass mein Konto sicher ist, damit niemand auf meine Informationen zugreifen oder unbefugte Änderungen vornehmen kann

Was ist falsch daran, dem Unternehmer Anforderungen zuzuweisen? Das ist derjenige, der die Gehälter der Entwickler zahlt. Der Business Owner oder CEO ist für die Vermittlung zwischen Marketing und Engineering verantwortlich. Das Marketing wird sagen, dass es eine Funktion haben möchte, um die Software verkaufen zu können. Das Engineering wird sagen, dass die Implementierung so viel kosten wird. Der CEO geht dann zurück zum Marketing und sagt, dass der Preis um so viel steigen muss, um für das Feature zu bezahlen – ist es das wert? Der CEO kann auch auf die Technik schlagen und sagen, dass die Implementierung billiger sein sollte.
Die Sorge ist, dass dies zu einer Trennung von den Kunden führen kann. Sie könnten am Ende Zeit und Ressourcen für etwas aufwenden, das die Kunden nicht sehr schätzen, oder Sie könnten alternativ eine Gelegenheit verpassen, etwas aufzubauen, das sie wertschätzen. Indem Sie Anforderungen mit dem Endnutzerwert verknüpfen, helfen Sie der Organisation, darüber nachzudenken, was ihre Kunden wirklich schätzen.
Die Hyperfokussierung auf den Endbenutzer kann auch dazu führen, dass viele nicht-funktionale Anforderungen übersehen werden. Der Endbenutzer interessiert sich wahrscheinlich nicht für Dinge wie PCI-Compliance, SLA-Nummern, die MTF eines Anwendungsservers, wie häufig eine externe Firma die App-Sicherheit prüft usw. Aus diesem Grund bin ich kein wirklicher Fan von User Stories; Ich habe auch das Gefühl, dass sie selten Anforderungen mit einem angemessenen Detaillierungsgrad erfassen.

User Stories sind ein Werkzeug, um Benutzerbedürfnisse zu verstehen und zu erfüllen. Ich könnte das letzte ändern, um zu sagen: "Als zahlender Benutzer möchte ich, dass meine Anmeldungen gesichert sind, damit mir keine Kosten für die unbefugte Nutzung meines Kontos in Rechnung gestellt werden."

Es gibt andere Mechanismen wie die Definition of Done für Qualitätsbelange wie Verfügbarkeit, Tests usw.

Außerdem erfordert Scrum keine Verwendung von User Storys. Wenn Sie also die Wiederherstellbarkeit hinzufügen möchten (auf die ich mich gegenüber dem Backup selbst konzentrieren würde), müssen Sie keine User Story verwenden, um dies zum Backlog hinzuzufügen.

Um Ihre Verbesserung zu verbessern, wie wäre es mit "Ich möchte, dass meine Anmeldungen gesichert sind, damit mir keine Kosten für die unbefugte Nutzung meines Kontos in Rechnung gestellt werden"?
Es kann sogar mehrere Personen geben, die ein Interesse an der Kontosicherheit haben: die Betrugsabteilung, die Compliance-Abteilung, der Kunde, der Ehepartner des Kunden (der der Inhaber der hinterlegten Kreditkarte ist) und so weiter. Manchmal ist es nützlich, mehrere Geschichten zu haben, wenn der Rahmen oder Kontext des Anwendungsfalls unterschiedlich ist. In diesem Fall wäre dies wahrscheinlich nicht der Fall, aber ich kann nicht umhin, über diesen speziellen Aspekt des User-Story-Ansatzes zu schweigen, nur weil dieses Thema in meinen Coaching-Rollen so oft auftaucht.
@Todd Erstens gefällt mir deine Idee, also habe ich sie eingebaut. Zweitens stimme ich zu, dass es viele Interessengruppen geben kann und es eine ganze Diskussion geben könnte, die sich um den Unterschied zwischen internen Begünstigten wie einer Betrugsabteilung, die tatsächlich einen echten Wert aus der Arbeit zieht, und internen Interessengruppen wie Produktchampions, die am Ergebnis interessiert sind, drehen könnte im Namen des Endbenutzers. Es ist immer ein kleiner Balanceakt bei diesen Fragen, wie weit man in die Tasche greifen soll.