Metodyki rozwoju oprogramowania szybko ewoluowały w ciągu ostatnich dekad, przechodząc od ciężkich, wstępnych dokumentów w modelu wodospadowym do lekkich, iteracyjnych praktyk agile. Przez długi czas tradycyjny „Use Case” — podstawowy element inżynierii oprogramowania obiektowego — był traktowany jako niezgodny z nowoczesnymiframeworkami agile takimi jak Scrum i Kanban. Często był krytykowany za nadmierną skupienie się na dokumentacji i wolność działania.
WprowadźUse-Case 2.0. Wprowadzony przez Ivara Jacobsona, Iana Spence’a i Briana Kerr, ten nowoczesny framework ponownie definiuje klasyczny use case jako lekki, skalowalny i uniwersalny. Został zaprojektowany w celu mostu między korzyściami strukturalnymi use case’ów a elastycznością rozwoju agile.
Use-Case 2.0 to nowoczesna ewolucja podejścia use case, stworzona specjalnie w celu rozwiązania ograniczeń tradycyjnego zbierania wymagań. W przeciwieństwie do swojego poprzednika, który często wymagał szczegółów wyczerpujących przed rozpoczęciem kodowania, Use-Case 2.0 skupia się na istotnych elementach, iteracyjnym dostarczaniu i pionowym dzieleniu.
Główną innowacją tego frameworku jest możliwość rozkładania use case’ów na mniejsze, zarządzalne fragmenty znane jakoSzybkie Use-Case. Pozwala zespołom zachować „duży obraz” architektury systemu, jednocześnie dostarczając wartość w małych, iteracyjnych fragmentach zgodnych z Scrum, SAFe i Disciplined Agile.
Use-Case 2.0 opiera się na sześciu zasadach kierujących, które zapewniają, że proces pozostaje zrównoważony i skupiony na wartości:
Aby zrozumieć, jak Use-Case 2.0 pasuje do Agile, należy zrozumieć jego artefakty. Framework upraszcza obciążającą dokumentację przeszłości na trzy główne komponenty.
Przypadek użycia nadal opisuje interakcję skierowaną na cel między aktorem (użytkownikiem) a systemem. Jednak w wersji 2.0 nie jest w pełni szczegółowo opisany od początku. Zaczyna się od nazwy, krótkiego opisu i głównego scenariusza sukcesu. Szczegóły dotyczące alternatywnych ścieżek i wyjątków są dodawane „w odpowiednim momencie”, gdy zostają wybrane do realizacji.
Przecięcie przypadku użyciaprzypadku użyciajest najważniejszą innowacją w tym frameworku. Przecięcie to pionowy cięcie przez przypadek użycia, który tworzy kompletny przepływ wartości. Zawiera część narracji (historii), odpowiednie przypadki testowe, oraz kod wymagany do jego zaimplementowania.
Przecinanie pozwala podzielić jeden przypadek użycia (np. „Zrealizuj zamówienie”) na wiele sprintów:
Każde przecięcie działa jak element backlogu — jest szacowalne, testowalne i może być dostarczone w ramach jednej iteracji.
Podczas gdy przecięcia są realizowane w codziennej pracy, model przypadku użyciapozostaje mapą. Jest to zbiór wszystkich przypadków użycia, zapewniający kontekst i przegląd architektoniczny, którego często brakuje indywidualnym historiom użytkownika. Rozwiązuje powszechny problem agile, gdy zespół realizuje setki historii, ale traci kontrolę nad ogólnym zachowaniem systemu.
Wiele zespołów ma trudności z wyborem między historiami użytkownika a przypadkami użycia. Use-Case 2.0 argumentuje, że nie musisz wybierać; oferuje strukturę przypadków użycia z agilnością historii.
| Aspekt | Klasyczne przypadki użycia (przed 2.0) | Historie użytkownika | Use-Case 2.0 |
|---|---|---|---|
| Zasoby przed rozpoczęciem | Wysoki (szczegółowe specyfikacje) | Bardzo niski | Niski → stopniowy |
| Widok ogólny | Tak | Często utracony | Tak (poprzez model Use-Case) |
| Zdolność iteracyjna | Słabo | Wyjątkowo dobre | Wyjątkowo dobre (poprzez fragmenty) |
| Śladwalność | Silny | Słaby | Silny (przechodzi do testów) |
| Skupienie na testach | Ręczny / etap późny | Kryteria akceptacji | Zintegrowane na każdy fragment (TDD) |
| Najlepsze środowisko | Kaskadowy / strukturalny | Proste projekty agilne | Złożone / agilne projekty korporacyjne |
Wdrożenie tej metodyki obejmuje cykliczny przepływ pracy, który idealnie wpasowuje się w standardowe sprinty agilne:
Use-Case 2.0 jest szczególnie skuteczny w systemach korporacyjnych, branżach regulowanych lub złożonych dziedzinach, gdzie proste historie użytkownika są niewystarczające.
Zapewniaskalowalnośćpoprzez umożliwienie zespołom rozpoczęcia od lekkiego podejścia i dodawania formalizmu tylko tam, gdzie jest to konieczne. Zapewniaskupienie na wartościpoprzez zmuszanie zespołów do myślenia o pełnych ścieżkach użytkownika zamiast izolowanych zadań technicznych. Na końcu rozwiązuje problemdłużu dokumentacji problemu; ponieważ model przypadków użycia jest aktualizowany iteracyjnie, dokumentacja rozwija się wraz z kodem, działając jako „żywy” zbiór wymagań zamiast zastarzałego archiwum.