Zastanów się nad punktem widzenia kierownika projektu
Prosząc o złożoność, chcą liczby, którą mogą porównać z następnym sprintem, aby znaleźć twoją prędkość jako zespół. Być może próbują go wykorzystać, aby zsumować Twój wynik z szacunkami z innych zespołów, aby uzyskać ogólne oszacowanie, kiedy wszystkie historie zostaną ukończone.
Kierownik projektu szuka oszacowania, kiedy projekt zostanie ukończony, lub jeśli są elastyczne po drugiej stronie trójkąta czas-funkcja-koszt, jakie inne odchylenia można wyciągnąć, aby dopasować je do pozostałego czasu. To nie jest nierozsądne. Decyzje biznesowe będą musiały być podejmowane na podstawie tych szacunków. Problem polega na tym, że naprawdę trudno jest to oszacować dla oprogramowania. Planowanie pokera jest jednym ze sposobów na rozwiązanie tego problemu. Zamiast postrzegać to jako zwykłe zsumowanie liczby punktów opowieści, pomyśl raczej o bardziej złożonej funkcji szacowania tak dobrze, jak to możliwe, wykonując pracę, mierząc, ile czasu to zajęło, iterując, a następnie ekstrapolując.
Dyskusja jest ważniejsza niż liczba
Uważam, że najważniejszą częścią spotkań wskazujących na historię są nadchodzące dyskusje. Jeśli ktoś w zespole nie ma pewności, co do liczby, sugeruje, że nie do końca rozumie historię i trzeba więcej dyskutować. Z Manifestu Zwinnego „Współpraca z klientem przy negocjowaniu umowy”. Zamiast tylko określać umowę napisaną jako historia użytkownika i mówić, że zespół zawiódł, jeśli nie zrobi dokładnie tego, czego chcesz, zawsze lepiej jest rozmawiać o tym, czego naprawdę chce klient, dopóki go nie zrozumiesz.
Złożoność a wysiłek
Aby odpowiedzieć na twoje konkretne pytanie dotyczące złożoności a wysiłku, wydaje się, że każdy ma inne zdanie na ten temat. Mountain Goat , którzy tworzą karty do gry w pokera z kozami i których właściciel Mike Cohn jest duży w świecie Agile / Scrum, mówią, że powinien to być wysiłek, a nie złożoność.
Zwykle nie jest to miara czasu (patrz przykład poniżej dla licznika), ponieważ ludzie źle oceniają czas, a inne czynniki wpływają na liczbę, którą podają: np. Nacisk na utrzymanie niskiej liczby, abyś mógł dopasować więcej funkcji nacisk, aby dać wyższą liczbę, aby dać sobie trochę miejsca, jeśli napotkasz problem. Tworzenie oprogramowania jest trudne. Kiedy budujesz swój 100. dom, możesz oszacować, jak długo to zajmie, ponieważ wcześniej zbudowałeś 99 domów. Jeśli oprogramowanie, które budujesz, jest takie samo, jak poprzednie programy, które zbudowałeś, możesz je kopiować i wklejać, każdy projekt oprogramowania jest inny, a więc będą miały problemy, których nie przewidziałeś na początku.
Podobnie jak w przypadku szacunków czasowych zawierających ukryte naciski, tak i wysiłek ma również problemy. Jeśli młodszy programista oceni wysoką złożoność, może poczuć, że naraża się na atak, ponieważ nie jest wystarczająco dobry od innych, którzy oceniliby go niżej. Jest to szkodliwe nie tylko dla twoich szacunków, ale dla ludzi w zespole.
Planowane liczby pokerowe nie są „liczbą dni” ani inną miarą czasu, są względną miarą umożliwiającą porównanie dwóch historii użytkowników. Pierwszą rzeczą, którą musisz zrobić w nowym zespole, jest ustalenie linii bazowej. Wybierz jedną historię użytkownika, która znajduje się w środku zakresu złożoności i uzgodnij jako zespół liczbę w środku zakresu, którą chcesz mu przypisać. Teraz wszystkie inne historie użytkowników mogą być ponumerowane w stosunku do tego. Odkryłem, że to znacznie ułatwia.
Powody, dla których nie możesz podać szacunku
Kiedy menedżerowie projektu pytają o termin realizacji projektu, muszą zrozumieć złożoność zadanego pytania. Programiści nie są pracownikami fabrycznymi, których wydajność można zmierzyć, mnożąc szybkość pisania przez czas pracy. Wymyślają odpowiedzi na problemy i to jest trudne. Grając w pokera planistycznego, najpierw identyfikujesz, kto w zespole czuje, że nie może odpowiedzieć na pytanie, jaki numer przypisać, a następnie wykopujesz, dlaczego nie mogą odpowiedzieć na to pytanie. Myślę, że istnieją co najmniej cztery powody:
- Historia jest za duża. Podziel go na mniejsze, bardziej szczegółowe historie użytkowników. Pamiętaj, że każda historia użytkownika powinna zapewniać użytkownikowi jedną wartość; input - process - output = wartość.
- Nie rozumieją wystarczająco dobrze dziedziny problemów, aby móc powiedzieć, ile czasu to zajmie, a nawet poprawnie zadać wszystkie pytania. Idź porozmawiać z ludźmi, którzy wiedzą więcej na temat domeny interesariuszy / programowania tego rodzaju aplikacji, bez względu na to, czego wcześniej nie widziałeś. Jeśli nie jest to możliwe lub nie prowadzi cię do końca, możesz użyć kolca do projektowania. Idź i prototypuj rozwiązanie, ale tylko przez ograniczony i określony czas. Określ, jak długo potrwa faza prototypowania, nie za długo, a następnie spotkaj się ponownie, aby podzielić się swoim nowym zrozumieniem.
- Twoi interesariusze nie są wystarczająco konkretni. „Zbuduj mi chmurę” to niedopuszczalna historia użytkownika. „Zbuduj mi system, w którym mogę rozkręcać maszyny wirtualne na żądanie” jest lepszy, ponieważ jest dalej rozbity, ale wciąż nie jest na poziomie, na którym możesz podać dokładne oszacowanie, ile czasu zajmie ci to, ponieważ będzie sto ukrytych założenia zawarte w tym oświadczeniu, że interesariusz ma, że nie dowiesz się, dopóki mu czegoś nie pokażesz.
- Wreszcie, nawet jeśli potrafisz podać szacunek, prawdopodobnie będzie to pierwszy raz źle. Szacowanie jest trudnym problemem, a najlepszym sposobem na rozwiązanie trudnych problemów jest użycie metody naukowej. Zbieraj dane o tym, jakie liczby szacuje każdy członek zespołu, a następnie zbieraj dane o tym, ile czasu to naprawdę zajęło lub jak „skomplikowane” było naprawdę, chociaż jest to trudniejsze, a następnie porównaj je w czasie. W końcu poczujesz, kto przecenia, a kto nie docenia, a następnie powinieneś podzielić się tym z zespołem. Ludzie mogą sobie nawzajem pomóc w lepszym oszacowaniu. Liczby te można również wprowadzić z powrotem do narzędzia śledzącego, aby lepiej przewidzieć, jak długo potrwają historie.
Wniosek
Uważam, że tak naprawdę powinna istnieć dyskusja, ale jeśli naprawdę musisz podać komuś numer, spróbuj po prostu uczynić go niezależnym od tego, który członek zespołu nad nim pracuje i w jakiej kolejności są opracowywane historie. Chodzi o to, aby uzyskać dostęp do dziennika wstecznego, który ma zarówno priorytety, więc pracujesz nad nimi we właściwej kolejności i wielkości, aby Kierownik Projektu mógł z grubsza zobaczyć, ile więcej możesz zmieścić przed upływem terminu. Powinieneś być w stanie zatrzymać się na końcu każdej iteracji i wysłać wszystkie ukończone funkcje, które zostały uruchomione.
Ostrzeżenie
Możesz oszacować czas na wykonanie zadań w zespole tak długo, jak chcesz, pod warunkiem, że zachowujesz liczby dla siebie. Gdy pozwolisz, aby jakikolwiek numer uciekł z zespołu i był widoczny dla innych osób, zrobią rzeczy z tym numerem, którego nie zamierzałeś. Spróbują wykorzystać to jako liczbę dni do wykonania zadań. Postarają się utrzymać cię na poziomie względnej złożoności i zapytają, dlaczego zajęło ci więcej czasu, aby ukończyć historię jednego użytkownika niż drugą z taką samą liczbą punktów. Dodają do siebie twoje liczby i porównają je z liczbami innych zespołów i zapytają, dlaczego ten drugi zespół „wykonuje więcej pracy”, gdy ukończą więcej punktów historii w określonym czasie. Możesz'
Na bok
Planszowy zestaw liczb w pokerze jest zwykle rozmieszczony tak, że luki między liczbami stają się coraz większe. Uważam, że ma to na celu zniechęcenie ludzi do sporu o to, czy historia użytkownika to 16 czy 17, jeśli jest większa niż 13, po prostu zrób z niej 20.
Przykład
Znam przynajmniej jedną drużynę, która używa liczb 1, 2, 3 i 4 do planowania pokera. Wbrew konwencji i w przeciwieństwie do powyższej dyskusji, określają je jako dni programowania (w rzeczywistości dni programowania w parach, czyli o ile dni zajęłoby dwóch programistów pracujących razem na tym samym komputerze, aby ukończyć historię użytkownika). Jeśli zespół uważa, że ukończenie historii użytkownika potrwa dłużej niż 4 dni, nie jest to wskazane, a właściciel produktu jest proszony o współpracę z zespołem w celu dalszego opracowania historii lub dokładniejszego sprecyzowania, aby mogła zostać uwzględnionym w tym zakresie na przyszłym spotkaniu planistycznym. Ale jest to zaawansowana zwinność i prawdopodobnie powinny być używane tylko przez osoby, które mają już doświadczenie w stosowaniu innych technik.