W metodologiach zwinnych (np. SCRUM) złożoność / wysiłek wymagany w przypadku opowieści użytkowników są mierzone w punktach opowieści. Punkty historii są używane do obliczania liczby historii użytkowników, które zespół może pobrać podczas iteracji.
Jaka jest zaleta wprowadzenia abstrakcyjnej koncepcji (punktów fabularnych), w której możemy po prostu użyć konkretnego pomiaru, na przykład szacowanej liczby osobodni? Możemy również obliczyć prędkość, oszacować zasięg iteracji itp., Używając szacowanych osobodni.
Natomiast punkty historii są trudniejsze w użyciu (ponieważ koncepcja jest abstrakcyjna), a także trudniejsze do wyjaśnienia interesariuszom. Jaką korzyść oferuje?
agile
scrum
estimation
user-story
Louis Rhys
źródło
źródło
Odpowiedzi:
Myślę, że jedną z głównych zalet jest to, że ludzie i programiści faktycznie źle oceniają czas. Pomyśl też o naturze rozwoju - nie jest to żaden liniowy postęp od początku do końca. Często „pisze 90% kodu w 10 minut, a następnie odrywa włosy z debugowania przez 17 godzin”. Trudno to oszacować w sensie taktowania zegara.
Ale użycie abstrakcji odwraca uwagę od faktycznego czasu w godzinach lub dniach i zamiast tego kładzie nacisk na opisanie względnego kosztu i złożoności zadania w porównaniu do innych zadań. Ludzie / deweloperzy są w tym lepsi. A potem, gdy zaczniesz nucić te szacunki punktowe i pewne rzeczywiste postępy, możesz zacząć patrzeć na czas bardziej empirycznie.
Podejrzewam, że istnieje również efekt obserwatora, który występuje w przypadku oszacowań czasu, który nie miałby miejsca w przypadku oszacowań punktowych. Na przykład bodziec do oszacowania worka z piaskiem i dostarczenia sposobu „przed terminem” zostanie wyciszony w sposób pośredni w systemie punktowym.
źródło
Jeśli używasz liczb Fibonacciego (lub czegoś podobnego), ogranicza to liczbę opcji podczas szacowania historii. Współpracowałem z grupą, która używała tylko niskich liczb: 1, 2, 3, 5, 8 i 13. Mieliśmy referencyjną historię, która była 5. To pozwoliło nam łatwo podejmować szybkie decyzje dotyczące złożoności historii podczas planowania pokera . Innym skutkiem ubocznym było to, że wszystko, co oceniono na 13, prawdopodobnie nie miało wystarczających informacji i wymagało dalszego podziału. Poważnie wątpię, czy byłoby tak łatwo i prosto, gdybyśmy wykorzystali godziny surowe.
Właściciel produktu mówi w języku interesariuszy i powinien być w stanie tłumaczyć między punktami fabularnymi a roboczogodzinami (lub innymi jednostkami) w razie potrzeby. Podczas mojej pracy jako PO miałem twarde dane, że 1 punkt historii = 4 roboczogodziny, ale oczywiście każda drużyna jest inna.
Edytować:
Wiedząc, że 1 punkt = 4 godziny, teoretycznie możesz zmienić swoją talię Planning Poker na 4, 8, 12, 20, 32 i 52. Ale z tymi liczbami trudniej sobie poradzić. Myślę, że mentalnie abstrahowałbym wartości z powrotem do czegoś prostego, np. „Mniej niż dzień”, „więcej niż tydzień” itp. A jeśli to zrobię, równie dobrze mogę pozostać przy jednostce abstrakcyjnej bez punktów fabularnych.
źródło
Ma to umożliwić lepsze oszacowanie w czasie, bez konieczności dostosowywania oszacowań przez estymatory.
Bardziej niż wszyscy zaangażowani w oszacowanie konieczności myślenia w stylu „OK .. wygląda jak 2 osobodni .. ale w ostatnim sprincie nie doceniliśmy wszystkiego, więc może to naprawdę 2,5 osobodni. Lub 3?”, Kontynuują tak samo jak zawsze. „5 punktów historii!”
Następnie dostosowujesz swoje oszacowanie, ile punktów historii można pokonać w sprincie, na podstawie rzeczywistych wyników osiągniętych w poprzednich sprintach. „Wcześniej robiliśmy 90-110 punktów historii na sprint!”
Powiedziałbym, że kryje się za tym teoria, że programiści lepiej oceniają względną złożoność różnych zadań deweloperskich niż szacunki absolutne . Zwłaszcza jeśli wiele osób ocenia zadanie, które może wykonać jedna z nich (i nie wszyscy pracują z taką samą prędkością jak wszyscy inni).
Cyniczna alternatywa: widziałem, że programiści nigdy nie przychodzą na czas. Jeśli coś trwa dłużej, niż przewidywano, przeszedłeś. Ale jeśli coś zajmuje mniej czasu, niż się szacuje, programiści mogą się nim bawić, złocić płytkę lub po prostu zwolnić i uspokoić się, ponieważ przydzielono im wygodne zadanie. Usunięcie rzeczywistych jednostek czasu z oszacowania może ograniczyć te tendencje. Koniec cynicznej alternatywy.
źródło
Ludzkie dni lub osobogodziny są, jak mówisz, konkretne. Tak więc, kiedy zadanie jest szacowane na 5 godzin i zajmuje 6, jest to teraz zadanie opóźnione.
Kiedy masz historię, która ma 3 punkty i zajmuje 6 godzin, zajęła 6 godzin, nie jest późno, tylko sześć godzin. Pomiar prędkości jest bardziej zależny od tego, ile punktów wykonasz podczas sprintu, a liczba ta może się zmieniać, ponieważ nie jest konkretna. Nie mierzysz także każdego zadania, ale sumę wszystkich zadań. Kiedy masz godziny na każde zadanie, pojawia się pokusa, aby zmierzyć każde zadanie. Kiedy tak się dzieje, nie masz żadnych korzyści z sprintu za ukończenie z czasem i jest to konsekwencją ukończenia w czasie danego zadania.
Może to być przejście do myślenia w kategoriach punktów. W jednym miejscu pracowałem, zanim wprowadziliśmy zwinne rozmiary używanych koszulek, aby uzyskać pomysł na poziom wysiłku. Punkty są tylko przedłużeniem tego.
Nie oznacza to, że nie ma kontrowersji ani żadnego arbitralnego przypisania do punktów. Mamy członków naszego zespołu, którzy prawie zawsze głosują na najniższą liczbę, i narzekają, gdy myślą, że zadanie to 1, a naszym zdaniem to 3, że cierpimy z powodu inflacji punktowej.
źródło
Abstrakcja jest w pewnym sensie istotna. Użycie „dnia człowieka” jako pomiaru wiąże się z wieloma pułapkami, w tym:
Jeśli chcesz oszacować osobodni, jest to prosta kalkulacja:
źródło
Jak już wspomniano, punkty fabularne są względną miarą złożoności. Do oszacowania można użyć mocy 2 serii (1,2,4,8,16 ...) lub skali Fibonacciego (1,2,3,5,8,13,20 ...). Jak sugerują programiści, są biegli w mówieniu czegoś takiego:
Ale naprawdę trudno powiedzieć „jak długo” zajmie ta funkcja do wdrożenia. Pozwól temu zrównoważyć prędkość. Więc jeśli coś zostało oszacowane na 5, ale okazało się, że jest 13, wolniejsza prędkość znormalizowałaby to dla iteracji (lub można by to ponownie oszacować).
Jest jeszcze jedna alternatywa, nazywa się ją „dniami idealnymi” (niektóre są podobne do dni roboczych, ale nie jestem pewien, czy to miałeś na myśli) i znam sporo zespołów, które to preferują. Dni idealne należy interpretować jako:
Mike Cohn, jeden z wielu dobrze znanych zwinnych ewangelistów, przedstawia następujące porównanie punktów fabularnych i dni idealnych
Punkty opowieści
Idealne dni
Teraz wybór należy do zespołu. Jednak, ponieważ większość odpowiedzi tutaj i moje osobiste doświadczenia, wolę punkty historii. Idealne dni tak naprawdę nie mają tak dużej przewagi nad SP (a Mike Cohn opowiada się również za SP wraz z wieloma innymi zwinnymi ewangelistami).
źródło
Punkty fabularne pomagają również mierzyć poprawę wydajności zespołu w czasie. Ponadto nie trzeba ponownie szacować wszystkiego, ponieważ poprawia się wydajność.
Weź ten przykład, który używa dni roboczych:
Zespół ocenia różne zadania na osobodni. To działa przez jakiś czas, ale po pewnym czasie widać, że zespół wykonuje wiele zadań szybciej niż pierwotnie sądzono. Zespół dokonuje ponownej oceny zadań. To działa przez jakiś czas, a po pewnym czasie znów widzisz to samo: zespół jest wykonywany szybciej z wieloma zadaniami. Więc ponowne oszacowanie znowu, i ta historia powtarza się znowu, i znowu, i znowu ...
Dlaczego? Ponieważ wydajność twojego zespołu wzrosła. Ale nie wiesz o tym.
Ten sam przykład z punktami fabularnymi:
Zespół ocenia rozmiar historii użytkowników. Po kilku sprintach widać, że zespół może wykonać około 60 punktów historii na sprint. Później widać, że zespół osiągnął ponad 60 punktów historii, może 70. Zespół kontynuuje w ten sposób i wyciąga kolejne historie użytkowników na kolejne sprinty i dostarcza je.
Dlaczego? Ponieważ wydajność wzrosła. I możesz to zmierzyć. Nie musisz ponownie oceniać wszystkiego po zwiększeniu wydajności swojego zespołu.
źródło
Po pierwsze, ludzie są lepsi w szacunkach względnych niż szacunkach bezwzględnych. Babilończycy mapujący i oceniający względną jasność gwiazd to świetny przykład. Nie uzyskali prawidłowych liczb bezwzględnych, ale kolejność była w większości sprecyzowana nawet przy bardzo podobnych natężeniach.
Drugą zaletą jest to, że głównym powodem wykonywania tego ćwiczenia jest prowadzenie rozmowy. Jeśli zaczniesz dyskutować dokładnie w dniach, rozmowa może szybko się wykoleić.
Jak powiedział Napoleon: plan jest bezwartościowy, planowanie jest bezcenne.
Po trzecie, kierownik projektu nie musi edytować wszystkich oszacowań, tylko dlatego, że okazuje się, że oszacowania były pomniejszone np. O 130%.
źródło
Punkty fabularne odzwierciedlają złożoność problemu, a zatem odzwierciedlają pewność (lub ryzyko) dokładności oszacowania.
Historia z wysokim punktem historii mówi mi, że wiele dzieje się z historią użytkownika, która nie jest konkretna.
Chodzi o to, aby zobaczyć, jaka jest równowaga różnych punktów historii. Jeśli pokazano mi plan iteracji z opowieściami ze wszystkimi wysokimi punktami historii, nie daje mi to pewności, że iteracja zostanie wykonana zgodnie z oczekiwaniami i że musimy spojrzeć na inne historie dla iteracji lub zacząć opowiadać historie.
Podczas komunikowania się z menedżerem lub właścicielem produktu wysokie punkty fabularne oznaczają, że będzie bardzo niewyraźnie, kiedy otrzymają określoną funkcję. Jednym z rozwiązań jest rozbicie historii i, mam nadzieję, będziesz mieć kombinację niskich i wysokich punktów historii do pracy, dzięki czemu będziesz mógł iteracyjnie demonstrować postępy właścicielowi produktu.
źródło
Ludzkie dni szacują czas potrzebny na zrobienie czegoś. Są one najlepiej stosowane, gdy szacowane elementy są bardzo precyzyjne i mierzalne. Określone, dobrze znane, powtarzalne zadania można oszacować za osobodni.
Na przykład, jeśli sprzedawca może wykonać średnio 20 połączeń z klientami dziennie, możemy obliczyć, ile czasu zajmuje każde połączenie, i na tej podstawie możemy oszacować, ile osobodni zajmie wykonanie 1000 połączeń.
W tym przykładzie można konkretnie myśleć statystycznie o medianie długości połączenia, ponieważ można założyć, że wszystkie połączenia są faktycznie takie same.
Punkty opowieści określają, którą kombinację opowieści można wykonać w iteracji. Służą do łączenia niejednorodnych celów z rozmytymi granicami i do mierzenia, ile można zrobić w ustalonych ramach czasowych. Szacują złożoność kawałków pracy w porównaniu do siebie , aby móc je połączyć.
Na przykład twój zespół opracował 5 opowieści za łączną liczbę 23 punktów w iteracji 1 i 8 opowieści za 20 punktów w iteracji 2. Na tej podstawie możesz oszacować, że w trakcie iteracji dwa Twoje zespoły wykonają kilka opowieści, których łączna suma wynosi około 20 punktów w iteracji 3.
Pamiętaj, że nie musimy określać wielkości jednego punktu, a w szczególności nie ma założenia, że opracowanie każdej historii o tym samym rozmiarze zajmie tyle samo czasu! Pracujemy tylko na sumach i punktach na iterację. Nie wspomniałem nawet o tym, jak długo trwa iteracja.
źródło
Jeśli podchodzisz do człowieka na ulicy i pytasz „Jak duży był T-rex?” odpowiedzi zmieniałyby się, mimo że większość ludzi wie, co to jest T-rex, jak duży był tego rodzaju, ale nikt tak naprawdę nie ma pewności - ponieważ nie mamy ŻADNEJ skali względnej do linii odniesienia.
To jest zachowanie poznawcze, które próbujesz zrozumieć dzięki prognozowaniu, a wiele metodologii krąży cyklami z „ Mam to! .. mam sekret do dokładnego prognozowania! ”. Kiedy faktycznie robisz prognozę, mówisz głośno: „POZWOLĘ x dni / godzin / punktów na ukończenie tego ” - w pewnym sensie tworzy „szafę czasową”, w której to wydarzenie ma zostać przeprowadzone.
Dla mnie punkty po prostu przesuwają granice, pod koniec dnia, chyba że jesteś w zespole, który chętnie powie: „ * Mamy 3 tygodnie na sprint i ssanie kciuka ... myślę, że powinniśmy strzelać 30 punktów do ukończenia w tym cyklu! Kto jest ze mną! * ”I to tak głęboko, jak się da w modelowaniu prognoz - w porządku! .. realistycznie ustalasz arbitralny budżet i to wszystko. Spoglądasz też z perspektywy czasu na pracę zakończoną poczuciem „świętej badziewie, zrobiliśmy 33 punkty tego sprintu, było całkiem fajnie” i niewiele można na to poradzić. Możesz użyć prędkości, aby ustalić, czy w połowie sprintu dostajesz huk za budżet, pytając głośno: „ Czy osiągnęliśmy już 15 punktów?„ale istnieje niebezpieczeństwo, że używasz prędkości do pomiaru wydajności, a nie pojemności, co z tego, co rozumiem, powoduje Reactive Release Management (punkty fabularne) w głowie.
System punktowy jest prawie zbyt sprytny, aby nie zauważyć, że nadal przypisujesz względny czas do równania, wszystko od uzgodnionych „cykli sprintu” do codziennych pojedynków, w których wprowadzasz ukrytą zasadę dotyczącą czasu trwania + złożoności = „ Max zajmuje zbyt dużo czasu z tym zadaniem „wrodzone jelita czują kod zespołu czerwony moment?
Ludzki mózg nie jest w stanie przewidzieć, ponieważ wiąże się z dużą pamięcią roboczą połączoną z pamięcią długo- / krótkoterminową, więc to tak, jakby poprosić początkującego studenta matematyki o zrobienie ułamków w głowie, a nie na papierze. To dlatego inne branże nigdy nie zgadzają się na prognozę i nieustannie weryfikuje prognozy we względnym czasie (np. geolog nigdy nie przestaje modelować prognoz, dopóki ten metr sześcienny nie zostanie wykopany z ziemi, a następnie „zrobiony”).
Powiedziałbym, że system punktowy działa, jeśli nie prognozujesz . Zgadzasz się na część pracy opartą na algorytmie podziału częściowego, ale to naprawdę twoje najbliższe podejście do prognozowania, jak to możliwe. W rzeczywistości zarządzanie wydaniami szukałoby naturalnych przerw w kolejce „zaległości”, które pasują do motywów (np. W Silverlight my, menedżerowie produktu czekali, aż uzupełnią swoje zaległości i poskładają motywy, które początkowo ustawiliśmy. nigdy nie wiedzieliśmy, co konkretnie robią inżynierowie, po prostu mieliśmy ogólny zarys. Następnie wzięlibyśmy tę część pracy i zbudowaliśmy wokół niej nasze wydarzenie marketingowe (Microsoft Mix)
Kiedy zaczynasz blokować oczekiwania dotyczące prędkości w cyklach sprintu, które opierają się na prędkości + czasie, ponownie powracasz do prognozowania, ale tym razem jesteś w gorszej sytuacji, ponieważ grasz w grę „to zależy” ... Co ważniejsze, zabijają również potencjał wzrostu zespołu / kariery.
Podatek płacony za punkty w funkcji czasu zależy od punktów, w których należy szukać alternatywnych formuł pomiaru, aby śledzić rozwój umiejętności / mentoring onjob lub zachowanie programistów.
Ponieważ nadal będziesz musiał spojrzeć na „medianę programistę” jako idealną osobę do połączenia umiejętności / wysiłku, możesz następnie bazować na innych programistach z tą osobą, aby określić, w jaki sposób godzą się w ciągłym rozwoju w zespole. Zwraca także uwagę na sytuacje, w których „szybcy” programiści niosą większość wody, ale nudzą się lub gorzej, pracują dłużej i nie są nagradzani / nagradzani z powodu konkurencyjnych terminów itp. Awarie nie odkrywają tego w rzeczywistości, są naprawdę tam, aby wykryć nieprzyjemne zapachy w zespole, na przykład, jak w „ta osoba walczy, pomaga
Następnie pojawiają się opowieści o „przeniesieniu”, które nie są podzielone na ten cykl sprintu, ale przechodzą do następnego cyklu sprintu. Który następnie może łatwo wywołać efekt domina, jeśli uwzględnisz czas, ale w momencie, gdy weźmiesz pod uwagę czas względny. Ponownie, po prostu cofnąłeś się do „prognozowania / szacowania na podstawie czasu” i ponownie system punktowy jest po prostu zabłocić wody.
Jeśli przejdziesz do punktów, całkowicie ignorujesz czas i mam na myśli całkowicie, gdy pozwalasz, aby czas wkradł się w grę, grając w pomysł / metodologię.
Podróżując po całym świecie jako ewangelista, widziałem, jak wiele zespołów przeklina swoje ręce na to, co im się podoba, że złamały kod Agile Forecast ... ale zawsze kliknąłem swój język, uśmiechałem się i odchodziłem z myślą „ tak ... prawie to zrobiłeś, ale ta kochanka, którą nazywamy „czasem”… jest po prostu okrutna… ”
źródło
Książka Mike'a Cohna „Zwinne szacowanie i planowanie” opisuje zalety i wady szacowania za pomocą „idealnych dni” lub punktów historii, więc szybka odpowiedź na twoje pytanie jest taka, że nie musisz oceniać za pomocą punktów historii. Jeśli oszacowanie w idealnych dniach jest bardziej naturalne, przejdź do przodu.
źródło
Myślę, że metoda Story Point ma co najmniej dwie ważne zalety w stosunku do metody „Dzień roboczy”: po pierwsze, łatwiej jest oszacować w SP. SP jest względne, a ludzie, podobnie jak my, są lepsi pod względem względnym niż bezwzględne oszacowanie, jak metoda na dzień człowieka.
Po drugie, gdy oszacujesz w SP, otrzymasz „Team SP”, a nie „Individual Manday”. Kiedy zapytasz „Jak długo potrwa to zadanie?”, Starszy programista może dać ci 1 dzień, ale 5 dni dla juniora. To dzień człowieka zależy od tego, kto podejmie się tego zadania. Jeśli właściciel zostanie zmuszony do zmiany (i tak się stanie!), Musisz wszystko zaplanować ponownie. Dzięki SP wciąż jest to ten sam, kto podejmie się tego zadania.
źródło
Dziwi mnie, że nikt jeszcze nie wspomniał o prawie Parkinsona .
Zasadniczo, jeśli szacujesz w jakiejkolwiek jednostce czasu dla dużych zadań, programiści zwykle poświęcają czas, który szacują, aby go ukończyć lub przejść. Kiedy oszacujesz w mglistym czasie, takim jak Punkty Story lub Rozmiary Koszula, unikniesz tej pułapki.
źródło
Oszacowanie punktu fabuły następuje według serii Fibonacciego 1,2,3,5,8,13,21 ...
Ludzki mózg może łatwo mapować rzeczy na podstawie rozmiarów. Na przykład: Mamy kartę pocztową i przypisujemy jej punkt historii 2, a trzy karty wielkości post oznaczałyby 2 * 3 = 6 punktów opowieści.
Story Point 6 mieści się pomiędzy seriami Fibonacciego 5 i 8, przy czym 5 jest liczbą bliższą, a zatem punktem fabularnym byłoby 5.
źródło