W projekcie IT:
- Kto powinien uczestniczyć w szacowaniu czasu? Deweloper, lider zespołu, scrum master itp.?
- Czyj głos należy liczyć najbardziej?
W projekcie IT:
Odpowiedzi:
Nie chodzi tylko o zaangażowanych ludzi, ale o umiejętności, które muszą być obecne:
Dobre zrozumienie dziedziny problemu - jest to szczególnie ważne, gdy wymagania są niejednoznaczne lub na wysokim poziomie. Jako programista, który nigdy nie pracował w podróży, aby oszacować pracę dotyczącą klas biletów w samolocie i założy, że są 3 lub 4 (ekonomia, biznes, najpierw itd.), Ale jeśli pracowałeś w podróży, będziesz wiedział że są dziesiątki. Może to oznaczać zaangażowanie analityka biznesowego lub eksperta, choć z czasem sami programiści zdobędą taką wiedzę.
Zrozumienie technologii i pracy, która będzie zaangażowana - zwykle programista, choć menedżer z niedawnym doświadczeniem, który ma pewność zespołu, często może wykonać tę pracę. Idealnie byłoby, gdybyś dostał osobę, która faktycznie wykona pracę w ten sposób, że została kupiona w oszacowaniu.
Zrozumienie procesu szacowania - to klucz. Konieczne jest zrozumienie, jak dokonać przyzwoitej oceny, jak upewnić się, że jest poprawna, sprawdzić odpowiedni poziom nieprzewidzianych okoliczności, sprawdzić podwójne liczenie lub zbyt duże wypełnienie. Zazwyczaj przynosi to PM, kierownik ds. Rozwoju lub starszy programista, chociaż w niektórych procesach solidny szablon szacowania może dostarczyć niezbędnych wskazówek.
Umiejętności te mogą dotyczyć jednej osoby, chociaż czasami będą potrzebować trzech lub więcej, ale kluczowe jest upewnienie się, że umiejętności te są obecne, a nie że konkretni ludzie są obecni.
To powiedziawszy, choć ogólnie szukam więcej niż dwóch osób, ponieważ potrzebujesz dodatkowej gwarancji, że dwie lub więcej osób sprawdza siebie nawzajem.
Jeśli chodzi o to, czyj głos jest liczony najbardziej, tak to nie działa. To dyskusja i negocjacje. Jeśli menedżer uważa, że ocena deweloperów jest zbyt wysoka, musi wyjaśnić powód i rzucić wyzwanie (nie naciskać) deweloperowi, aby uzasadnił to i musi osiągnąć konsensus. W przypadku, gdy nie możesz osiągnąć tego porozumienia, z doświadczenia powiedziałbym dwie rzeczy:
(a) Nie idź z liczbą, którą „chcesz”, to po prostu prośba o kłopoty, a to, czego chcesz, nie ma istotnego wpływu na to, jak szybko można wykonać pracę.
(b) Prawie w każdym przypadku, w którym widziałem, w którym deweloper został rozstrzygnięty w oparciu o dane szacunkowe, ostateczna liczba zbliżyła się do tego, co myślał deweloper, niż ktokolwiek nad nimi rządził - głównie dlatego, że zignorowali punkt (a) powyżej.
(To powiedziawszy w Agile, a na pewno w XP, reguła jest taka, że programiści kontrolują oszacowania i to jest ostateczne. Jeśli użytkownicy chcą obniżyć oszacowania, muszą zmienić wymóg czegoś prostszego.)
Nie wiem, czy odpowiedź na to pytanie jest jak najbardziej uniwersalna. Tam, gdzie pracuję, zwykle dwóch inżynierów z zespołu wdraża funkcję / poprawkę, która zapewnia oszacowanie. Każdy z dwóch inżynierów zapewnia oszacowanie „min”, „maks” i „oczekiwany”. Zazwyczaj spodziewalibyśmy się, że oba oszacowania będą racjonalnie spójne, więc jeśli są bardzo różne, wówczas może być wymagana dalsza dyskusja (być może jeden inżynier przyjął założenia, że drugi nie, itp.).
W naszej sytuacji nikt nie głosuje jako taki. Zazwyczaj po prostu uśredniamy dwa oszacowania (pamiętaj, że jeśli nie są jeszcze w tym samym parku, odrzucamy oba i rozpoczynamy od dyskusji, więc obliczenie średniej nie jest dużym skokiem). Szacunki są przecież tylko szacunkami, więc nie muszą być dokładne .
Z mojego doświadczenia wynika, że szacunki zwykle wykonuje osoba, która najprawdopodobniej sama wykona zadanie. Zespoły SCRUM powinny dążyć do interdyscyplinarności, ale po pewnym czasie niektóre rodzaje zadań są zwykle wykonywane przez te same osoby.
Niezwykle ważne jest uzyskanie zgody zespołu na wszystkie szacunki. Jeśli deweloper uzna, że jest właścicielem prognozy, będzie starał się ją zrealizować. Jeśli programiści otrzymają oszacowanie, że nie zrobili tego sami i nie mieli na to wpływu ani wpływu, nie będą odczuwać tego samego poziomu odpowiedzialności, a przekroczenie stanu konta zostanie wyjaśnione słowem „Powiedziałem, że to potrwa dłużej”.
Projekt ma wymagania biznesowe i terminy z góry na dół. Są to „dane szacunkowe” dla pierwszej iteracji.
Wymagania te należy podzielić na największe zadania o 100% znanym koszcie (np. „Włącz rejestrowanie” = 2 godziny = „pobierz log4j / SLF4J i podłącz”).
Oszacowania należy dokonać na najwyższym możliwym poziomie, który ma już wystarczającą wiedzę techniczną, aby to zrobić.
Skorygowane szacunki muszą cofnąć się w górę w postaci „widocznej dla firmy funkcji” = „tyle czasu”, aż dotrą do właściciela firmy na odpowiednim poziomie, w stanie porzucić / zmienić wymagania lub złagodzić terminy. Potem z powrotem w dół. Do ostatecznej konwergencji. W praktyce ludzie zwykle ignorują tę fazę lub ją upraszczają, co z kolei może stwarzać ryzyko związane z niedotrzymywaniem terminów i szans.
DEWELOPERZY WYKONANI Z REALIZACJĄ PROJEKTU! NIKT WIĘCEJ!
Jedynie programiści wykonujący rzeczywistą pracę i kierownicy zespołów programistycznych są w stanie właściwie oszacować, ile czasu to naprawdę zajmie. Tylko programiści znający rzeczywistą bazę kodu mogą zrozumieć potencjalne trudności i pułapki, które mogą wystąpić w trakcie programowania. Wszyscy inni są „widzami”.
Ponadto jedynym sposobem, w jaki można ufać programistom w podawaniu dokładnych szacunków, jest zaufanie przedsiębiorców i poleganie na ich wiedzy specjalistycznej, dzięki czemu programiści wiedzą, że nie zostaną ukarani, jeśli ich szacunki nie spełnią oczekiwań firmy.
Ogólna zasada: zajmie to co najmniej 3 razy więcej niż szacunek każdego kierownika projektu lub osoby nie znającej dokładnie wyzwań związanych z rozwojem i omawianej bazy kodu.
Jako osoba, która przez prawie 20 lat pracowała jako programista zarówno jako wolny strzelec, jak i pracownik w dużych korporacjach, mówię to z najwyższą pewnością i z dużym doświadczeniem gorzkim.