User Story vs. Anforderung


33

User Story erfasst, was der Benutzer mit dem System auf hohem Niveau tun möchte. Ich verstehe, dass die User Story eine Reihe von Anforderungen auf niedrigem Niveau weiter vorantreiben würde. Entspricht die User Story den hohen Anforderungen an das System?


"User Story erfasst, was der Benutzer mit dem System auf hohem Niveau tun möchte ". Ich halte das für umstritten. Ich würde zustimmen, wenn Sie High-Level durch Feature-Level ersetzen würden .
8bitjunkie

Antworten:


52

Um ehrlich zu sein, halte ich nach fast zwei Jahren Erfahrung in der agilen Entwicklung "User Story" immer noch für einen ausgefallenen Begriff für "funktionale Anforderung".

Auf oberflächlicher Ebene ist es anders , z. B. nimmt es immer eine bestimmte Form an ( "als X möchte ich Y, damit Z ..." ), aber die Schlüsselelemente - Identifizierung der Stakeholder und der Begründung - sind auch inhärent. schriftliche funktionale Anforderungen. Es ist genauso einfach, eine schlechte User Story zu schreiben wie eine schlechte Anforderung ( "wie [unser Firmenname], ich möchte [vage Eigenschaft], damit ich [etwas tun kann, das selbstverständlich Teil meines Jobs ist, wie 'Mehr an Kunden verkaufen'] " ).

Was User Stories meiner Erfahrung nach so gut wie nie erfassen, sind nicht funktionale Anforderungen wie Leistung und Sicherheit. Es ist sehr schwierig, solche Anforderungen richtig zu schreiben, und das Format der User Story ist einfach nicht sehr gut, um sie zu erfassen, da es eher um die allgemeine Produktqualität und die Minderung (aber nicht die Beseitigung) von Risiken geht, als um die Erfüllung eines bestimmten Benutzers brauchen.

Ich stelle mir User Stories also wirklich als Teilmenge der Anforderungen mit einer bestimmten Formel vor und verwende die Begriffe immer noch ziemlich austauschbar.

Der größte Vorteil von User Stories gegenüber Anforderungen besteht darin, dass das Wort "Anforderung" darauf hinweist, dass eine Funktion dort erforderlich ist , wo sie oft nur gewünscht wird . Theoretisch können User Stories für jede Veröffentlichung priorisiert und eingefügt werden, während Anforderungen für jede Veröffentlichung eine Grundvoraussetzung zu sein scheinen .

Selbstverständlich müssen Ihre Kunden und / oder die Geschäftsleitung dies akzeptieren, damit die oben genannte Unterscheidung von Bedeutung ist. Es nützt Ihnen überhaupt nichts, wenn Sie 30 User Stories haben, die alle zu einem "Projekt" zusammengefasst sind und alle gleichzeitig abgeschlossen werden müssen. Sie können sie in diesem Fall auch als "Anforderungen" bezeichnen, da sie tatsächlich erforderlich sind.


Alle Antworten halfen mir beim Verständnis, wollten alle als richtig markieren :)
Punter Vicky

5
Ich stimme nicht zu: Anforderungen richten sich darauf, wie der Benutzer mit dem System interagiert, Geschichten darüber, welchen Zweck Funktionen haben. Das sind ganz andere Dinge.
Sklivvz

1
@Sklivvz: Ich glaube nicht, dass ich jemals eine User Story gelesen habe, die nichts darüber aussagt, wie der Benutzer mit dem System interagiert, und wie gesagt, gute Anforderungen sind mit einer Aussage zum Zweck verbunden, damit sie verstanden werden können Kontext. Aus irgendeinem Grund scheinen viele Leute automatisch anzunehmen, dass "traditionelle Anforderungen = schlechte Anforderungen" und "User Stories = gute Anforderungen". Beides ist nicht unbedingt wahr. Nehmen Sie zum Beispiel "EVO" , das jede Anforderung nicht nur an ein Geschäftsziel, sondern an eine tatsächliche Metrik bindet.
Aaronaught

1
@hanzolo: Das ist doch blöd. Aufgaben sind viel zu detailliert, um als funktionale Anforderungen von Nutzen zu sein. Aufgaben werden häufig auf höchstem technischen Niveau angegeben, wie in "Implementieren eines Fringle-Parsers mithilfe der Jibbler-Bibliothek". Sie könnten vielleicht begründen , dass Aufgaben ein bisschen sortenrein sind wie Spezifikationen , aber diese richten sich nach den Anforderungen. User Stories sollten Akzeptanzkriterien enthalten - diese entsprechen vielmehr den detaillierten funktionalen Anforderungen, die in Modellen vom Typ Waterfall / RUP verwendet werden.
Aaronaught

2
@Sklivvz: Das "Was" ist im Allgemeinen eine Interaktion zwischen dem Benutzer und dem System. "Ich möchte in der Lage sein, die Gesamtzahl der Stimmen zu sehen" ist ein typisches Beispiel für den mittleren Teil einer User Story und wird fast identisch mit einer funktionalen Anforderung formuliert ("Der Benutzer sollte in der Lage sein, die Gesamtzahl der Stimmen zu sehen"). . Das "Wer" und "Warum" sind die einzigen Teile, die angeblich unterschiedlich sind, und viele andere Anforderungsverfolgungssysteme / -methoden als User Storys erwarten, dass diese ebenfalls bereitgestellt werden.
Aaronaught

16

Ron Jeffries schrieb vor langer Zeit über die 3Cs von User Stories ( http://xprogramming.com/articles/expcardconversationconfirmation/ ) mit dem Schwerpunkt auf einer Karte (Kurzbeschreibung), Gespräch zwischen den Kunden und dem Lieferteam einmal eine User Story wird umsetzbar und die vereinbarte Bestätigung einer Geschichte nach diesem Gespräch.

Im Wesentlichen sind User Stories vor dem Gespräch nur geplante Scope - grobe Vorstellungen darüber, was wir tun könnten. Nach dem Gespräch sollten Sie eine Möglichkeit haben, zu bestätigen, dass die Geschichte vollständig ist. Je nach dem Zeitpunkt, zu dem Sie sich die Geschichte in dieser Zeitleiste ansehen, ist eine Geschichte möglicherweise nur eine umfassende Vorstellung vom Umfang oder eine detaillierte Anforderung.

Heutzutage scheint die Bedeutung von "User Story" auf den "Karten" -Teil von Jeffries '3Cs beschränkt zu sein. In diesem Fall ist eine User Story keine Voraussetzung, sondern ein Versprechen, ein Gespräch über die Anforderungen zu führen.

Im c2-Wiki ( http://xp.c2.com/UserStory.html ) finden Sie jede Menge Goldklugheiten über User Stories.


7

User Stories und Anforderungen sind sehr unterschiedliche Biester.

Bedarf

Die Anforderungen setzen voraus, dass der Entwurf der Anwendung im Voraus erfolgt und dass die Entwicklung die Implementierung dieses Entwurfs ist. Anforderungen daher konzentrieren sich auf wie eine Funktionalität zu implementieren.

Beispiel für eine Anforderung:

  • Erstellen Sie ein Benutzerkontaktformular mit den folgenden Feldern: Name, Nachname, E-Mail, Freitext und Senden-Schaltfläche. Wenn Sie auf die Schaltfläche "Senden" klicken, wird eine E-Mail an unser Support-Team gesendet.

Benutzergeschichten

Anwenderberichte konzentrieren sich darauf, was zu erreichen ist, und bestehen darauf, dass das Design des Produkts in letzter Minute erfolgt und es sich um eine Zusammenarbeit zwischen einer Produktperson und einer Entwicklerperson handelt. Die Details werden während der Implementierung basierend auf der Gelegenheit festgelegt.

Beispiel einer Geschichte:

  • Als Jimmy der Benutzer möchte ich Ihr Support-Team kontaktieren, wenn ich die Website nicht richtig nutzen kann, damit sie mir helfen können.

Was ist der Unterschied?

Wie Sie sehen, gibt es sicherlich einen Unterschied in der Menge der bereitgestellten Details, aber es gibt auch viele Informationen, die nur in der Geschichte verfügbar sind, nämlich den Zweck , den wir mit dieser Funktion erreichen wollen.

Während es scheint, dass der Zweck relativ unwichtig ist, ist dies eine falsche Annahme in der agilen Entwicklung. In der Regel gibt es zwei Fälle, in denen die Kenntnis des Zwecks sehr wichtig ist: Reduzierung der Opportunitätskosten und Ermöglichung der Beweglichkeit.

Opportunitätskosten

Wenn die Anforderung versteckte Annahmen enthält, kann dies sehr schwer zu erreichen sein. Zum Beispiel: Steht ein Mailserver zur Verfügung? Andernfalls kann die Entwicklung der Anforderung viel länger dauern. In einigen anderen Fällen kann eine einfachere Methode zum Erreichen des gleichen Ziels aufgrund des Designs verfehlt werden.

Im Gegensatz dazu handelt es sich in der User Story um einen Benutzer, der sich an unsere Support-Abteilung wendet. Wenn das Versenden einer E-Mail nicht machbar oder zu teuer ist, können wir vor Ort eine andere Lösung finden: Schreiben Sie in eine Datenbank oder verwenden Sie ein Formular über Google Docs oder geben Sie einfach eine E-Mail-Adresse anstelle des Formulars ein. Dies kann nicht einfach mit einer Anforderung durchgeführt werden, aber es kann einfach mit einer Story und einer anwesenden Produktperson durchgeführt werden.

Beweglichkeit

Aus diesem Grund neigen wir bei Anforderungen im Allgemeinen dazu, diese versteckten Annahmen im Voraus zu überdenken und sicherzustellen, dass es keine Probleme gibt. In diesem Fall ist möglicherweise eine andere Anforderung geplant, die sicherstellt, dass ein Mailserver vorhanden ist.

Dies führt uns zu einem weiteren großen Unterschied zwischen Geschichten und Anforderungen, nämlich der Hierarchie . Wie ich oben gezeigt habe, müssen Anforderungen von Natur aus in einer natürlichen Hierarchie angeordnet werden, damit Abhängigkeiten erfüllt werden. Geschichten hingegen konzentrieren sich auf den Zweck und unterliegen keinen solchen Einschränkungen.

Dies ist beabsichtigt, da es in agilen Umgebungen von grundlegender Bedeutung ist, Storys während der Ausführung des Projekts nach Bedarf hinzuzufügen, zu entfernen, neu zu planen und zu ändern. Anforderungen können im Allgemeinen hinzugefügt, manchmal geändert oder entfernt werden, aber es ist im Allgemeinen sehr schmerzhaft, sie aufgrund aller Abhängigkeiten zu verschieben. Es wird einfach nicht sehr oft gemacht. Wenn Sie mit Anforderungen arbeiten, wird Ihre agile Implementierung in dem Sinne, dass sie Veränderungen annehmen kann, darunter leiden oder wahrscheinlich überhaupt nicht sehr agil sein.


6
Ich würde sagen, Sie haben es falsch gemacht - die Anforderungen lauten "Der Benutzer muss sich an den Support wenden". Die Geschichte ist, wie man das durch Hinzufügen von Details in etwas Sinnvolles definiert. Vielleicht hängt alles von der Terminologie ab, und wir werden uns über nichts aufregen.
gbjbaanb

2
Ich bin mir ziemlich sicher, dass ich sie nicht falsch verstanden habe.
Sklivvz


15
"Die Anforderungen konzentrieren sich daher auf die Implementierung einer Funktionalität." - Das ist sehr falsch. Wenn eine Anforderung besagt, wie etwas zu tun ist, ist sie keine gute Anforderung. Sofern keine Einschränkungen bekannt sind, enthalten die Anforderungen keine Entwurfs- oder Implementierungsdetails. Wenn ich Ihr Beispiel "Anforderung" sehen würde, würde ich das sofort ablehnen - es gibt Implementierungsdetails an.
Thomas Owens

4
Mehrere (hoch angesehene und oft zitierte) Quellen sowie meine Ausbildung und Erfahrung im Bereich Requirements Engineering sagen mir etwas anderes. Wenn Sie etwas darüber sagen, wie Sie etwas erreichen, haben Sie Designarbeit geleistet. Ein Mock-up ist Design und keine Anforderung. Unabhängig vom Format ist eine Anforderung "alles, was die Entwurfsentscheidungen bestimmt", nicht die Entwurfsentscheidungen selbst. Ich stimme der Antwort von Aaronaught voll und ganz zu, dass eine User Story nur ein Format ist, mit dem funktionale Anforderungen erfasst werden können, sodass die meisten dieser Antworten in Bezug auf allgemein akzeptierte Begriffe falsch sind.
Thomas Owens

6

Für mich ist es ein kritisches Element einer User Story, warum und wie ein Benutzer das System verwendet. Dies ist besonders nützlich, da es nicht viel darüber aussagt, wie das System die erforderlichen Funktionen bereitstellt. Wenn UI- und Usability-Tests erforderlich sind, ist die User Story möglicherweise das wichtigste Dokument.

Sicher, Sie können sich von Selen vergewissern, dass bestimmte Knoten im HTML-Code vorhanden sind, oder Screenshots erstellen, oder sich vergewissern, dass sich bestimmte Pixel dort befinden, von denen Sie hoffen, dass sie vorhanden sind. Aber wenn es irreführenden Text gibt oder nicht klar ist, wie der Benutzer das System verwenden soll, oder es für einen Benutzer schwierig ist, herauszufinden, wie er sein Ziel erreichen kann, haben Sie plötzlich kein vollständiges System mehr. Jetzt ist eine Schulung erforderlich, um das System zu verwenden. Die Überprüfung des abgeschlossenen Systems anhand der Benutzerszenarien ist eine wichtige Komponente des manuellen Testens.

Es gibt eine Denkweise, die in User Stories / Szenarien festgehalten ist und die viele detaillierte Entwurfsentscheidungen über die Implementierung beeinflussen sollte. Sofern Entwickler nicht direkt mit Benutzern sprechen oder ihnen bei der Verwendung des Systems zusehen, ist das Benutzerszenario möglicherweise die einzige Verknüpfung, über die sie die Benutzeranforderungen verstehen können.

Schließlich können die Geschäftsleute angeben, was sie benötigen, ohne anzugeben, wie dies erreicht werden soll. Es ist viel einfacher, eine Lösung als einen Bedarf zu beschreiben, und Benutzerszenarien bieten einen Rahmen für die Beschreibung von Anforderungen, ohne eine bestimmte Lösung vorzuschlagen. Die häufigste Geschäftsanforderung, die ich gehört habe, lautet: "Ich möchte, dass es genau wie Excel ist, aber im Web". Dies war noch nie so, wie sie es tatsächlich brauchten.

Daher würde ich sagen, dass eine gute Geschichte keine spezifischen Details darüber enthalten sollte, wie das System implementiert werden sollte. Es sollte lauten: "Einmal im Monat muss System A mit allen neuen Daten von System B aktualisiert werden. Diese Daten müssen möglicherweise korrigiert werden. Der Client hat in der Vergangenheit ungültige Daten eingegeben und das Problem wochenlang nicht erkannt." Es sollte nicht heißen: "Das System muss mindestens einmal im Monat eine latin1-CSV-Datei akzeptieren und eine NumberFormatException auslösen, wenn Spalte 3 keine Zahl ist." Siehst du den unterschied Das Szenario beschreibt die Notwendigkeit, keine spezifische Lösung. Beim Testen kehren Sie dann zum Szenario zurück, um sicherzustellen, dass die Lösung den Anforderungen entspricht. Die Anforderungen können einige Anforderungen mit einigen Lösungen mischen oder sich sogar ganz auf Lösungen konzentrieren.


Vielen Dank, Glen! Aber sollten Anforderungen oder User Storys nicht system- / lösungsunabhängig sein? Dies ist eine weitere Frage, über die ich beim Erstellen einer User Story / Anforderung nachdenke, die ich jedoch in einigen Fällen nicht erfolgreich erledigen konnte
Punter Vicky,

Sie können damit beginnen, den Benutzer nach dem Geschäftsproblem zu fragen, das das System lösen wird. Wie gehen Sie jetzt mit diesem Problem um? Arbeiten Sie genauso, wenn Sie das System haben? Wer erledigt diese Aufgaben jetzt? Wo machen sie das? Was sind die häufigsten Herausforderungen? Es ist sinnvoll, dass Anforderungen theoretisch ziemlich systemunabhängig sein sollten. Aber die Praxis ist unordentlicher. Ich möchte ein System, das all meine Arbeit für mich so erledigt, dass ich trotzdem dafür bezahlt werde, dass ich nichts tue. Das ist systemunabhängig, aber nutzlos. Was uns wichtig ist, sind die Anforderungen, die das Entwicklungsteam erfüllen kann.
GlenPeterson

3

Ich bin bei einer Google-Suche darauf gestoßen und dachte, ich würde meine Meinung einbringen.

Es gibt wirklich keinen Unterschied zwischen einer Anforderung und einer User Story. Beide geben das gewünschte Ergebnis oder Ziel aus Sicht des Benutzers an.

Der einzige Unterschied besteht darin, wie dieses Ziel oder Ergebnis von einem Geschäftsanalysten erfasst wird. In diesem Fall steht es im Wortlaut.

Beispiel:

Als Teamleiter möchte ich anzeigen, welche Mitarbeiter an Hypothekenfällen arbeiten, damit ich deren Leistung überwachen kann.

Die Lösung soll Teammitglieder anzeigen, die an Hypothekenfällen arbeiten.

Beide oben genannten Begriffe könnten auf die gleiche Weise interpretiert werden, beide weisen jedoch auch eine große Mehrdeutigkeit auf. Der wichtigste Punkt ist hier ein Unterschied im Stil. Ich denke, die Frage, die wir am häufigsten sehen, ist, wie weit wir bei der Definition der Lösung gehen, bevor wir uns aus der Welt der Anforderungen in die Welt des funktionalen Designs begeben. Ist es Sache des Business Analysten, im Hauptanwendungsmenü "angemeldete Benutzer nach Vor- und Nachnamen auflisten" anzugeben, oder sind das zu viele Informationen? Wenn wir im Gespräch mit unseren Stakeholdern sitzen und alle die Lösung kennen und interpretieren können, wie sie aussehen wird, brauchen wir wirklich das pure Spiel " definieren wir ziele und nicht lösungen ". Dies ist, wo ich fühle, dass die Verwirrung wirklich ist.

Anforderungen gehen oft davon aus, dass wir nichts über die Lösung wissen, die gerade gewünscht wird. Ja, das macht alles lösungsunabhängig, aber hilft uns das wirklich im Entwicklungszyklus? Wenn wir etwas frühzeitig genau definieren können, warum dann nicht?

Alles in allem würde ich mir jedoch keine Sorgen um User Stories und Unterschiede bei den Anforderungen machen. Letztendlich möchten Sie genügend Informationen definieren, damit jemand eine Lösung entwickeln kann. Eine User Story, die zu hoch ist, wird einfach zurückgestoßen und aufgefordert, in kleinere User Stories unterteilt zu werden. Das gleiche wie ein "das System soll" -Stil. Anforderungen werden wahrscheinlich als zu mehrdeutig zurückgeworfen, wenn sie nicht genügend detailliert sind.

Am Ende entscheiden Sie sich dafür, was Ihre Entwickler und Stakeholder sehen und daraus arbeiten möchten.


3

Ich denke, es gibt eine Menge Inkonsistenzen, was die Wortanforderungen bedeuten, selbst in klassischen Lehrbüchern. Die gleiche Inkonsistenz gilt für User Stories. Verschiedene Organisationen und Lehrbücher behandeln diese Begriffe unterschiedlich. Das klassische Lehrbuch von Roger Pressman zum Thema Softwaretechnik unterscheidet sich beispielsweise erheblich von Dean Leffingwells Buch zu den Anforderungen an agile Software. Ich respektiere sie beide und sie können beide gültig sein.

Anforderungen können Dinge sein, die wir codieren und die eine außergewöhnliche Spezifität haben, ohne dass die Vorstellungskraft darüber nachdenkt. Andererseits kann argumentiert werden, dass Anforderungen das Geschäftsproblem und nicht die Lösung angeben sollten. Ich denke, dass es nuancierter ist und die Antwort irgendwo in einem Spektrum liegt, das für jedes Unternehmen und jede Branche einzigartig ist (nicht jede Softwareentwicklung findet in der IT statt).

Ich war , dass die Anforderungen gelehrt elicitation führt zu Analyse, dass führt zu entwerfen, das führt zu Architektur , dass führt zu Anforderungen Ausarbeitung oder Spezifikation, dass führt zu etwas , das codiert werden kann. Ich glaube nicht, dass dies mit Agilität verschwindet. Der Zeitpunkt, zu dem diese Dinge geschehen, ändert sich, und das ist der wichtigste Unterschied. Im Wasserfallmodell erfolgt die Ermittlung und Ausarbeitung frühzeitig. In Lean and Scrum finden die Ermittlung und Ausarbeitung in verschiedenen Phasen statt. Je näher Sie der Implementierung in einem Sprint kommen, desto mehr Ausarbeitungen finden statt. Ebenso wie aufstrebendes Design.

In unserer Organisation orientieren wir uns am Leffingwell-Modell von Epics, Features und Stories, nicht als Anforderungen, sondern als Aufschlüsselung und Priorisierung der Arbeit. Anforderungen sind eine andere Sache. Anforderungen werden separat verwaltet, da wir dies für Aufsichtsbehörden tun müssen. Und dennoch entwickeln einige Teams Anforderungen innerhalb von User Stories während der Programm-Inkrement- und Sprint-Planung.


2

Funktionale Anforderungen sind in der Regel eine formale Spezifikation, mit der Sie genau wissen, ob Ihre Software funktioniert oder nicht. User Storys sind in der Regel eine informellere Methode, um die Bedürfnisse einer User Story zu beschreiben. Es wird keine starre Spezifikation angegeben, um zu bestimmen, ob die Software "gültig" oder "ungültig" ist. Während Sie einen Teil davon testen können, ist die eigentliche Vervollständigung einer User Story (wenn Sie sie richtig machen), wenn Ihr Benutzer "Ja, das löst mein Problem!" Sagt. Denken Sie an das agile Manifest:

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

In seinem Buch "User Story Applied" sagt Mike Cohn ausdrücklich, dass einige Dinge nicht auf User Storys passen und dass man nur diese verwenden muss.

In meinem eigenen Team verwenden wir Folgendes:

  • User Story : Ein Geschäftsbedürfnis einer Art von Benutzer. Der Schwerpunkt liegt hier auf der Notwendigkeit und warum braucht er sie? Wie andere gesagt haben, hier das wichtig , nicht zu spezifizieren , wie es gemacht wird , und tief in dem tatsächlichen Bedarf des Benutzers zu gehen (zB: er nicht brauchen , um Ansicht Daten in einer Tabelle, braucht er den genauen Wert der sehen Daten, und er ist mit Tabelle vertraut, um genau das zu tun).
  • Bug : Ein unerwartetes Verhalten der Software, das die normale Nutzung beeinträchtigt. In der Regel wird eine "Wichtigkeit" (unabhängig von der Priorität der Entwicklung) mitgeliefert, mit der bewertet wird, wie stark sich dies auf den Benutzerworkflow auswirkt.
  • Technische Schulden. Etwas, das die Nutzung der Software nicht verhindert, uns , die Entwickler, aber in Zukunft beeinträchtigen wird. Beispiel: Manche Klassen sind schwer zu lesen, der Build ist langsam, manche Codes sind nicht Unit-getestet, die IDE zeigt seltsame Warnungen an ...
  • Verbesserung : Eine Änderung an der Software, die keine neuen Szenarien zulässt, aber eine schönere Erfahrung ermöglicht. Beispiel: Ändern der Schriftarten, Neugestaltung eines Formulars, um es übersichtlicher zu gestalten, Hinzufügen sinnvoller Standardeinstellungen zur Anwendung usw.

Funktionale Anforderungen würden es uns nicht ermöglichen zu erkennen, dass eine von uns implementierte Funktion nicht die Bedürfnisse eines Benutzers erfüllt, obwohl unser Gurkentest bestanden und wir jedes geschriebene Wort implementiert haben. Eine Geschichte ist eine Diskussion und informell. Der Punkt ist, dass die Implementierungs-Leute verstehen, was das Problem ist. Sie sind kein Vertragsinstrument. Wenn Sie "scrum but ... " machen und Ihre Story einfach eine lustige Art ist, die Anforderungen der Software zu schreiben, dann gibt es ja keinen Unterschied.

Der Punkt ist nicht die User Story, der Punkt ist der enorme Paradigmenwechsel in der Art und Weise, wie Sie die zu erledigende Arbeit angehen. Sie machen keinen Vertrag, Sie helfen einigen Benutzern bei der Lösung eines Problems. Wenn Sie Ihre User Stories nicht als Diskussionswerkzeug für einen echten Benutzer sehen, verwenden Sie keine User Stories, sondern eine funky Anforderungssyntax .

Der Rest hier ist meiner Meinung nach: User Story kann niemals einseitig gelingen. Sie brauchen Ihren Kunden, um damit zu arbeiten. Wasser-Scrum-Fall ist zum Scheitern verurteilt, ein seltsames Anforderungs-aber-nicht-Anforderungs-Chaos. Wenn Sie einen festen Gebotsvertrag mit bestimmten Anforderungen haben, verwenden Sie keine Iterationen und User Storys, da dies keinen Sinn macht . Verwenden Sie den Rest des agilen Toolkits: Automatisierter Unit- / Funktionstest, Codeüberprüfung, kontinuierliche Integration, Refactoring usw. Stellen Sie sicher, dass Ihre Software kontinuierlich funktioniert und Sie sie sofort ausliefern können. Stellen Sie es dem Kunden in seiner unvollendeten Form zur Verfügung, damit er so viel Feedback wie möglich geben kann. Wenn du das tust, mein Freund, selbst wenn du nicht "User Story" und "Scrum" gemacht hättest, wärst du agiler als viele so genannte "Agile" -Shops.


2

Ich glaube, dass jeder alles anders implementieren und beschriften wird, je nachdem, welche Erfahrung in der Vergangenheit gemacht wurde und welche Sprache für das Unternehmen spricht, das die Arbeit erledigt, ist es nicht wert darüber zu streiten.

IMO, A User Story folgt jedoch dem Ansatz von Agile: "Ein Kunde ist im Gebäude oder der Kunde ist sofort verfügbar", wobei Dokumentation nicht unbedingt erforderlich ist, da die Details im Kopf des Kunden sind und leicht verfügbar sind, so dass ein formeller SRS dies möglicherweise tun kann nicht erforderlich sein. Nun ist eine "Aufgabe" einer "User Story", wie ein Entwickler die User Storys in verdaulicher Form erstellen wird.

Eine Beispiel-User Story könnte sein:

Als Administrator möchte ich die Daten meiner Kunden in einem Raster anzeigen

und eine "Aufgabe" könnte sein:

  1. Erstellen Sie ein Raster, in dem die anzuzeigenden Daten aufgelistet sind

  2. Aktivieren Sie die Sortierung im Raster, um die ausgewählte Spalte zu sortieren

Jetzt wird jede Aufgabe in ihrem jeweiligen Sprint geschätzt und erledigt.

Aus einer "traditionellen" Perspektive, in der "der Kunde schwer zu fassen ist", müssen wir dies aufschreiben, damit er bestätigen kann, dass wir es richtig verstanden haben, bevor wir mit dem Planen / Codieren beginnen ", lautet die Softwareanforderungsspezifikation Das werden die Ideen sein, die im Kopf des Kunden waren und herausgefordert und dann niedergeschrieben und formalisiert und dann baselisiert und verwaltet werden.

In diesem Fall ist eine "funktionale Anforderung" das Kernstück dieses SRS und ein Teil der größeren Idee. Meiner Meinung nach könnte eine User Story als (Teil der) formalen "Anforderung" angesehen werden, und die Aufgabe dieser User Story ist eine (oder eine der vielen) funktionalen Anforderungen.

In der Beispiel-User Story wäre die formale "Anforderung" ein langwieriges Dokument mit Ablaufdiagrammen und wird im Allgemeinen dokumentationsorientiert sein, im Gegensatz zu dem eher "agilen" Ansatz, der kundenorientiert ist.

Der Unterschied besteht darin, dass die formale "Anforderung" in etwa einem 10-seitigen Dokument entspricht, in dem der Verwaltungsabschnitt der App beschrieben wird, der angibt, dass einige Auflistungen erforderlich sind, einige rollenbasierte Sicherheit usw. und dann einige der Funktionen Anforderungen werden sein "die Auflistungsraster sollen das Sortieren ermöglichen", "die Benutzerinformationen sollen in einem Raster aufgelistet werden", etc ..

und ich glaube in diesen Tagen sind die Begriffe alle gemischt und vermischt .. was überhaupt nicht wichtig ist


2
Die Vorstellung, dass "der Kunde verfügbar ist, damit wir nicht näher darauf eingehen müssen", gehört zu dem, was ich "Bad Agile" nenne. Die wahre Essenz von Agile besteht darin, dass Sie Sprints planen und Funktionen inkrementell bereitstellen, anstatt alles in einem "Big Bang" zu erledigen. Aber um auf lange Sicht wirklich agil zu sein, müssen Tests durchgeführt werden, und um Tests zu schreiben oder durchzuführen, müssen Spezifikationen vorliegen, die in Agile-land in Form von Akzeptanzkriterien vorliegen, die den Anforderungen entsprechen, die nur vom Sprint organisiert werden eher als System oder Projekt. Die Idee, dass "Anforderungen" riesige, staubige alte Dokumente sind, ist nur FUD.
Aaronaught

@Aaronaught Ich stimme zu. Es muss einen Punkt geben, an dem der Anwendungsbereich begrenzt ist, insbesondere in Situationen, in denen ein festes Durchführungsbudget vorhanden ist. Wenn das Budget festgelegt ist, das Produktdesign jedoch nicht bekannt ist und das Projekt schnell beginnen muss, funktioniert Agile für mich (und wenn es sich um eine fortlaufende Softwareproduktentwicklung handelt, die in Sprints durchgeführt wird, dh kein echtes Projekt), aber der Umfang der Verwendung muss eingeschränkt werden die Akzeptanzkriterien, die (mit einigen semantischen Änderungen) in die Anforderungen selbst
eingearbeitet würden,

@Aaronaught - Sie haben absolut Recht. Agile basiert jedoch auf den XP-Methoden und der von Ihnen angegebene Prozess ist eine hybride Anlehnung an das Beste aus beiden Welten. Einerseits haben Sie "Dokumentations-Licht" und andererseits du hast "dokumentationslastig". Das Finden des Gleichgewichts wird von der Firma festgelegt, die ihren Prozess definiert.
hanzolo

@ssbrewster - da stimme ich dir auch zu. In der reinen Form jeder Methodik, Wasserfall und Agilität, erfordert eine Dokumentation und Validierung der schriftlichen Anforderungen, die andere erfordert nur sehr wenig Dokumentation und Validierung der Entwicklungsbemühungen.
Hanzolo

1
@ssbrewster Es geht nicht nur darum, den Umfang einzuschränken, sondern zu sagen, wann eine Geschichte tatsächlich fertig ist. Wenn Sie diese Entscheidung nicht treffen können, ohne ein Handwinken vom Unternehmen zu erhalten, haben Sie keine Chance, Produkte mit gleichbleibender Qualität herzustellen oder Dinge wie die Geschwindigkeit genau zu messen. Wir bevorzugen Akzeptanzkriterien in Akzeptanz dokumentiert werden Tests - aber sie sind immer noch niedergeschrieben .
Aaronaught
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.