Jeśli możesz wyprowadzić scenariusze z opisu, gotowe.
Anty-wzorzec, który często widzę w BDD, to ludzie odczuwający potrzebę omówienia i spisania każdego szczegółowego scenariusza.
Niektóre scenariusze są tak dobrze zrozumiane, że wystarczy wyciągnąć je z krótkiego opisu. Na przykład, jeśli powiem „Chciałbym w tym tygodniu skorzystać z funkcji logowania”, wiesz, jak to powinno wyglądać. Wiesz, że istnieją scenariusze dla właściwego hasła, niewłaściwego hasła, niewłaściwej nazwy użytkownika. Tak naprawdę nie musimy ich omawiać ani szczegółowo ich ujmować.
Podobnie mogę powiedzieć: „Oto formularz rejestracji użytkownika. Musimy mieć możliwość tworzenia nowych użytkowników, umożliwienia im edycji swoich danych i samodzielnego usuwania, z tym wyjątkiem, że usunięcie nie powinno faktycznie zostać usunięte, powinno po prostu oznaczyć je jako usunięte aby mogli odzyskać swoje konta, jeśli chcą ”.
I możesz zapytać: „Czy odzyskiwanie konta jest częścią tej funkcji?”
„Mogą to być dwie funkcje, jeśli chcesz”.
„Okej, więc mamy scenariusze tworzenia, czytania, aktualizacji, usuwania; to powinno być dość łatwe. Porozmawiajmy o odzyskiwaniu konta; to brzmi bardziej interesująco”.
Ogólnie rzecz biorąc, jeśli opis zachowania jest wystarczający, aby zespół deweloperów wyprowadził scenariusze, nie musisz ich omawiać. Możesz to zrobić, jeśli istnieją jakiekolwiek wątpliwości, ale możesz po prostu uchwycić, które scenariusze musisz zapamiętać, jeśli w ogóle je uchwycisz.
Jeśli nigdy wcześniej tego nie robiłeś lub nie masz pewności, omów scenariusze.
Skoncentruj się na obszarach, które są niezwykłe, szczególnie jeśli istnieją funkcje, których nigdy wcześniej nie robiłeś. To fantastyczne miejsca do prowadzenia rozmów i zapisywania wszelkich zaskakujących przykładów. Zwykle mam dwa pytania, które zadaję na podstawie szablonu BDD:
Biorąc pod uwagę kontekst
Kiedy zdarzenie ma miejsce,
wtedy powinien nastąpić wynik.
- Czy jest jakiś inny kontekst, który dla tego samego wydarzenia daje inny wynik?
- Czy jest jakiś inny ważny wynik?
Jeśli wszyscy przy stole wyglądają na znudzonych, funkcja, o której mówisz, jest prawdopodobnie dobrze zrozumiana. Często wystarczy powiedzieć: „Powinno działać jak X , ale zamiast tego z Y ”. Tak nazywa Dan North wzór Ginger Cake ; to jak przepis na ciasto czekoladowe, ale z imbirem zamiast czekolady.
Nawet jeśli interesariusz biznesowy jest w stanie sam opracować scenariusze, to naprawdę ważne jest, aby zespół programistów mógł z nim rozmawiać, podnosić i internalizować jego język. Język ten zostaje następnie wprowadzony do kodu, umożliwiając im lepsze rozmowy w przyszłości i pomagając początkującym w projekcie zrozumieć, co się dzieje. Jeśli deweloperzy nie znają języka, nie będą go używać .
Jeśli interesariusz biznesowy lub analityk naprawdę nie chce tracić czasu na rejestrowanie rzeczy podczas sesji, wolę, aby programiści spisali scenariusze we współpracy z testerami, a następnie poprosili go o przejrzenie. Jest to bardziej prawdopodobne, aby odkryć nieporozumienia niż na odwrót.
Czasami BDD nie działa.
Inną możliwością jest znalezienie scenariusza, którego interesariusz biznesowy nie jest pewien. „Och, nie myślałem o tym! Nie jestem pewien.” Zamiast próbować nakłaniać firmę do karania i karać ją z całą pewnością, warto w tym momencie porzucić BDD i spróbować czegoś prostego, aby uzyskać opinie i dać przedsiębiorstwu coś, co może powtórzyć. Łatwo się zmieniaj i pisz scenariusze, gdy lepiej zrozumiesz, co się dzieje.
Dobrze wykonane BDD może naprawdę pomóc w wykryciu miejsc niepewności. Ponieważ każdy projekt, który warto wykonać, ma jakiś aspekt, który jest nowy i nigdy wcześniej nie był wykonywany, jest gdzieś niepewność. Jeśli skupisz się na wykorzystaniu scenariuszy do celowego odkrycia niewiedzy , nauczysz się szybciej, a nauka zwykle zajmuje dużą część czasu poświęcanego na projekt.
Ponadto odkryłem, że im więcej zespołów programistów współpracuje w ten sposób, tym bardziej biznes jest przygotowany na zaufanie do nich z niepewnością i tym więcej innowacji zaczyna się pojawiać. Innowacyjne firmy ze swojej natury mają dużą niepewność w swoich projektach.
Jakiś czas temu napisałem post na blogu w Cynefin , który naprawdę pomaga mi zrozumieć, gdzie konwersacje będą najbardziej skuteczne. Jeśli ją przeczytasz i zrozumiesz cztery domeny, oto zasady, których używam:
Proste i skomplikowane rzeczy (znane) są często dobrze zrozumiałe i nie trzeba szczegółowo omawiać scenariuszy.
Bardzo złożone rzeczy (nieznane) w ogóle nie są rozumiane. Możesz to odkryć, rozmawiając o scenariuszach. Brak pewności oznacza, że BDD nie będzie tutaj działać, więc powtarzaj coś, co łatwo zmienić, i zamiast tego uzyskaj szybką informację zwrotną. Każda praktyka, która zachowuje twoje opcje, jak testowanie AB, jest również świetna w tej przestrzeni.
BDD działa doskonale w przestrzeni pomiędzy (poznawalnej) jako mechanizm przekazywania wiedzy i odkrywania dwóch pozostałych przestrzeni. To nie jest młotek i nie wszystko jest gwoździem. W rzeczywistości, jeśli możesz skoncentrować czas na rozmowach na czymkolwiek, to nie chodzi o przykłady, które możesz znaleźć; chodzi o znalezienie przykładów, których nie możesz .