{"id":8275,"date":"2024-10-04T10:00:00","date_gmt":"2024-10-04T08:00:00","guid":{"rendered":"https:\/\/sii.pl\/blog\/?p=8275"},"modified":"2024-10-04T10:10:22","modified_gmt":"2024-10-04T08:10:22","slug":"estymaty-w-scrum","status":"publish","type":"post","link":"https:\/\/sii.pl\/blog\/estymaty-w-scrum\/","title":{"rendered":"Estymaty w Scrumie"},"content":{"rendered":"\n<p>W historii \u015bwiata mieli\u015bmy do czynienia z kilkoma \u201eodwiecznymi\u201d walkami. Walka dobra ze z\u0142em. Walka prawicy i lewicy. Walka o estymaty godzinowe i abstrakcyjne. Mo\u017cna by pomy\u015ble\u0107, \u017ce \u017cycie to walka. Najgorsze (albo najlepsze) w tym wszystkim jest to, \u017ce w niekt\u00f3rych sporach obie strony maj\u0105 racj\u0119 \u2013 \u201enothing is true, everything is permitted\u201d.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Historia z \u017cycia wzi\u0119ta<\/h2>\n\n\n\n<p>Gdy jeszcze chodzi\u0142em do szko\u0142y podstawowej, pod blokiem mia\u0142em boisko, kt\u00f3re otoczone by\u0142o przez kilka drzew \u2013 taka zielona wyspa po\u015br\u00f3d betonowych budynk\u00f3w. Kiedy komputery nie by\u0142y jeszcze tak popularne jak dzisiaj, to w\u0142a\u015bnie na boisku (lub w jego okolicy) sp\u0119dza\u0142o si\u0119 wi\u0119kszo\u015b\u0107 czasu w wakacje \u2013 czy to graj\u0105c w pi\u0142k\u0119, wspinaj\u0105c si\u0119 po drzewach, czy po prostu hu\u015btaj\u0105c si\u0119 i rozmawiaj\u0105c z kolegami na trzepaku.<\/p>\n\n\n\n<p>Uczucie swobody by\u0142o cudowne. By\u0142o tylko jedno ale: \u201ePami\u0119taj, \u017ceby wr\u00f3ci\u0107 o 19:00, bo b\u0119dzie kolacja!\u201d.<\/p>\n\n\n\n<p>Oczywi\u015bcie, zwykle nie psu\u0142o mi to zabawy \u2013 jak grali\u015bmy mecz mi\u0119dzy rywalizuj\u0105cymi ze sob\u0105 blokami, to nie mog\u0142em po prostu zej\u015b\u0107 z boiska punktualnie o 19:00 i zostawi\u0107 koleg\u00f3w na murawie (czy te\u017c ziemi, bo murawa dawno znikn\u0119\u0142a, wydeptana naszymi stopami). Ju\u017c nawet nie chodzi\u0142o o to, \u017ce ma\u0142o kto mia\u0142 zegarek.<\/p>\n\n\n\n<p>Fina\u0142 by\u0142 taki, \u017ce mecz by\u0142 rozegrany z lepszym lub gorszym wynikiem, jednak cz\u0142owiek mia\u0142 poczucie dobrze spe\u0142nionego obowi\u0105zku. W domu jednak przyj\u015bcie ubrudzonemu 15 minut po \u201ededlajnie\u201d skutkowa\u0142o szybk\u0105, ale wyra\u017an\u0105 reprymend\u0105, umyciem si\u0119 (a przynajmniej r\u0105k) do sto\u0142u i zjedzonym w samotno\u015bci, zimnym posi\u0142kiem (przecie\u017c reszta ju\u017c zjad\u0142a). Ani moja mama, ani ja nie byli\u015bmy zadowoleni z takiego stanu rzeczy.<\/p>\n\n\n\n<p>Wiele t\u0119gich g\u0142\u00f3w sp\u0119dzi\u0142o noce w oparach kawy, zastanawiaj\u0105c si\u0119, <strong>jak poprawi\u0107 estymaty<\/strong>. Nie obiecuj\u0119, \u017ce na \u0142amach tego artyku\u0142u problem za\u017cegnamy, ale mam nadziej\u0119, \u017ce pozwoli on Wam spojrze\u0107 na zagadnienie ze \u015bwie\u017cej perspektywy.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Estymata estymacie nier\u00f3wna<\/h2>\n\n\n\n<p>Estymowanie pracy w godzinach sprowadza lub sprowadza\u0142o si\u0119 zwykle do tego, \u017ce zesp\u00f3\u0142 dostaje zadanie\/wymaganie\/historyjk\u0119 w zestawie z pytaniem \u201ena kiedy?\u201d. Nast\u0119pnie deweloperzy zastanawiaj\u0105 si\u0119, ile czasu zajmie im dana funkcjonalno\u015b\u0107 (lub jej cz\u0119\u015b\u0107). Rozk\u0142adaj\u0105 j\u0105 na cz\u0119\u015bci pierwsze i bior\u0105c pod uwag\u0119 z\u0142o\u017cono\u015b\u0107 systemu, swoj\u0105 wiedz\u0119 lub jej brak, testy, nieprzewidziane sytuacje, przerwy na kaw\u0119, pr\u0105dy morskie, sytuacj\u0119 polityczno-gospodarcz\u0105 na Bliskim Wschodzie, migracje \u0142ososia oraz prawdopodobie\u0144stwo opad\u00f3w deszczu w Birmie, a na koniec, dodaj\u0105c 30% bufor, podaj\u0105 \u201ena oko\u201d, \u017ce zajmie to im X godzin.<\/p>\n\n\n\n<p>Znacie <strong>prawo Hofstadtera<\/strong>?<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Wszystko zawsze zajmuje d\u0142u\u017cej ni\u017c planujesz, nawet je\u015bli we\u017amiesz pod uwag\u0119 prawo Hofstadtera.<\/p>\n<\/blockquote>\n\n\n\n<p>Rezultaty zwykle s\u0105 do przewidzenia \u2013 z reszt\u0105, nie jest to nic niezwyk\u0142ego i coraz cz\u0119\u015bciej traktowane jest to jako co\u015b naturalnego.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Czas, czas, czas, czas, czas, czas\u2026 Czas wci\u0105\u017c goni nas<\/h2>\n\n\n\n<p><strong>Czemu wi\u0119c mog\u0105 s\u0142u\u017cy\u0107 estymaty czasowe? A czemu nie powinny s\u0142u\u017cy\u0107? Jak ich u\u017cywa\u0107?<\/strong> Jak to bywa \u2013 teoria jest prosta, a praktyka trudna.<\/p>\n\n\n\n<p>Pami\u0119tajmy zawsze po co tak naprawd\u0119 estymujemy w Scrum. Przede wszystkim robimy to, \u017ceby wiedzie\u0107, ile mo\u017cemy \u201ew\u0142o\u017cy\u0107\u201d do Sprintu \u2013 na podstawie dost\u0119pno\u015bci cz\u0142onk\u00f3w zespo\u0142u i czasu, jaki potrzebuj\u0105 na wykonanie zadania.<\/p>\n\n\n\n<p>Tak wi\u0119c, praktyka z jak\u0105 si\u0119 spotka\u0142em jest taka, \u017ce historyjki u\u017cytkownika dzieli si\u0119 na sub-taski deweloperskie, b\u0119d\u0105ce \u201echecklist\u0105\u201d tworzon\u0105 przez deweloper\u00f3w dla deweloper\u00f3w. Deweloperzy po podzieleniu takiej historyjki nadaj\u0105 ka\u017cdemu podzadaniu jak\u0105\u015b wycen\u0119 w godzinach. Suma czasu, jaki zostanie po\u015bwi\u0119cony na sub-taski, jest przypisana do ca\u0142ej User Story. St\u0105d wiemy, \u017ce skoro zesp\u00f3\u0142 ma do po\u015bwi\u0119cenia X godzin czasu w Sprincie, to do Sprintu zmie\u015bcimy User Stories, kt\u00f3re mog\u0105 \u0142\u0105cznie trwa\u0107\u2026 oko\u0142o 75%*X godzin, bo tyle w praktyce jeste\u015bmy w stanie pracowa\u0107 efektywnie ka\u017cdego dnia.<\/p>\n\n\n\n<p>Zalet\u0105 godzin jest to, \u017ce godziny s\u0105 znane. Mo\u017cna na ich podstawie wyceni\u0107 (mniej wi\u0119cej), ile zmie\u015bcimy do Sprintu. W mojej ocenie jest to <strong>metoda idealna dla pocz\u0105tkuj\u0105cych zespo\u0142\u00f3w<\/strong> lub takich, w kt\u00f3rych nast\u0105pi\u0142y znacz\u0105ce zmiany kadrowe.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Jak szacowa\u0107 pr\u0119dko\u015b\u0107 w nowym lub zmienionym zespole?<\/h2>\n\n\n\n<p>Na pocz\u0105tku pracy, czy to w nowym zespole, czy takim, kt\u00f3ry mocno si\u0119 zmieni\u0142, ci\u0119\u017cko si\u0119 opiera\u0107 na Story Points, czy jakiejkolwiek innej relatywnej jednostce miary. Spowodowane jest to tym, \u017ce nie mamy danych historycznych, na podstawie kt\u00f3rych mogliby\u015bmy oszacowa\u0107 nasz\u0105 pr\u0119dko\u015b\u0107.<\/p>\n\n\n\n<p>(Dla os\u00f3b, kt\u00f3re dopiero zaczynaj\u0105 swoj\u0105 d\u0142ug\u0105 i [prawdopodobnie] wyboist\u0105 drog\u0119 z estymatami \u2013 sens ostatniego zdania powinni\u015bcie zrozumie\u0107 po zapoznaniu si\u0119 z nast\u0119pnym rozdzia\u0142em.)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Wady podej\u015bcia<\/h3>\n\n\n\n<p>Takie podej\u015bcie do estymat nie jest jednak wolne od <strong>wad, poniewa\u017c:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Zwykle nad ich wycen\u0105 pracuje jedna osoba, co powoduje, \u017ce mamy sk\u0142onno\u015b\u0107 do niedyskutowania o ilo\u015bci pracy potrzebnej do wykonania zadania. Powoduje to brak wymiany wiedzy, a czasami tak\u017ce sztuczne nadmuchiwanie wycen, gdy\u017c nikt nie stara si\u0119 ich kontrolowa\u0107. A jak kontroluje, to z perspektywy deweloper\u00f3w, jest to dow\u00f3d na brak zaufania i podwa\u017canie ich specjalistycznej wiedzy, co negatywnie wp\u0142ywa na morale zespo\u0142u i powoduje nieporozumienia.<\/li>\n\n\n\n<li>Ka\u017cdego programist\u0119 \u201eliczy si\u0119\u201d jednakowo \u2013 czy jest seniorem, czy sta\u017cyst\u0105, zawsze jest to ~160h, a nie odzwierciedla to pr\u0119dko\u015bci poszczeg\u00f3lnych os\u00f3b i ich mo\u017cliwo\u015bci.<\/li>\n\n\n\n<li>Szacowanie w godzinach, aby mia\u0142o w miar\u0119 sensown\u0105 dok\u0142adno\u015b\u0107 (dobre estymaty to takie, kt\u00f3re s\u0105 w granicach 25% w\u0142a\u015bciwego rezultatu przez 75% czasu[1]) wymaga szczeg\u00f3\u0142owego rozbicia historyjek\/wymaga\u0144 na mniejsze podzadania. Samo w sobie zabiera to du\u017co czasu, a nie przynosi warto\u015bci odbiorcy ko\u0144cowemu (nie m\u00f3wi\u0119 tu o biznesie, kt\u00f3ry zwykle lubi Wykresy Gantta i Roadmapy, tylko o kliencie \u2013 u\u017cytkowniku produktu).<\/li>\n\n\n\n<li>Biznes mo\u017ce traktowa\u0107 estymaty czasowe podawane przez deweloper\u00f3w jako zobowi\u0105zanie lub wycen\u0119. Niewa\u017cne, jak d\u0142ugo i jak uparcie b\u0119dziecie powtarza\u0107, \u017ce jest to zgrubna estymata i czas realizacji mo\u017ce by\u0107 d\u0142u\u017cszy lub kr\u00f3tszy w zale\u017cno\u015bci od wielu czynnik\u00f3w. Biznes planuje wtedy sw\u00f3j kalendarz na podstawie tych estymat, a gdy estymaty si\u0119 zmieniaj\u0105 lub okazuj\u0105 si\u0119 nieprawid\u0142owe\u2026 C\u00f3\u017c, nie prowadzi to do niczego dobrego.<\/li>\n<\/ul>\n\n\n\n<p>No i nie ukrywajmy \u2013 estymowanie w czasie zosta\u0142o przeniesione z poprzednich, kaskadowych modeli, dlatego lepiej si\u0119 sprawdza w nich, ni\u017c w modelach zwinnych. Gdy przekraczamy czas w modelu kaskadowym \u2013 trudno. Wiadomo, \u017ce nie ma si\u0119 z czego cieszy\u0107, ale s\u0105 jeszcze tzw. zakresy tolerancji, kt\u00f3rych zadaniem jest mitygacja takiego ryzyka. W Scrum nie ma tolerancji czasowej \u2013 Sprinty s\u0105 sta\u0142ej d\u0142ugo\u015bci, wi\u0119c nie mo\u017cemy przed\u0142u\u017cy\u0107 iteracji o 2 dni, bo \u201ejeszcze co\u015b trzeba dotestowa\u0107\u201d. Powoduje to cz\u0119sto, \u017ce niedostarczenie funkcjonalno\u015bci na koniec Sprintu odbierane jest przez niekt\u00f3rych jako wina braku planu i zarz\u0105dzania.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Story Points \u2013 za 3 punkty!<\/h2>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/10\/complexity-vs-effort-1.png\"><img decoding=\"async\" width=\"272\" height=\"271\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/10\/complexity-vs-effort-1.png\" alt=\"Story Points\" class=\"wp-image-29187\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/10\/complexity-vs-effort-1.png 272w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2024\/10\/complexity-vs-effort-1-150x150.png 150w\" sizes=\"(max-width: 272px) 100vw, 272px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 1 Story Points<\/figcaption><\/figure>\n\n\n\n<p>Chyba najpopularniejsz\u0105 metod\u0105 wyceny tzw. \u201ehistoryjek\u201d w zwinnym podej\u015bciu s\u0105 Story Points. Opieraj\u0105 si\u0119 na por\u00f3wnywaniu na podstawie z\u0142o\u017cono\u015bci i pracoch\u0142onno\u015bci (w odr\u00f3\u017cnieniu od wyceny godzinowej, gdzie wycenia si\u0119 tylko czas trwania pracy) \u201ehistoryjek\u201d do tzw. \u201ehistoryjki referencyjnej&#8221; (maj\u0105cej przewa\u017cnie warto\u015b\u0107 5 lub 8 Story Point\u00f3w). <\/p>\n\n\n\n<p>Zesp\u00f3\u0142 wsp\u00f3lnie zwykle na sesjach <strong>Planning Pokera<\/strong> wycenia wymagania, por\u00f3wnuj\u0105c \u201ewielko\u015b\u0107\u201d historyjki do historyjki referencyjnej w skali zmodyfikowanego ci\u0105gu Fibonacciego, zwykle przybieraj\u0105cego warto\u015bci 0, \u00bd, 1, 2, 3, 5, 8, 13, 20, 40, 100, ? i \u2615 (znak zapytania oznacza niezrozumienie historyjki, kubek \u2013 pro\u015bb\u0119 o przerw\u0119).<\/p>\n\n\n\n<p>Sama gra polega na tym, \u017ce po kr\u00f3tkim om\u00f3wieniu przedmiotu wyceny, ka\u017cdy z cz\u0142onk\u00f3w zespo\u0142u samodzielnie wybiera kart\u0119 z talii. Po dokonaniu wyboru przez wszystkich cz\u0142onk\u00f3w zespo\u0142u, jednocze\u015bnie odkrywa si\u0119 karty. Wtedy, je\u015bli nie ma jednomy\u015blno\u015bci co do wyceny osoby, kt\u00f3re poda\u0142y najni\u017csze i najwy\u017csze warto\u015bci \u201ebroni\u0105&#8221; swojej wyceny przed reszt\u0105 zespo\u0142u deweloperskiego. Nast\u0119pnie nadchodzi druga tura g\u0142osowania\u2026 i tak a\u017c do osi\u0105gni\u0119cia konsensusu lub rozegrania ustalonej liczby \u201epartii&#8221;.<\/p>\n\n\n\n<p>Zalet\u0105 Planning Pokera jest to, \u017ce je\u015bli kt\u00f3ra\u015b z os\u00f3b w zespole widzi proste rozwi\u0105zanie problemu, kt\u00f3rego nie widzi nikt inny \u2013 najprawdopodobniej da ni\u017csz\u0105 wycen\u0119, wi\u0119c b\u0119dzie musia\u0142a si\u0119 wypowiedzie\u0107 na dany temat (czasami taka metoda \u201eprzymusu&#8221; jest jedyn\u0105 opcj\u0105, by przekona\u0107 nie\u015bmia\u0142\u0105 osob\u0119 do podzielenia si\u0119 pomys\u0142em na implementacj\u0119 z reszt\u0105 zespo\u0142u) lub w drug\u0105 stron\u0119 \u2013 kto\u015b mo\u017ce zauwa\u017cy\u0107 ogromn\u0105 przeszkod\u0119 na drodze implementacji. Sam niejednokrotnie by\u0142em \u015bwiadkiem sytuacji rodem z filmu \u201eDwunastu Gniewnych Ludzi&#8221;.<\/p>\n\n\n\n<p>Podstawowym zadaniem Story Points jest u\u0142atwienie zespo\u0142owi oszacowania zakresu Sprintu.<\/p>\n\n\n\n<p>Znaj\u0105c nasze Velocity (pr\u0119dko\u015b\u0107 wyra\u017con\u0105 liczb\u0105 SP realizowanych per Sprint), jeste\u015bmy w stanie z grubsza oszacowa\u0107, ile Sprint\u00f3w zajmie wytworzenie wystarczaj\u0105cej ilo\u015bci funkcjonalno\u015bci na release lub ile mniej wi\u0119cej funkcjonalno\u015bci dostarczymy na dat\u0119 release.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/10\/kiedy-vs-ile.jpg\"><img decoding=\"async\" width=\"962\" height=\"490\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/10\/kiedy-vs-ile.jpg\" alt=\"Kiedy dostarczymy funkcjonalno\u015bci?\" class=\"wp-image-8276\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/10\/kiedy-vs-ile.jpg 962w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/10\/kiedy-vs-ile-300x153.jpg 300w\" sizes=\"(max-width: 962px) 100vw, 962px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 2 Kiedy dostarczymy funkcjonlno\u015bci?<\/figcaption><\/figure>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Zalety i wady Story Point\u00f3w<\/h2>\n\n\n\n<p>Do zalet Story Point\u00f3w nale\u017c\u0105:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Jest to stosunkowo szybka metoda wyceniania historyjek (w por\u00f3wnaniu do np. wyceniania funkcjonalno\u015bci w godzinach).<\/li>\n\n\n\n<li>U\u017cywanie Planning Pokera wspiera dyskusje na temat funkcjonalno\u015bci, co pomaga w znajdowaniu optymalnych rozwi\u0105za\u0144 i wykrywaniu potencjalnych wyzwa\u0144.<\/li>\n\n\n\n<li>Jest to narz\u0119dzie do wymiany wiedzy, gdzie dyskusja wp\u0142ywa na rozumienie ca\u0142ego systemu przez ka\u017cdego cz\u0142onka zespo\u0142u.<\/li>\n\n\n\n<li>Uniezale\u017cniaj\u0105 estymat\u0119 od liczby i do\u015bwiadczenia cz\u0142onk\u00f3w zespo\u0142u. Dla przyk\u0142adu: funkcjonalno\u015b\u0107 X jest bardziej skomplikowana od funkcjonalno\u015bci Y cztery razy, bez znaczenia czy pracuje nad ni\u0105 osoba z du\u017cym czy z ma\u0142ym do\u015bwiadczeniem \u2013 w przeciwie\u0144stwie do czasoch\u0142onno\u015bci, gdzie jednej osobie historyjka zajmie 4 godziny, a innej 16 godzin.<\/li>\n\n\n\n<li>Zwraca uwag\u0119 w wypadku wysokiej wyceny \u2013 mo\u017ce ona wskazywa\u0107 na niezrozumienie tematu, wymuszaj\u0105c dyskusj\u0119 i dalsz\u0105 (niezb\u0119dn\u0105) klaryfikacj\u0119 wymaga\u0144 lub rozbicie historyjek na mniejsze elementy.<\/li>\n\n\n\n<li>Story Points du\u017co lepiej skaluj\u0105 si\u0119 przy zmianach osobowych w zespole \u2013 zamiast dolicza\u0107 168h za ka\u017cdego dewelopera, SP nadal wyci\u0105gane s\u0105 z danych historycznych, wi\u0119c z pewno\u015bci\u0105 mo\u017cemy stwierdzi\u0107, w jaki spos\u00f3b do\u0142\u0105czenie osoby do zespo\u0142u wp\u0142yn\u0119\u0142o na Velocity.<\/li>\n<\/ul>\n\n\n\n<p>Jak wszystko, tak\u017ce i Story Pointy maj\u0105 swoje wady. Ich problemem jest nadal, niestety:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ich niezrozumienie. Cz\u0119sto przelicza si\u0119 je na jednostki czasu lub wprost nadaje im si\u0119 warto\u015b\u0107 tzw. \u201emendej\u00f3w&#8221;. Jest to chyba najcz\u0119stszy b\u0142\u0105d. Story Pointy to NIE S\u0104 jednostki czasu \u2013 maj\u0105 odzwierciedla\u0107 stopie\u0144 skomplikowania i wysi\u0142ku, a nie czasoch\u0142onno\u015bci. Dla niekt\u00f3rych brzmi to absurdalnie, ale naprawd\u0119 to tak dzia\u0142a \u2013 ca\u0142kiem zreszt\u0105 nie\u017ale \u2013 w wielu zespo\u0142ach na ca\u0142ym \u015bwiecie. Prawdopodobnie zadzia\u0142a te\u017c w Twoim zespole.<\/li>\n\n\n\n<li>Story Points ulegaj\u0105 efektowi tzw. \u201eerozji&#8221; \u2013 z biegiem czasu trac\u0105 one na warto\u015bci, tzn. naturalnym biegiem rzeczy, deweloperzy (\u015bwiadomie lub nie) zawy\u017caj\u0105 wyceny, powoduj\u0105c efekt inflacji \u2013 za wi\u0119cej pracy dostajemy mniej funkcjonalno\u015bci.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">T-shirt Sizes \u2013 czy nie za obcis\u0142a\u2026?<\/h2>\n\n\n\n<p>Kolejn\u0105, popularn\u0105 metod\u0105 estymowania wielko\u015bci zada\u0144 jest T-shirt Size. S\u0142owo \u201ewielko\u015b\u0107&#8221; nie jest tutaj przypadkowe, gdy\u017c opiera si\u0119 na por\u00f3wnywaniu do siebie zada\u0144 pod k\u0105tem w\u0142a\u015bnie rozmiaru. W odr\u00f3\u017cnieniu od Story Points, skupia si\u0119 to na nadawaniu historyjkom rozmiar\u00f3w koszulek, zazwyczaj XS, S, M, L, XL.<\/p>\n\n\n\n<p>Na pocz\u0105tek wybieramy historyjk\u0119, kt\u00f3ra jest typow\u0105, codzienn\u0105 prac\u0105 dewelopersk\u0105 i nadajemy jej wielko\u015b\u0107 M. Reszta odbywa si\u0119 przez por\u00f3wnanie \u2013 np. mniejsza b\u0119dzie mia\u0142a rozmiar S, du\u017co wi\u0119kszy rozmiar XL.<\/p>\n\n\n\n<p>Dalsza cz\u0119\u015b\u0107 mo\u017ce si\u0119 r\u00f3\u017cni\u0107 w zale\u017cno\u015bci od zespo\u0142u. Zwykle polega to na przypisaniu warto\u015bci liczbowej rozmiarowi koszulki, np. S=100, M=200, L=400 itd. i na tej podstawie szacuje si\u0119, ile pracy mo\u017cemy zabra\u0107 do Sprintu (r\u00f3wnie\u017c bazuj\u0105c na warto\u015bciach historycznych).<\/p>\n\n\n\n<p>Oczywi\u015bcie da si\u0119 tak\u017ce robi\u0107 estymaty \u201er\u0119kami&#8221; architekta rozwi\u0105zania. Dla niekt\u00f3rych mo\u017ce to by\u0107 dobre rozwi\u0105zanie, jednak, je\u015bli chcemy z niego skorzysta\u0107, musimy by\u0107 \u015bwiadomi z jakich zalet wyceny za pomoc\u0105 innych technik rezygnujemy.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Estimates or No Estimates \u2013 that is the question<\/h2>\n\n\n\n<p>Tematem, kt\u00f3ry wraca jak bumerang w \u015bwiecie zwinnego software developmentu, jest ruch, kt\u00f3ry sam siebie nazywa \u201e#NoEstimates\u201d, moim zdaniem niepotrzebnie wprowadzaj\u0105c w b\u0142\u0105d i budz\u0105c kontrowersje \u2013 no, ale \u201ereklama d\u017awigni\u0105 handlu&#8221;.<\/p>\n\n\n\n<p>Wydaje mi si\u0119, \u017ce na polskiej scenie Agile nadal panuje zbyt ma\u0142o zrozumienia dotycz\u0105ce tego ruchu. <a href=\"https:\/\/sii.pl\/blog\/estymaty-czy-noestimates-oto-jest-pytanie\/\" target=\"_blank\" aria-label=\"Jest to temat na zupe\u0142nie inny artyku\u0142 (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">Jest to temat na zupe\u0142nie inny artyku\u0142<\/a>, jednak postaram si\u0119 przedstawi\u0107 jego esencj\u0119.<\/p>\n\n\n\n<p>Sama filozofia #NoEstimates opiera si\u0119 na tym, \u017ce nale\u017cy w ko\u0144cu zaakceptowa\u0107 fakt, \u017ce estymaty s\u0105 niedok\u0142adne i nie b\u0119d\u0105 ju\u017c dok\u0142adniejsze. W zwi\u0105zku z tym, zamiast skupia\u0107 si\u0119 na dok\u0142adnym estymowaniu, nale\u017cy ograniczy\u0107 czas \u201emarnowany&#8221; na estymowanie. Ale jak? Tutaj ju\u017c pe\u0142nej zgody nie ma.<\/p>\n\n\n\n<p><a href=\"https:\/\/sii.pl\/blog\/estymaty-czy-noestimates-oto-jest-pytanie\/?category=zarzadzanie-projektami&amp;tag=agile%2Cagile-atlassian-competency-center%2Ccentrum-kompetencyjne-agile-atlassian%2Cestymacja%2Cit%2Cnoestimates%2Cscrum%2Cwyceny&amp;preview_id=8900&amp;preview_nonce=3b1caf0576&amp;preview=true&amp;_thumbnail_id=8903\" target=\"_blank\" rel=\"noopener\">Ale o tym wi\u0119cej w nast\u0119pnym artykule.<\/a> \u017beby podsyci\u0107 Wasz apetyt zostawi\u0119 tutaj tego <a href=\"https:\/\/twitter.com\/RonJeffries\/status\/943790497981706242?ref_src=twsrc%5Etfw\" target=\"_blank\" rel=\"noopener\" rel=\"nofollow\" >tweeta od Rona Jeffriesa<\/a>, jednego z tw\u00f3rc\u00f3w Extreme Programming:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>I am not sure I invented story points but if I did I\u2019m sorry now. ?<\/p>\n\n\n\n<p>\u2014 Ron Jeffries (@RonJeffries)<\/p>\n\n\n\n<p>21 grudnia 2017<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Podsumowanie<\/h2>\n\n\n\n<p>Nie wiem, czy Story Pointy pozwoli\u0142yby mi si\u0119 lepiej dogada\u0107 z mam\u0105 \u2013 w ko\u0144cu nie interesowa\u0142 jej wynik Sprintu (meczu), tylko to, \u017ceby sko\u0144czy\u0142 si\u0119 na czas. <span class=\"f1yhv2qy emoji-common-node\"><span class=\"emoji-common-emoji-sprite\">&nbsp;<\/span><\/span><\/p>\n\n\n\n<p>Mam nadziej\u0119, \u017ce troch\u0119 Wam si\u0119 rozja\u015bni\u0142o. Je\u015bli nie \u2013 ciesz\u0119 si\u0119 jeszcze bardziej. Nie ma nic lepszego ni\u017c konstruktywna dyskusja, do kt\u00f3rej zach\u0119cam w komentarzach. <span class=\"f1yhv2qy emoji-common-node\"><span class=\"emoji-common-emoji-sprite\">&nbsp;<\/span><\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a<\/h3>\n\n\n\n<p>[1] Conte, S.D., Dunsmore, D.E. and Shen, V.Y. <em>Software Engineering Metrics and Models<\/em>, cytuj\u0119 za: Dina S. Ahmed <em>Is your project\u2019s best estimation method Agile or conventional? <\/em>[dost\u0119p 20.02.2019]<\/p>\n\n\n\n<p>***<\/p>\n\n\n\n<p>Artyku\u0142 zostal opublikowany po raz piewszy 07.10.2019<\/p>\n\n\n\n<p>&nbsp;<\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-left kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;left&quot;,&quot;id&quot;:&quot;8275&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;11&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;5&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;11&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;5\\\/5 ( votes: 11)&quot;,&quot;size&quot;:&quot;18&quot;,&quot;title&quot;:&quot;Estymaty w Scrumie&quot;,&quot;width&quot;:&quot;139.5&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} ( {votes}: {count})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 139.5px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 14.4px;\">\n            5\/5 ( votes: 11)    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>W historii \u015bwiata mieli\u015bmy do czynienia z kilkoma \u201eodwiecznymi\u201d walkami. Walka dobra ze z\u0142em. Walka prawicy i lewicy. Walka o &hellip; <a class=\"continued-btn\" href=\"https:\/\/sii.pl\/blog\/estymaty-w-scrum\/\">Continued<\/a><\/p>\n","protected":false},"author":183,"featured_media":29189,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_editorskit_title_hidden":false,"_editorskit_reading_time":7,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","inline_featured_image":false,"footnotes":""},"categories":[1318],"tags":[90,830,849,850,91],"class_list":["post-8275","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-zarzadzanie-projektami","tag-agile","tag-estymaty","tag-no-estimates","tag-planning-poker","tag-scrum"],"acf":[],"aioseo_notices":[],"republish_history":[],"featured_media_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2019\/10\/Estymaty-w-Scrum.jpg","category_names":["Zarz\u0105dzanie projektami"],"_links":{"self":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/8275"}],"collection":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/users\/183"}],"replies":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/comments?post=8275"}],"version-history":[{"count":3,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/8275\/revisions"}],"predecessor-version":[{"id":29192,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/8275\/revisions\/29192"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media\/29189"}],"wp:attachment":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media?parent=8275"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/categories?post=8275"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/tags?post=8275"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}