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.