image from Przypadki użycia w pracy Tech Leada

Przypadki użycia w pracy Tech Leada

Witam ponownie w cyklu #TechLead! W poprzednim artykule omówiliśmy podstawy Event Storming - Big Picture. Dziś kontynuujemy naszą podróż przez świat przypadków użycia, skupiając się na praktycznym zastosowaniu i przykładach.

Przypadki użycia – krótka powtórka

Przypadki użycia są niezwykle przydatnym narzędziem w analizie i projektowaniu systemów. Pozwalają nam zebrać w jednym miejscu informacje biznesowo-techniczne potrzebne do realizacji konkretnej funkcjonalności.

Przypadki użycia opisują listę działań do wykonania w celu osiągnięcia zamierzonego rezultatu, dzieląc informacje według kategorii takich jak cele, kroki, wyjątki i błędy. Można powiedzieć, że służą za punkt styku pomiędzy aspektami biznesowymi, a technicznymi. Zarysowują technologiczne aspekty zagadnienia na tyle, by można było je łatwo przedstawić, oszczędzają jednak zbędnych na tym etapie szczegółów.

Przypadki użycia w praktycznym scenariuszu

Aby lepiej zrozumieć, jak wygląda praktyczne zastosowanie narzędzia, przeanalizujmy dosyć powszechny w branży przypadek. Wyobraźmy sobie, że pracujemy nad systemem e-commerce, który musi zsynchronizować produkty z zewnętrznym systemem PIM co dwie godziny.

Nasz model wygląda następująco:

Tytuł: Synchronizowanie produktów z systemu PIM

Wyzwalacz: Minęły 2 godziny od poprzedniego uruchomienia

Główny scenariusz:

  1. Odpytano system klienta o produkty dodane w ostatnich 2 godzinach
  2. System zewnętrzny zwrócił nowe produkty
  3. Sprawdzono duplikaty zwrócone przez PIM
  4. Produkty zapisano w systemie e-commerce
  5. Uruchomiono proces publikacji na stronie

Wyjątki:

1a. System zewnętrzny zwraca błąd 429.

  • Zakolejkowano odpytanie na minutę później.

1b. System zewnętrzny zwraca błąd 500.

  • Zapisano informację o błędzie komunikacji do loga zdarzeń.
  • W przypadku braku możliwości synchronizacji przez 1 godzinę powiadomiono administratorów.

Atrybuty jakościowe:

  • Skalowalność : system poradzi sobie z obsługą do 200 produktów podczas jednej sesji synchronizacji.
  • Wydajność : synchronizacja zakończy się poniżej 10 sekund.

Wygląda prosto? Oczywiście, ale jednocześnie upraszcza problem i pokazuje najważniejsze aspekty całego przypadku.

Uproszczone przypadki użycia według Martina Fowlera

O ile przypadki użycia to potężne narzędzie, nie jest ono niestety pozbawione wad. Wśród praktyków panowała niegdyś tendencja do rozbudowywania scenariuszy w nieskończoność. Często prowadziło to do tego, że przypadki użycia były nieczytelne. Z inicjatywą znalezienia rozwiązania po raz pierwszy wyszedł Martin Fowler w swojej, opublikowanej po raz pierwszy w 1997 roku, książce “UML Distilled”.

W odróżnieniu od tradycyjnego podejścia, przypadki użycia według Fowlera skupiają się na funkcjonalnościach systemu, a nie na aktorach. Diagramy przypadków użycia według Fowlera pokazują typową interakcję między użytkownikiem a systemem komputerowym, która przechwytuje pewną widoczną dla użytkownika funkcję i osiąga dyskretny cel użytkownika.

Podejście Given When Then

Jeszcze jednym podejściem do tego samego tematu jest Given When Then, bardzo konkretna i sformalizowana perspektywa, która wyśmienicie się sprawdzi w kejsach, gdzie użytkownik końcowy nie jest jedynym odbiorcą scenariusza. W tej wersji, przypadki użycia są opisane z użyciem trzech sekcji:

  • Given (Dane wejściowe)
  • When (Akcje użytkownika)
  • Then (Oczekiwane rezultaty)

Dobrze pokazał to Jakub Nabrdalik w swojej prezentacji o interesującym tytule Things that work for me so well I cannot believe you are not using it:

Taka struktura niesie ze sobą liczne wiele korzyści, szczególnie ułatwiając automatyzację testów. Dzięki precyzyjnemu opisaniu danych wejściowych, działań użytkownika oraz oczekiwanych rezultatów, przypadek użycia bez trudu można przekształcić bezpośrednio w scenariusz testowy. Given When Then pomaga też w nawiązaniu lepszego porozumienia między zespołem projektowym, a testerami i programistami. Świetnie sprawdzi się więc w systemach, które oprócz interakcji użytkowników, uwzględniają także zarządzanie testami.

Wykorzystanie przypadków użycia

Przypadki użycia stanowią cenną praktykę, umożliwiającą szybkie podsumowanie zakresu prac nad konkretnym zadaniem. Ich struktura zapewnia spójność i czytelność w analizie poszczególnych funkcjonalności.

Przykładowo, w technice Upstream Kanbana:

Programista może wziąć tu na siebie zadanie i przeprowadzić analizę jego realizacji. Następnie tworzy opis scenariusza działania w postaci przypadków użycia. Dzięki temu, podczas spotkania mającego na celu dalsze doprecyzowanie, zespół ma już wstępnie przemyślaną funkcjonalność. W efekcie komunikacja jest bardziej efektywna i produktywna.

Polecam

Przypadki użycia to prawdziwie wielofunkcyjne narzędzie – sprawdzą się nie tylko jako podstawa dokumentacji, ale także, odpowiednio przygotowane, pomogą w skutecznym planowaniu, analizie i realizacji zadań.

Jeśli interesuje Ciebie ten temat to zachęcam do zapoznania się z dodatkowymi materiałami:

comments powered by Disqus