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?
requirements
user-story
requirements-management
Punter Vicky
quelle
quelle
Antworten:
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.
quelle
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.
quelle
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:
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:
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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:
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:
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.
quelle
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:
und eine "Aufgabe" könnte sein:
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
quelle