Skala Fibonacciego (zwinna)

W zwinnym tworzeniu oprogramowania skala Fibonacciego składa się z sekwencji liczb używanych do oszacowania względnej wielkości historii użytkowników w punktach. Agile Scrum opiera się na koncepcji pracy iteracyjnej w krótkich sprintach, zwykle dwutygodniowych, w których wymagania i rozwój są stale ulepszane. Ciąg Fibonacciego składa się z liczb, które są sumą dwóch poprzednich liczb, zaczynając od [0, 1]. Agile wykorzystuje ciąg Fibonacciego, aby osiągnąć lepsze wyniki, zmniejszając złożoność, wysiłek i wątpliwości przy określaniu czasu programowania wymaganego do wykonania zadania, który może wynosić od kilku minut do kilku tygodni.

Procedura

Łatwiej jest określić względną złożoność zadania niż dowiedzieć się, ile czasu to wymaga. Z tego powodu podczas pracy zwinnej do oszacowania pracy stosuje się poprawioną skalę Fibonacciego w zakresie punktów, w przeciwieństwie do tradycyjnego pomiaru czasu.

W jednej z metod powszechnie używanych do obliczania wielkości historii w punktach, takiej jak gra w pokera planistycznego , stosuje się następujący proces:

  1. Właściciel produktu siada z zespołem, aby oszacować historie użytkowników.
  2. Każdy członek szacuje liczbę na skali Fibonacciego, która jego zdaniem reprezentuje rozmiar zadania.
  3. Wszyscy członkowie ujawniają swoją liczbę w tym samym czasie (aby uniknąć wzajemnego wpływu szacunków).
  4. Wszelkie różnice w liczbach będą przedmiotem dyskusji, aż do osiągnięcia konsensusu.
  5. Każda historia użytkownika jest dodawana do kubełka, który reprezentuje odpowiedni punkt na skali Fibonacciego.
  6. Powyższe kroki są powtarzane dla wszystkich historyjek użytkownika.
  7. Zasobniki są dodawane do zaległości .

Danie każdemu członkowi możliwości indywidualnego myślenia zmniejsza presję i może skutkować dokładniejszym przedstawieniem rozmiaru obiektu.

W innej powszechnie stosowanej metodzie, takiej jak gra polegająca na dwuprzebiegowym względnym ustalaniu rozmiaru, znana również jako metoda Steve'a Bockmana i gra zespołowa, stosuje się następujący proces:

  1. Menedżer produktu siada z zespołem, aby oszacować wartość historyjek użytkownika projektu, które są dostarczane zespołowi w stosie kart 3x5 lub 4x6.
  2. Pierwszy członek zespołu odczytuje pierwszą kartę i kładzie ją na stole, przekazując pozostały stos następnemu członkowi zespołu.
  3. Drugi członek zespołu odczytuje drugą kartę, może zadeklarować przekonanie, że historia jest większa lub mniejsza niż karta znajdująca się już na stole lub może poprosić zespół o pomoc w ustaleniu, który kierunek jest mniejszy lub większy, kładąc kartę po lewej lub prawej stronie pierwszej karty; i przekazuje pozostały stos następnemu członkowi zespołu.
  4. Trzeci członek zespołu ma wybór: przesunąć pozycję drugiej karty; lub aby przeczytać trzecią kartę, zadeklaruj przekonanie, że historia jest większa niż dwie pierwsze, mniejsza niż dwie pierwsze; lub należy do dwóch pierwszych; i przekazuje pozostały stos następnemu członkowi zespołu.
  5. Kiedy wszystkie karty są na stole – jeśli kierownik produktu naprawdę przedstawił wartość projektu, to prawdopodobnie jest 60, 100 lub 130 kart, a zespół musiał je „zwęzić”, aby dopasować je wszystkie – wtedy zespół zaczyna od najmniejszą kondygnację i przypisuje jej „1”, kontynuując przypisywanie „1” kolejnym kondygnacjom, aż zauważą wyraźny skok do „2”, a następnie do „3”, „5”, „8”, i tak dalej. W rezultacie „wąż” kart jest teraz ponumerowany od najmniejszej historii, „1”, do największej epopei, „100”.

Ta metoda ma tę zaletę, że liczby nie są używane aż do drugiego przebiegu; że przy pierwszym czytaniu nie jest wymagane zgadywanie, jak duża jest „5”, „8” lub „3”; że historie są naprawdę uporządkowane i ponumerowane względem siebie; i kiedy nie każdy może oszacować całą historię.

Niezależnie od metody, w miarę jak zespół przechodzi przez wiele sprintów i usprawnia proces szacowania, kierownik produktu będzie w stanie określić stabilną prędkość . Szybkość jest określana przez obliczenie liczby punktów opowieści ukończonych w każdej iteracji.

Znaczenie

Ludzie oceniają historie użytkowników z mniejszą liczbą punktów dokładniej niż historie użytkowników, które wiążą się z wyższymi kosztami. Wraz ze wzrostem liczb różnica między dwiema kolejnymi liczbami rośnie wykładniczo i prowadzi do mniej dokładnych szacunków.

  • Korzystanie z serii Fibonacciego jest pomocne w tym scenariuszu, ponieważ większe historie użytkowników (tj. historie o rozmiarze większym niż 8), które zwykle prowadzą do niespójnych szacunków między każdym członkiem zespołu, można pogrupować według najbliższej szacunkowej liczby Fibonacciego odpowiedniego zasobnika w zaległości .
  • W przypadku małych historyjek użytkowników różnica jest niewielka, a zatem ostateczny koszt zasobów i czasu może być sfinalizowany dokładniej.

Dobrym sposobem oszacowania kosztu jest wyrażenie go jako wielokrotności kosztów innych znanych historyjek użytkowników. W ten sposób każdemu członkowi zespołu będzie łatwiej oszacować względny koszt. Proces szacowania polegający na porównaniu historii z dwoma wcześniej oszacowanymi historiami użytkowników nazywa się triangulacją.

Menedżer produktu może uwzględnić na skali wartość „0”, wskazującą, że historyjki użytkowników wymagają bardzo mało czasu lub zasobów. Jednak historia użytkownika, której koszt został przypisany 0, nie może być używana jako skala względna do oszacowania kosztu innych historii użytkownika (tzn. nie możemy powiedzieć, że historia jest 10 razy trudniejsza niż historia o rozmiarze 0).

Zaletą sekwencji Fibonacciego jest to, że umożliwia programistom dezagregację historyjki użytkownika z jednego dużego zasobnika na dwa poprzedzające zasobniki (ponieważ zasobnik jest tworzony przez dodanie wielkości dwóch poprzedzających zasobników). Proces ten pomaga tworzyć optymalne historie użytkowników.

Inne skale estymacji

  • Szereg wykładniczy - ({ a n } dla niektórych a i dla wszystkich liczb całkowitych n > 0)
  • Skala liniowa – przyrosty o stałą wartość
  • Karty do gry – najczęściej używane w planowaniu pokera (A <2 <3…)
  • Rozmiar koszulki – (S < M < L < XL < XXL < XXXL)

Zobacz też