Jaka jest różnica między historiami użytkowników a funkcjami?


25

Grając w icescrum , zdałem sobie sprawę, że nie rozumiem różnicy między historiami użytkowników a funkcjami użytkownika.

Czy ktoś może wyjaśnić różnicę?

Odpowiedzi:


23

Cecha jest wyraźnym elementem funkcjonalności, który może zapewnić możliwości dla biznesu.

Historia to niewielki aspekt funkcji, za pomocą której można uzyskać informacje zwrotne od interesariuszy i dowiedzieć się, czy robisz coś źle.

Na przykład funkcją może być „pozwalanie użytkownikom na komentowanie artykułów”. Historie związane z tą funkcją mogą być:

  • zapisz komentarze
  • filtruj komentarze pod kątem niegrzecznych słów
  • ogranicz komentarze do 400 znaków i przekaż je użytkownikom
  • dodaj captchas, aby bot nie spamował strony
  • zezwalaj użytkownikom na logowanie się za pomocą identyfikatora Google

itp.

Na każdym etapie możemy uzyskać informację zwrotną, czy wskazany kierunek jest przydatny.

Niektóre zespoły nie zadają sobie trudu dzielenia funkcji na historie. W porządku.


13
Czy te powiązane historie nie są tak naprawdę zadaniami użytkownika? Powiedziałbym, że są. Historia użytkownika wyglądałaby następująco: Jako użytkownik chciałbym komentować artykuły, abyśmy jako użytkownicy mogli ulepszać treść artykułów lub wyrażać obawy. Ta historia użytkownika zostałaby podzielona na zadania, które opisałeś ...
Robert Koritnik

4
Uważam to zadanie za coś, co należy wykonać, aby uzyskać informacje zwrotne, ale na które nie można uzyskać informacji zwrotnej samodzielnie - na przykład utworzenie tabeli bazy danych. Każda z tych historii, z wyjątkiem pierwszej, może zostać potencjalnie usunięta, pozostawiając wartość w wysyłce. W moim świecie zadania są zazwyczaj dzielone poziomo. Ale jeśli masz różne definicje, to jest OK. Granulacja nie jest czymś całkowicie dyskretnym, każdy cel jest subgoalem innego i myślę, że powinieneś robić wszystko, co jest dla ciebie pragmatyczne. Uważam ten podział za przydatny, podobnie jak wiele moich zespołów.
Lunivore,

16

Funkcje == Historie użytkowników.

Verbage jest podyktowane zastosowaną metodologią Agile .

Różne metodologie używają innej terminologii w odniesieniu do funkcji. Zespół decyduje, której metodologii lub terminologii użyć. Extreme Programming (XP) używa terminów Historie użytkownika lub Historie do reprezentowania funkcji; Scrum używa Backlogu Produktu do opisania listy funkcji; Programowanie oparte na cechach wykorzystuje funkcję; a DSDM używa wymagania. Podobnie istnieją różne lekkie wersje Unified Process lub Agile UP, które wykorzystują Wymaganie i / lub Przypadek użycia w celu zdefiniowania funkcji dostarczania przyrostowego. Ostatecznie cel jest ten sam - regularne dostarczanie wartości biznesowej w małych krokach, a raczej wcześniej niż później.


+1, to dobrze to tłumaczy. Niekoniecznie powiedziałbym historyjkę użytkownika == historia użytkownika, z wyjątkiem sytuacji, gdy mówisz o wartości biznesowej lub wartości klienta. W innych przypadkach odpowiedni termin może nie mieć znaczenia.
murrekatt

2
Nie sądzę, że możesz powiedzieć, że są takie same, nawet jeśli są to powiązane terminy. Co z funkcjami obejmującymi kilka historii użytkowników?
sleske

@sleske Historia użytkownika w czystym Scrumie powinna być wartością dodaną dla użytkownika, a zatem cechą. Jeśli zamierzamy skatalogować funkcje jako nadrzędne Epopeje, to dobrze, ale efektem końcowym są historie użytkowników, które dostarczają wartość.
Aaron McIver

1
@AaronMcIver: Tak, to prawda. Czasami jednak niewielka ilość funkcji, która jest naprawdę przydatna dla użytkownika (= funkcja), jest zbyt duża dla historii użytkownika (lub nawet dla iteracji). W takim przypadku musisz podzielić funkcję na kilka historii.
sleske

BTW, powiązane pytanie i odpowiedź: stackoverflow.com/questions/1714557/…
sleske,

7

Story Użytkownik jest nieformalnym oświadczenie w języku klienta, który przechwytuje intencją coś, życzenia klienta do osiągnięcia. Historię użytkownika można traktować jako nieformalne oświadczenie o wymaganiach.

Funkcji oprogramowania jest odrębną cechą oprogramowania, które przyczynia się do ogólnego wzornictwa i funkcjonalności oprogramowania.

Kilka kluczowych uwag:

  • Story może opisywać funkcji , ale funkcja nie opisuje historię .
  • Story może nie bezpośrednio opisania funkcji .
  • Story może oznaczać włączenie liczby mieście .
  • Feature - pojedynczo lub jako członek kolekcji funkcje - mogą przechwytywać intencją a Story .

Mając to na uwadze, zwykle opowiadam Historie jako opisy. Zasadniczo nieformalne wymagania, które mówią mi, czego chce klient. Z drugiej strony cechy, które zwykle uważam za specyfikację, która mówi mi, jak system powinien działać, aby spełnić wymagania klientów.


3

Te dwa terminy są ściśle powiązane, ale istnieją pewne różnice.

Po pierwsze, pochodzą z różnych domen. Termin „funkcja” jest dość ogólnym terminem na pewną część funkcjonalności oprogramowania, podczas gdy „historia użytkownika” została wymyślona i jest używana tylko w kontekście zwinnego tworzenia oprogramowania.

W praktyce bardzo często się pokrywają, ponieważ jedna historia użytkownika polega na wdrożeniu pewnej funkcji.

Jednak w niektórych sytuacjach mogą się różnić:

  • Często funkcja jest zbyt pracochłonna dla historii jednego użytkownika. Historie użytkowników nie powinny być zbyt duże (zazwyczaj nie więcej niż kilka dni, maksymalnie 1-2 tygodnie pracy). Oczywiście wiele funkcji jest znacznie większych. W takim przypadku funkcja zostanie wdrożona w wielu historiach użytkowników. Niektóre osoby używają „epików” do grupowania historii użytkowników, w takim przypadku można powiedzieć, że ta funkcja jest epicka.
  • Wymagania niefunkcjonalne (wydajność, bezpieczeństwo, zgodność itp.) Mogą być również traktowane jako historie użytkowników (choć nie jest to powszechnie akceptowane). W takim przypadku wynik historii użytkownika zwykle nie byłby nazywany funkcją (chyba że nazwiesz „nasza aplikacja rzadko powoduje awarię” funkcji).
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.