Związek między historią użytkownika, fabułą i epiką?

111

Jako ktoś, kto wciąż jest nowy w zwinności, nie jestem pewien, czy całkowicie rozumiem związek lub różnicę między historią użytkownika, funkcją i epicką historią.

Zgodnie z tym pytaniem funkcja jest zbiorem opowiadań. Jedna z odpowiedzi sugeruje, że funkcja jest naprawdę epicka. Czy funkcje i epopeje są uważane za to samo, co jest w zasadzie zbiorem powiązanych historii użytkowników?

Nasz kierownik projektu podkreśla, że ​​istnieje hierarchiczna struktura:

Epicka -> Funkcje -> Historie użytkowników

I w zasadzie wszystkie historie użytkowników muszą należeć do tej struktury. Dlatego wszystkie historie użytkowników muszą być objęte funkcją parasolową, a wszystkie funkcje - epicką.

Dla mnie to brzmi dziwnie. Czy ktoś może wyjaśnić, w jaki sposób powiązane są historie, funkcje i epopeje użytkowników? A może jest artykuł, który wyraźnie przedstawia różnice?

nivlam
źródło
15
Jedyną prawdziwą odpowiedzią na to pytanie jest „nie ma ostatecznej odpowiedzi”. Interpretacja każdej osoby / firmy jest nieco inna. Dla mnie funkcje i historie użytkowników są takie same, inni ludzie mogą dokonać rozróżnienia (co wydaje mi się głupie), ale żadne z nich nie jest dobre ani złe. Nie sądzę, żeby ktokolwiek na ziemi mógł definitywnie powiedzieć: „to jest epopeja, to jest historia, to jest funkcja” ... chociaż wielu spróbuje!
MattDavey,
Nie zgadzam się. Funkcja NIE jest historią użytkownika, podczas gdy epos jest historią użytkownika. Przykładem takiej funkcji jest „płatność przez paypal”. Chociaż przykładowa historia użytkownika jest taka, że ​​jako klient iPhone'a chcę kupić młotek i zapłacić za pomocą mojego konta PayPal, aby nie musiałem podawać danych karty kredytowej. Co więcej, uważam tę historię za Epicką, ponieważ jej wdrożenie zajmie więcej niż jeden dzień.
Joey Guerra
3
@JoeyGuerra Sposób, w jaki używamy tych terminów, właśnie napisałeś 1 historię użytkownika, która da 1 funkcję. W ogóle nie używamy „epickiego”, ale naszym nadrzędnym słowem jest „projekt” - który, w ramach twojego przykładu, wymagałby koszyka zakupów i wszystkich form płatności (i ewentualnie bardziej powiązanych ze sobą elementów).
Izkata

Odpowiedzi:

93

W rzeczywistości są to bardzo ogólne terminy. Istnieje wiele sposobów ich interpretacji, różniących się literaturą i tym, jak ludzie ją widzą. Weź wszystko, co mówię, z ogromnym ziarnem soli.

Zwykle Epopeja zawiera bardzo globalną i niezbyt dobrze zdefiniowaną funkcjonalność twojego oprogramowania. Jest bardzo szeroki. Zwykle zostanie podzielony na mniejszą historię użytkownika lub funkcję, gdy spróbujesz nadać jej sens i dopasować ją do zwinnej iteracji. Przykład:

Epic
- Pozwól klientowi zarządzać swoim własnym kontem przez Internet

Funkcja i historia użytkownika są bardziej szczegółowymi funkcjami, które można łatwo przetestować za pomocą testów akceptacyjnych. Często zaleca się, aby były wystarczająco ziarniste, aby zmieściły się w jednej iteracji.

Funkcje zwykle opisują działanie oprogramowania:

Funkcja
- Edycja informacji o kliencie za pośrednictwem portalu internetowego

Historie użytkowników mają tendencję do wyrażania tego, co użytkownik chce zrobić:

Historia użytkownika
Jako pracownik banku
chcę mieć możliwość modyfikowania informacji o klientach,
aby móc je aktualizować.

Nie sądzę, aby istniała hierarchia między nimi, ale możesz ją mieć, jeśli chcesz lub jeśli pasuje do twojego stylu pracy. Historia użytkownika może być konkretnym uzasadnieniem funkcji lub konkretnym sposobem jej wykonania. Lub może być na odwrót. Funkcja może być sposobem na zrealizowanie historii użytkownika. Lub mogą oznaczać to samo. Możesz użyć obu: Historie użytkowników, aby zdefiniować wartość biznesową i funkcję opisującą ograniczenia oprogramowania.

Historia użytkownika : jako klient chcę płacić najpopularniejszymi kartami kredytowymi.
Funkcje obsługują rządowy interfejs API GOV-TAX-02 XML.

Istnieje również kwestia scenariusza, który zazwyczaj jest sposobem na wykonanie historii Feature / User. Zazwyczaj mapują one czysto do konkretnego testu akceptacyjnego. Na przykład

Scenariusz : wypłacanie pieniędzy
Biorąc pod uwagę, że mam 2000 $ na moim rachunku bankowym
Kiedy wypłacam 100 $
Następnie otrzymuję 100 $ w gotówce,
a moje saldo wynosi 1900 $

W ten sposób definiujemy te warunki, w których pracuję . Definicje te są dalekie od definicji matematycznej lub znormalizowanego terminu. To jak różnica między politykiem prawicy a politykiem lewicy. To zależy od tego, gdzie mieszkasz. W Kanadzie to, co uważa się za prawe skrzydło, można uznać za lewe w Stanach Zjednoczonych. To bardzo zmienne.

Poważnie, nie martwiłbym się tym zbytnio. Ważne jest, aby wszyscy członkowie zespołu uzgodnili definicję, abyście mogli się zrozumieć. Niektóre metody, takie jak scrum, mają tendencję do definiowania ich bardziej formalnie, ale wybierz, która praca jest dla ciebie, i zostaw resztę. W końcu, czy zwinne są osoby i interakcje dotyczące procesów i narzędzi oraz oprogramowania roboczego w stosunku do obszernej dokumentacji ?

Laurent Bourgault-Roy
źródło
17
+1 za „Ważne jest, aby wszyscy w zespole zgodzili się na definicję”
MattDavey
Gdzie przypadek użycia pasowałby do tej hierarchii?
Renegrin
Zależy to od sposobu zdefiniowania przypadku użycia w zespole. Załóżmy, że jest to przypadek użycia stylu RUP. W takim przypadku przypadek użycia przyjąłby rolę zarówno scenariusza, jak i fabuły, mieszając oba, a zatem w RUP wymagania dotyczące oprogramowania są określone tylko w przypadku użycia. Zadaj sobie pytanie: jaka powinna być historia ? A jaki powinien być przypadek użycia ? Potrzebujesz obu? dlaczego? Osobiście wykorzystałbym historię lub przypadek użycia, ale nie oba, ponieważ mają one ten sam cel. Mimo to zawsze zależy. Jeśli masz rolę dla każdego, użyj każdego z nich; jeśli nie, użyj tego, który znasz :).
Laurent Bourgault-Roy
1
Jedynym dodatkiem, nad którym pracowałem, jest to, że prawdopodobnie nigdy nie ukończysz wszystkiego, co zidentyfikujesz w Eposie. Niektóre historie użytkowników pod nim po prostu nie znajdą się na szczycie zaległości.
itj
2
To tylko opis problemu, który należy rozwiązać na różnych wysokościach. Epopeja ma sens dla wyższej kadry zarządzającej. Funkcje są tym, co marketerzy chcą, aby zapewnić epos. Ten widok działa dla menedżerów średniego szczebla. Historie użytkowników dzielą pracę dla ludzi, którzy muszą stworzyć rozwiązanie, dla programistów i zarządzania niskiego poziomu.
rfportilla
36

Epicka : bardzo duża historia użytkownika, która ostatecznie zostaje podzielona na mniejsze historie.

Historia użytkownika: definicja wymagania na bardzo wysokim poziomie, zawierająca tylko wystarczającą ilość informacji, aby programiści mogli oszacować wysiłek włożony w jej wdrożenie.

http://www.telerik.com/agile-project-management-tools/agile-resources/vocabulary.aspx

Cecha : wyróżniająca cecha lub zdolność aplikacji lub biblioteki (np. Wydajność, przenośność lub funkcjonalność).

http://en.wikipedia.org/wiki/Software_feature

Robert Harvey
źródło
26

Przestrzegam przed stosowaniem zbyt sztywnej hierarchii do tych warunków. Próbowaliśmy to zrobić w mojej poprzedniej pracy. Dwa razy. Obie próby były różne i za każdym razem stwierdziliśmy, że niepotrzebnie się ograniczaliśmy. Jedyną stałą była definicja User Story . Z perspektywy planowania historia jest podstawowym elementem składowym projektu. Większe terminy (epickie, fabularne itp.) To w rzeczywistości tylko tagi . Tagi to prosty sposób, aby historia mogła istnieć jako część wielu Epików i wielu Funkcji jednocześnie. Bycie bardziej surowym nie jest warte wysiłku umysłowego.

Tagi działają dla Stack Exchange i mogą również działać dla Ciebie.

Kristo
źródło
1
Dokładnie. Kliknąłem na to pytanie, mając nadzieję, że znajdę taką odpowiedź.
Zimano
23

Sposób, w jaki pracujemy z Eposami, Historiami i Funkcjami, jest następujący

Na początku cyklu projektu wymyślamy Epopeję . Są to bardzo ważne, niemal zorientowane na marketing, punktory funkcjonalności. Takie rzeczy, których można użyć w streszczeniu, takie jak,

Nasza nowa strona internetowa pozwoli klientom przeglądać produkty, przeglądać dostępność i ceny, składać zamówienia i przeglądać historię ich przeszłych zamówień

Prowadzi to do takich eposów jak

  • Przeglądaj katalog produktów
  • Wyświetl dostępność
  • Zobacz cennik
  • Złożyć zamówienie
  • Zobacz historię zamówień

Są one zapisywane jako historie użytkowników (np. Jako klient chcę przeglądać katalog produktów, aby móc podjąć świadomą decyzję o zakupie), ale służą jedynie jako początek dziesięciu dla tego, co zostanie faktycznie opracowane i wydane.

Te Epopeje są następnie dzielone na Historie użytkowników . Są to rzeczywiste podróże użytkownika od końca do końca, o bardzo ograniczonym zakresie i zdefiniowane w sposób, który można niezależnie oszacować i zaplanować oraz opracować , przetestować i wydać w jednym cyklu wydawniczym.

Historia użytkownika jest jednostką dostawy. Jest to historia użytkownika, która jest kompletna lub niekompletna, uruchamia się lub nie uruchamia się.

Epos może spowodować powstanie dużej liczby historii użytkowników, nie wszystkie zostaną opracowane lub wydane w tym samym czasie.

Na przykład epopeja Przeglądaj katalog produktów może się rozpaść

  • Nawiguj po hierarchii kategorii
  • Szukaj według słowa kluczowego
  • Filtruj według atrybutów produktu (np. Przedziału cenowego, marki, koloru, rozmiaru itp.)

Ponownie każdy z nich zostałby napisany w formacie, np. Jako klient chcę nawigować w hierarchii kategorii, aby móc przeglądać produkty i przechodzić do produktu najbardziej odpowiedniego dla moich potrzeb.

Ogólnie rzecz biorąc, dla większości naszych projektów mamy dziesiątki Eposów i setki opowiadań.

Teraz, gdy przechodzimy przez cykl życia historii, oznaczamy te historie Cechami . Na przykład wszystkie artykuły związane z przeglądaniem, wyszukiwaniem, giełdami i cenami będą oznaczone, powiedzmy, „katalogiem produktów”. Historie dotyczące zamówień związanych z płaceniem kartą kredytową mogą być oznaczone etykietą „karta kredytowa”, a historie związane z płaceniem przez PayPal będą oznaczone etykietą „paypal”.

Etykiety te służą do grupowania historii, które należą do siebie, nie dlatego, że są różnymi rodzajami wykonywania tej samej czynności (np. Wszystkie historie z zamówieniami lokalnymi), ale dlatego, że powinny zostać wydane razem.

Na przykład historia „składanie zamówienia za pomocą karty kredytowej” należy do tej samej epopei, co historia „składanie zamówienia przez PayPal”, ale nie trzeba ich razem publikować.

Podczas gdy historia „składanie zamówienia kartą kredytową”, historia „przetwarzania zwrotu pieniędzy na kartę kredytową” oraz historia „pozwalająca klientom zarządzać zapisanymi kartami kredytowymi na koncie” wydają się należeć do siebie . Wszystkie byłyby oznaczone etykietą „karta kredytowa”. tzn. wszystkie należałyby do funkcji „karty kredytowej”. Zwolnienie możliwości złożenia zamówienia kartą kredytową nie jest bardzo pomocne, jeśli nie można przetworzyć zwrotu pieniędzy na konto PayPal lub jeśli nie można zarządzać zapisanymi kartami kredytowymi na koncie

Uwaga : to jest ogólna zasada. To jest w końcu decyzja biznesowa. Jeśli czas na wprowadzenie na rynek jest ważny, może istnieć uzasadniony powód, aby żyć z jednym z nich, a nie z drugim.

Tak więc Epiki służą do dzielenia się na (powiązane, ale oddzielne) historie, które można rozwijać niezależnie, podczas gdy Funkcje służą do grupowania historii, które powinny być razem wydane.

Można powiedzieć, że Epiki rozkładają się na Historie użytkowników, a Historie użytkowników składają się na Funkcje. Historie należące do danej funkcji są zwykle w całej Epopei. Tak więc Epiki i Cechy są ortogonalne, a nie ścisłej hierarchii.

W naszym sposobie działania, gdy epopeje zostaną podzielone na historie, tracą swój cel. Nie oceniamy ani nie planujemy Eposów. Nie śledzimy postępów w Epics. Nie wydajemy Eposów. Szacujemy, planujemy i śledzimy Historie użytkowników. I udostępniamy Funkcje.

Vihung
źródło
4
„... Tak więc Epiki służą do dzielenia się na (powiązane, ale osobne) historie, które można rozwijać niezależnie, podczas gdy Funkcje służą do grupowania historii, które powinny zostać razem wydane…” Eureka moment !!
Henry Rodriguez,
Ten post zasługuje na więcej aprobat! Sława!
Gooshan
10

Zgadzam się z wieloma odpowiedziami, że tak naprawdę nie ma poprawnych odpowiedzi, ponieważ są to tylko warunki, które można zmieniać w zależności od tego, na jakim obozie Agile jesteś, i na pewno możesz stworzyć własny obóz, o ile wszyscy w zespole, w tym zewnętrzni interesariusze zrozumieć, co one oznaczają. To tylko sposób na uporządkowanie wymagań.

Odpowiedź, którą lubię, pochodzi z obozu Mike'a Cohna i jest dość prosta.

http://www.mountaingoatsoftware.com/blog/stories-epics-and-themes

  • Epopeja to po prostu wielka historia (hierarchiczna)
  • Motyw to tylko grupa opowieści (prawie jak tag)

W rzeczywistości unika terminu „Cecha”. Zakładam, że dzieje się tak głównie dlatego, że był to powszechny termin w tradycyjnym świecie wodospadów. Wiele obozów Agile używa różnych terminów, aby podkreślić różnice.

Tak więc, zgodnie z definicją twojego premiera, funkcja znajduje się gdzieś pośrodku hierarchii epickiej historii.

Oto moja grafika informacyjna tej definicji z mojego artykułu InfoQ http://www.infoq.com/articles/visualize-big-picture-agile ;-)

wprowadź opis zdjęcia tutaj

Kulawat The Eidos
źródło
6

Funkcje i epopeje to nie to samo.

  • Funkcja nie jest historią użytkownika.
  • Epos to historia użytkownika.
  • Historia użytkownika może być epicka.
  • Historia użytkownika może zawierać wiele funkcji.
  • Funkcja może spełnić 1 do wielu historii użytkowników.

W fazie planowania, dyskusje prowadzić Historie użytkowników , które są typicaly zidentyfikowanych jako Epics ponieważ wysiłek w celu wdrożenia rozwiązań dla nich jest zbyt duża, aby osiągnąć w ciągu kilku dni. Funkcje produktu są identyfikowane na tym etapie. Ale to tylko produkt uboczny dyskusji. Funkcje są następnie wykorzystywane do planowania mapy drogowej produktu, która stanowi osobną dyskusję.

W Eposy podejmowane są i omówione dalej, w wyniku user stories dla każdego Epic. Te funkcje i Eposy są wykorzystywane do prowadzenia rozmów w Zaległości wyrafinowania i Sprint Planning sesji. W tym momencie Historie użytkowników pochodzące z tych dyskusji są dopracowywane , uszeregowane według priorytetów i, w ramach planowania sprintu , przyjęte do sprintów do wdrożenia.

Joey Guerra
źródło
4

To tylko problem z rozkładem. To tylko historie, z wyjątkiem różnych rozmiarów.

Osobiście wolę nie oznaczać ich rozmiarami, ale jeśli to zrobisz, to również w porządku. Zapytaj PM, jaka jest definicja w twoim obszarze roboczym.

Martin Wickman
źródło
1

Nasza organizacja ma ponad 2000 programistów, więc odpowiedź na to pytanie jest ważna dla płynnej i jasnej komunikacji między setkami zespołów Agile, nad którymi wspólnie pracujemy nad naszym wspólnym produktem. W przypadku bardzo małej organizacji możesz mieć bardzo prostą strukturę, która nawet nie musi być hierarchiczna (jak odpowiedzieli inni). Jednak w przypadku dużych organizacji zdecydowanie potrzebna jest zorganizowana, skalowana, spójna hierarchia - i na tym polega problem dążenia do stworzenia hierarchii z czegoś, co nie jest ściśle hierarchiczne.

Nawiasem mówiąc, każdy z tych różnych poziomów nazywamy „przedmiotami pracy”. Niektóre organizacje (w tym niektórzy z wyżej wymienionych respondentów) określają różne poziomy jako Historie lub Historie użytkowników (i my też w przeszłości), ale uważaliśmy to za zbyt dwuznaczne, więc teraz nazywamy je ogólnie Przedmiotami Pracy.

Najlepsze, co do tej pory „oficjalnie” zrobiliśmy, to śledzenie struktury tematów inwestycyjnych i epopei biznesowych Dean Leffingwell na szczycie (i na drugim miejscu z góry) hierarchii, następnie Funkcje pod tym, a na końcu Historie pod Funkcje. Według Agile, Zadania są zawsze w Opowieściach, więc staramy się nie używać tego terminu wyżej. Zdecydowaliśmy się stosować SAFe, aby mieć SOME konsekwencję we wszystkich naszych zespołach.

Ale to wciąż jest niewystarczające dla naszych potrzeb. Definiujemy Cechę jako wyraźnie cenną dostawę dla naszego konsumenta naszego oprogramowania (tj. Wymieniamy te Funkcje w naszych zapowiedziach nadchodzących Wydań). Definiujemy Historię jako mniejszy zakres i prace, które mogą być dostarczone w jednym Sprincie przez jeden zespół programistów Agile. ZACZYNAJEMY również, aby postępować zgodnie z definicją SAFe tematu inwestycyjnego i eposu biznesowej na poziomie portfela (i nie poniżej tego poziomu). I zaczynamy NIE używać naszych STARYCH definicji „Motywu” i „Epickiej”.

Teraz powoli ewoluujemy w tym kierunku, ale koła postępu mielą się powoli. Nadal mamy problemy z podzieleniem pracy na mniejsze kawałki, abyśmy mogli zdefiniować pracę i wykonać ją płynnie przez wiele zespołów. Aby to zrobić, widzimy potrzebę „podfunkcji”, która jest mniejsza niż funkcja, ale większa niż historia. Podfunkcje mogą być używane w przypadku części pracy wykonanej nad funkcją przez KAŻDY INDYWIDUALNY zespół lub części pracy wykonanej przez POJEDYNCZY zespół w różnych momentach (w różnych sprintach, a nawet w różnych wydaniach).

Potrzebujemy również wielu hierarchicznych poziomów między Feature a Business Epic, ale nie rozwiązaliśmy jeszcze tego, poza nazwaniem ich „Motywami” - co, jak wiemy, nie jest poprawnym terminem, ponieważ łatwo go pomylić z Motywami Inwestycyjnymi SAFe. W przypadku niektórych dużych projektów (wydań) mamy aż 5-8 różnych poziomów hierarchicznych, z których każdy dzieli pracę na coraz mniejsze części. Możesz myśleć o tych motywach jako o „grupach funkcji”, ale niekoniecznie jest to również właściwy termin.

Myślę, że ważne jest, aby spróbować użyć terminów, które oferują jasność, a nie dwuznaczność. Zatem każdy, kto odnosi się do Opowieści, oznacza najmniejszą jednostkę pracy, którą można wykonać w jednym Sprincie (z wyjątkiem Zadań pod Opowieścią), a Podfunkcja oznacza najmniejszą jednostkę pracy nad Opcją, którą można wykonać za pomocą pojedynczego zespół. Podobnie, grupa elementów jest o jeden poziom hierarchiczny powyżej elementu. Ponadto staje się trochę rozmyte, dlatego zwykle nazywamy je Motywami i zezwalamy na Motywy jako rodzice i dzieci innych Motywów. Staramy się ograniczyć poziomy Funkcji, Podfunkcji i Opowieści do jednego poziomu każdy (Funkcje nie powinny być potomkami innych Funkcji), ale nie jesteśmy w 100% skuteczni w ograniczaniu tego.

Wiem, że możemy użyć „tagów” ​​do uporządkowania niektórych z nich, ale tagi nie dają nam struktury podziału pracy w organizacji, której potrzebujemy do kategoryzowania pracy między wszystkimi naszymi zespołami. Z definicji tagi są niejednoznaczne (relacje wiele do wielu), ale hierarchia jest ściśle jeden do wielu.

Najważniejsze jest to, że jest to dla nas wciąż w toku, a my wciąż się z tym zmagamy. Ale przestrzeganie definicji motywu, epickiego, fabularnego i fabularnego zawartych w SAFe prowadzi nas we właściwym kierunku!

Kirk Bryde
źródło
1

Hierarchia zaległości produktu jest w dużej mierze zależna od wielkości produktu i jego modułowości (liczba zdefiniowanych obszarów produktu).

Dla małych projektów: Epicka> Historia to więcej niż wystarczająca; a ty nazywasz „funkcję”.
Duże projekty mogą być podobne do: Powieść> Motyw> Epicka> Cecha> Historia

Najlepszym przykładem może być:
Powieść =
Motyw pakietu MS Office = MS Word / MS Excel ...
Epicki = Tabele / Katalog czcionek ...
Funkcje = Podstawowy schemat tabel / Kolor tabeli / Operacje na komórkach ...
Historie (dla „ Podstawowa funkcja „Tabele w ramach Epickiej tabeli” = Dodaj tabelę / Rysuj tabelę / Wstaw nieprzetworzoną / Wstaw kolumnę ...

Uważam, że warto pamiętać o zdefiniowaniu własnego skalowania zaległości:
1. Historia: a) zawsze wykonalne w ramach jednego sprintu; b) nie zawsze jest testowalny dla użytkowników końcowych
2. Znakomity / Cecha: a) nie pasuje do jednego czasu sprintu i musi zostać rozłożony; b) zawsze powinny być możliwe do przetestowania dla użytkowników końcowych; c) zawsze możliwy do wysyłki, można zarabiać - oblicz dla niego ROI
3. Rozważając dodanie lub nie Epic> sekcja Funkcji lub trzymaj się Epic> Historia: Zalecam wstawianie Funkcji pomiędzy Epic a Historią tylko wtedy, gdy: Epic nie robi t pasuje nawet do 1 wydania, więc musisz zdefiniować wysyłalny element, który będzie pasował do 1 czasu wydania .

Mam nadzieję, że to jest pomocne.

Dmitriy Bibikov
źródło
-1

W naszej organizacji mamy:

Motyw = Używany do grupowania zbioru opowiadań

Epic = Opisuje dużą historię użytkownika (tak naprawdę wymaganie), którą należy podzielić na historie użytkowników

Funkcje = robi to, co jest napisane na puszce, opisuje wymaganą cechę produktu

Historia użytkownika = To jest najniższy poziom szczegółowości, z którego wywodzą się zadania.

użytkownik120391
źródło