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. Jest 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 jakoSzybki Use-Case. Pozwala zespołom utrzymać „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, trzeba 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 przejść i wyjątków są dodawane „w odpowiednim momencie”, gdy zostają wybrane do realizacji.
Szybki podział przypadku użyciaUse-Case Slicejest najważniejszą innowacją w tym frameworku. Szybki podział to pionowy przekrój przez przypadek użycia, który tworzy kompletny przepływ wartości. Obejmuje część narracji (historii), odpowiednie przypadki testowe, oraz kod wymagany do jego zaimplementowania.
Podział pozwala jednemu przypadkowi użycia (np. „Zrealizuj zamówienie”) podzielić się na wiele sprintów:
Każdy szybki podział działa jak element listy backlogu — jest szacowalny, testowalny i możliwy do dostarczenia w jednym iteracji.
Podczas gdy szybkie podziały 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 |
|---|---|---|---|
| Zespołowe zaangażowanie | Wysokie (szczegółowe specyfikacje) | Bardzo niskie | Niskie → stopniowe |
| Widok ogólny | Tak | Często utracone | Tak (poprzez model Use-Case) |
| Zdolność iteracyjna | Słabe | Wyjątkowe | Wyjątkowe (poprzez fragmenty) |
| Śledzenie | Silne | Słabe | Silne (przechodzi do testów) |
| Skupienie na testach | Ręczne / etap późny | Kryteria akceptacji | Zintegrowane na każdy fragment (TDD) |
| Najlepsze środowisko | Kaskadowy / strukturalny | Proste projekty agilne | Złożone / agilne w organizacji |
Wdrożenie tej metodyki obejmuje cykliczny przepływ pracy, który idealnie pasuje do standardowych sprintów agilnych:
Use-Case 2.0 jest szczególnie skuteczny w systemach przedsiębiorstw, branżach regulowanych lub złożonych dziedzinach, gdzie proste historie użytkownika są niewystarczające.
Zapewnia skalowalnośćpoprzez umożliwienie zespołom rozpoczęcia od lekkiego podejścia i dodawania formalizmu tylko tam, gdzie jest to konieczne. Zapewnia skupienie na wartościpoprzez zmuszanie zespołów do myślenia o pełnych przejściach użytkownika zamiast o izolowanych zadaniach technicznych. Na końcu rozwiązuje problem dłużu dokumentacjiproblem; 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.