Wenn Sie die Szenarien aus der Beschreibung ableiten können, sind Sie fertig.
Ein Anti-Muster, das ich in BDD oft sehe, sind Menschen, die das Bedürfnis verspüren, jedes Szenario im Detail durchzusprechen und aufzuschreiben .
Einige Szenarien sind so gut verstanden, dass es ausreicht, sie aus einer kurzen Beschreibung abzuleiten. Wenn ich zum Beispiel sage: "Ich möchte diese Woche die Anmeldefunktion", wissen Sie, wie das aussehen sollte. Sie wissen, dass es Szenarien für das richtige Passwort, das falsche Passwort, den falschen Benutzernamen gibt. Wir müssen diese nicht wirklich durchsprechen oder detailliert erfassen.
In ähnlicher Weise könnte ich sagen: "Hier ist das Formular für die Benutzerregistrierung. Wir müssen in der Lage sein, neue Benutzer zu erstellen, sie ihre Details bearbeiten zu lassen und sich selbst zu löschen, außer dass das Löschen nicht wirklich gelöscht werden sollte, sondern sie nur als gelöscht markieren sollte so können sie ihre Konten wiederherstellen, wenn sie wollen. "
Und Sie können fragen: "Ist die Kontowiederherstellung Teil dieser Funktion?"
"Sie können zwei Funktionen sein, wenn Sie wollen."
"Okay, wir haben also Szenarien zum Erstellen, Lesen, Aktualisieren und Löschen. Das sollte einfach genug sein. Lassen Sie uns über die Wiederherstellung von Konten sprechen. Das klingt interessanter."
Wenn die Beschreibung des Verhaltens für das Entwicklerteam ausreicht, um die Szenarien abzuleiten, müssen Sie sie im Allgemeinen nicht durchsprechen. Sie können dies tun, wenn Zweifel bestehen, aber Sie möchten möglicherweise nur erfassen, an welche Szenarien Sie sich erinnern müssen, wenn Sie überhaupt welche erfassen.
Wenn Sie es noch nie getan haben oder sich nicht sicher sind, sprechen Sie die Szenarien durch.
Konzentrieren Sie sich auf die Bereiche, die ungewöhnlich sind, insbesondere wenn es Funktionen gibt, die Sie noch nie zuvor ausgeführt haben. Dies sind fantastische Orte, um Gespräche zu führen und überraschende Beispiele aufzuschreiben. Normalerweise stelle ich zwei Fragen, basierend auf der BDD-Vorlage:
Gegebener Kontext
Wenn ein Ereignis
eintritt, sollte ein Ergebnis eintreten.
- Gibt es einen anderen Kontext, der für dasselbe Ereignis zu einem anderen Ergebnis führt?
- Gibt es ein anderes Ergebnis, das ebenfalls wichtig ist?
Wenn alle am Tisch gelangweilt aussehen, ist die Funktion, über die Sie sprechen, wahrscheinlich gut verstanden. Es ist oft genug zu sagen: "Es sollte wie X funktionieren , aber stattdessen mit Y. " Dies nennt Dan North das Ingwer-Kuchen- Muster. Es ist wie das Rezept für Schokoladenkuchen, aber mit Ingwer anstelle von Schokolade.
Selbst wenn der Geschäftsinteressent in der Lage ist, die Szenarien selbst abzuleiten, ist es für das Entwicklerteam sehr wichtig, mit ihm sprechen, seine Sprache lernen und verinnerlichen zu können. Diese Sprache wird dann in den Code übernommen, sodass sie in Zukunft bessere Gespräche führen und Neulingen im Projekt helfen können, zu verstehen, was vor sich geht. Wenn die Entwickler die Sprache nicht sprechen können , werden sie sie nicht verwenden .
Wenn der Geschäftsinteressent oder Analyst wirklich nicht die Zeit damit verbringen möchte, Dinge in der Sitzung zu erfassen, würden die Entwickler die Szenarien lieber in Zusammenarbeit mit den Testern aufschreiben und ihn dann bitten, sie zu überprüfen. Dies führt eher zu Missverständnissen als umgekehrt.
Manchmal funktioniert BDD nicht.
Eine andere Möglichkeit besteht darin, dass Sie ein Szenario finden, über das der Geschäftsinteressent unsicher ist. "Oh, daran hatte ich nicht gedacht! Ich bin mir nicht sicher." Anstatt zu versuchen, das Geschäft festzunageln und das Geschäft mit Sicherheit zu bestrafen, kann es sich lohnen, BDD an dieser Stelle aufzugeben und etwas Einfaches auszuprobieren, um Feedback zu erhalten und dem Geschäft etwas zu geben, über das sie iterieren können. Halten Sie es einfach, Änderungen vorzunehmen, und schreiben Sie die Szenarien, sobald Sie besser verstanden haben, was vor sich geht.
Gut gemachtes BDD kann wirklich helfen, Orte der Unsicherheit aufzudecken. Da jedes Projekt, das es wert ist, durchgeführt zu werden, einen Aspekt hat, der neu ist und noch nie zuvor durchgeführt wurde, besteht irgendwo eine gewisse Unsicherheit. Wenn Sie sich darauf konzentrieren, die Szenarien zu verwenden, um Unwissenheit bewusst zu entdecken , lernen Sie schneller, und das Lernen macht normalerweise einen großen Teil der für ein Projekt aufgewendeten Zeit aus.
Außerdem habe ich festgestellt, dass je mehr Entwicklerteams auf diese Weise zusammenarbeiten, desto mehr das Unternehmen bereit ist, ihnen mit Unsicherheit zu vertrauen, und desto mehr Innovationen beginnen. Innovative Unternehmen haben naturgemäß viel Unsicherheit in ihren Projekten.
Ich habe vor einiger Zeit einen Blog-Beitrag über Cynefin geschrieben , der mir wirklich hilft zu verstehen, wo die Gespräche am effektivsten sind. Wenn Sie es lesen und die vier Domänen verstehen, sind hier die Regeln, die ich verwende:
Einfache und komplizierte Dinge (bekannt) sind oft gut verstanden und Sie müssen die Szenarien nicht im Detail durchgehen.
Hochkomplexes Zeug (unbekannt) wird überhaupt nicht verstanden. Sie können dies feststellen, indem Sie die Szenarien durchgehen. Der Mangel an Sicherheit bedeutet, dass BDD hier nicht funktioniert. Wiederholen Sie daher etwas, das leicht zu ändern ist, und erhalten Sie stattdessen schnelles Feedback. Jede Praxis, die Ihre Optionen beibehält, wie z. B. AB-Tests, ist auch in diesem Bereich großartig.
BDD arbeitet hervorragend im Zwischenraum (erkennbar) als Mechanismus zur Weitergabe von Wissen und zur Aufdeckung der beiden anderen Räume. Es ist kein Hammer und nicht alles ist ein Nagel. Wenn Sie die Zeit, die Sie mit Gesprächen verbringen, auf etwas konzentrieren können, geht es nicht um die Beispiele, die Sie finden können. Es geht darum , Beispiele zu finden, die Sie nicht finden können .