Pracuję od kilku miesięcy w firmie, która ocenia (dla populacji ogólnej, a nie dla juniorów) zadania, a następnie dostajemy zadanie, rozwiązujemy je, przechodzi dwa testy, a na koniec szacunek powinien być nieco spełnione.
Jestem zestresowany, ponieważ niektóre szacunki są po prostu niemożliwe do spełnienia. Nadal nie znam całego systemu (ponieważ jest dość pokaźny), więc czasami połowa czasu spędza się na szukaniu tego, co muszę zrobić i gdzie, a kiedy skończę, czasem szacunek się kończy i nadal czekają testy zrobione (i poprawienie błędów, jeśli takie były).
Za drugim razem, gdy mam do czynienia z podobną funkcjonalnością, wszystko działa znacznie szybciej, ale do tej pory mam wrażenie, że jestem po prostu zły w programowaniu.
Czy jest coś, co zrobiłeś na początku, co pomogło ci przejść przez ten etap? Jestem tak zestresowany, gdy widzę, jak mało czasu ma na kodowanie, że czasami nie mogę nawet właściwie skupić się na tym, co robię, co czyni go jeszcze gorszym.
źródło
Odpowiedzi:
Wielu programistów z niewielkim doświadczeniem w zarządzaniu ocenia zadania przy użyciu własnej prędkości lub prędkości „najlepszego” programisty w zespole.
Prędkość zmienia się wraz z doświadczeniem. Starszy programista może zająć 3 godziny, aby rozwiązać problem, a rozwiązanie tego samego problemu zajmie Ci 2 dni robocze.
Rzadko można uniknąć stresu, podejmując nową pracę. Po kilku miesiącach zwykle poprawia się, zakładając, że włożysz wystarczająco dużo pracy i zadajesz wiele istotnych pytań.
Twoi seniorzy mogą nie być świadomi tego, co myślisz o szacunkach, dlatego ważne jest, aby zapytać ich, czego od ciebie oczekują.
Z mojego doświadczenia:
Myślę, że starszy programista lub menedżer powinien być w stanie oszacować historię użytkownika (wymagania biznesowe) pod względem rozmiarów koszulek (XL, L, M, S, XS).
Zadaniem programistów jest podzielenie historii użytkownika na mniejsze zadania i ich oszacowanie. Duże zadanie może zająć starszy programista dzień, a może zająć cały tydzień.
Bardzo ważne jest, aby zapisać, ile czasu zajęło ci wykonanie zadania.
Dobry kierownik projektu lub starszy programista stale zbierałby te statystyki. Gdy Twoja wydajność wzrośnie, będą o tym świadomi i wyślą więcej pracy na twój sposób.
To nie tylko sprawi, że twoje życie będzie mniej stresujące, ale także pozwoli działowi efektywnie zarządzać swoimi zasobami.
źródło
Porozmawiaj o tym ze swoim kierownikiem zespołu, kierownikiem projektu i / lub kimkolwiek, kto dokonuje oszacowania; nie my. Ludzie rozumieją, że nie wszyscy podejmują takie same wysiłki i mogą albo dostosować prognozy, kiedy zadanie jest przydzielone, albo przynajmniej rozwiać wszelkie obawy związane z okresem przeglądu.
To jest, moim zdaniem, powód, dla którego szacunki powinny być wykonywane przez osoby wyznaczone do zadania (z wkładem / współpracą od lidera / rówieśników). Uzyskujesz dokładniejsze dane szacunkowe dotyczące czasu, jaki praca zajmie ludziom.
źródło
Nie mogę sobie wyobrazić gorszej pozycji, w której mógłbym postawić młodszego programistę, niż stawiać oczekiwania, których nie będą w stanie dotrzymać, chyba że oczywiście robią to, by cię rzucić. Czy miałeś jakieś realne konsekwencje dla nieosiągnięcia szacunków?
Powiedziałbym najpierw, że ważne jest, abyś sam nauczył się szacować. Kiedy otrzymasz zadanie, natychmiast oszacuj, ile zajmie, a następnie zacznij znajdować różnicę między nimi. Mogę się prawie założyć, że jakość jest poświęcana w początkowej krótkiej ocenie. Jeśli po prostu oczekują, że będziesz projektować i rozwijać przedmioty szybciej niż możesz, być może będziesz musiał porozmawiać z kimś, aby rozwiązać problem.
Po drugie, zrozum, że jakość jest cechą, za którą interesariusze, twój szef, decydują się zapłacić. Może to być coś, co musisz poświęcić, robiąc trochę, aby spełnić wymagania w danym czasie.
Tak czy inaczej, wyeliminuj stres, nie jest przyjemnie kontynuować uczucie, że zawsze jesteś za pisaniem złego kodu. Mam nadzieję że to pomoże.
źródło
To jest powszechne.
Zasadniczo lepiej jest podawać większe szacunki niż mniejsze (w większości przypadków i tak przekraczasz szacunki). Radzę ci podzielić zadanie na możliwie najmniejsze podzadania i oszacować je przy każdym zadaniu nie dłuższym niż 4 godziny.
Jeśli zadanie może potrwać dłużej niż 4 godziny, podziel je na inny zestaw podzadań. Dodaj również procentowy bufor dla zadań, których nie możesz teraz przewidzieć (moje osobiste preferencje to 1 nieoczekiwane zadanie na każde 2 szacowane zadania, przy czym każde nieoczekiwane zadanie zajmuje 2–4 godz., W zależności od systemu, z którym pracujesz).
Następnie dodaj czas, jaki Twoim zdaniem zajmie testowanie, komunikacja, analiza itp.
źródło
Po pierwsze: jeśli przyspieszasz przy każdej próbie rozwiązania problemu, prawdopodobnie nie jesteś złym programistą. Usuńmy tę myśl z drogi.
Sugerowałbym, że to porażka twoich menedżerów, ale Twoim zadaniem jest sprostać oczekiwaniom.
Zamiast bić się za to, że nie jesteś w stanie dotrzymać nierealistycznych terminów, zmierz ile dni pracy możesz faktycznie wykonać w ciągu tygodnia. Następnie wytłumacz swojemu zespołowi, że jesteś nowy w biznesie i rozwoju oprogramowania, i możesz oczekiwać, że n-dniowa praca programisty w standardowym tygodniu będzie większa. Powinni przynajmniej to zrozumieć, nawet jeśli im się to nie podoba.
Powiedz im, że oczekujesz dalszej poprawy i pokaż, jak możesz zmierzyć tę poprawę. I zgódź się z nimi, że nie spodziewasz się pensji seniora, dopóki nie wykonasz 5 dni pracy dla programisty w ciągu tygodnia. Ale podobnie nie oczekujesz takich samych obowiązków jak starszy, gdy nie otrzymujesz prawie tyle samo.
Mówiąc dalej, dlatego jestem zdecydowanym zwolennikiem używania punktów historii zamiast godzin do oszacowania. to znaczy. Każde zadanie otrzymuje pewną liczbę punktów, a zespół ocenia, ile punktów można osiągnąć w danym okresie czasu. W następnym okresie szacunek jest taki sam jak w poprzednim okresie, skorygowany o znane czynniki, takie jak ciężki miesiąc wakacyjny lub odejście dewelopera.
Jako menedżer, kiedy pojawia się nowy programista (młodszy lub starszy), wyjaśniam firmie, że nie zwiększymy szacunków w pierwszej kolejności. Oczekuje się, że programista zajmie tyle samo czasu od innych programistów, ile zaoszczędzi. Nowy programista prawdopodobnie poradzi sobie lepiej, ale mantra to niedorzeczność i nadwyżka.
Deweloper poprawi się z czasem, starszy szybciej niż junior, a wraz z nim poprawi się „prędkość” zespołu - szacunkowa wartość z miesiąca na miesiąc.
źródło
Zachowaj spokój i nie przerywaj. Jeśli kiedykolwiek pojawił się problem niespełnienia szacunków, po prostu powiedz im to samo, co napisałeś w swoim poście, lub jeśli czujesz się niepewnie, porozmawiaj o tym z mentorem / szefem zespołu na własną rękę.
Szacunki są właśnie takie, szacunki. Mogą i będą wyłączone, zwłaszcza gdy uczysz się lin. A jako junior najprawdopodobniej uczysz się lin jako członek zespołu w tym konkretnym projekcie, jako programista wykorzystujący dowolną technologię i jako pracownik w Twojej firmie. A jeśli pracujesz z rozsądnymi ludźmi, oczekują, że nie będziesz miał szacunków.
Prawdopodobnie patrzysz na zadania, które otrzymujesz „od podstaw”. Twoje zadania są dla Ciebie ważniejsze niż duży obraz projektu, nad którym pracujesz - to zrozumiałe. Widzisz szacunki jako nałożone na ciebie ograniczenia i oczywiście niepokoi Cię, gdy ich nie spełniasz.
Ale kiedy spojrzysz na duży obraz, zobaczysz, że szacunki, nawet bardziej niż „cele” dla programistów, są „sygnałami” dla potencjalnych klientów / kierowników projektów. Podział pracy na zadania i ich oszacowanie jest sposobem na zmniejszenie złożoności zarządzania i oszacowania całego projektu. Śledzenie faktycznej pracy wykonanej w porównaniu z szacunkami jest sposobem na monitorowanie realizacji projektu, ale jest to tylko jeden z mierników, które można zastosować. Gdy szacunki nie są regularnie spełniane, jest to sygnał dla kierownika, że coś jest nie tak z projektem. Ale w żadnym rozsądnym projekcie nie będzie faktu, że w zespole jest młodszy programista, który nie spełnia oczekiwań.
źródło
Pozwól, że przedstawię cię moim dwóm znajomym, WAG i SWAG
Tj. „Wild Assed Guess” i „Scientific Wild Assed Guess”
Wierzcie lub nie, nie wymyśliłem tego. W rzeczywistości są dość powszechne w biznesie. Spójrz na ten artykuł aby zobaczyć, co mam na myśli.
Najlepiej jest podać dokładne oszacowanie, ale jeśli nie możesz, lepiej stwierdzić, że oszacowanie jest przybliżone z powodu niepełnych danych, niż kłamać.
Kluczem jest to, że biznes nie jest programowaniem komputerowym. Zarządzanie oczekiwaniami jest ważniejsze niż precyzja. Ważne jest, aby ocenić czas, który Twoim zdaniem zajmie plus 10% na pokrycie ewentualnych nieprzewidzianych problemów.
Jeśli przeszacujesz, będą szczęśliwi, gdy skończysz z czasem do stracenia. Jeśli nie docenisz, nie będą rozczarowani, jeśli dotrzymasz terminu, lub bardzo rozczarowani, jeśli coś pójdzie nie tak.
Biznes to szara strefa, przez którą niektórzy ludzie zyskują intuicyjny charakter. Fakt, że proszą młodszego programistę o samodzielne podejmowanie tego rodzaju decyzji, mówi jedno. Albo nie ma nikogo, kto byłby w stanie podjąć takie decyzje, albo menedżerowie nie chcą ponosić odpowiedzialności za niepowodzenia.
Odłożyłbym moje pieniądze na to drugie, jeśli pracujesz dla dużej organizacji. Gdy zhierarchizowany model biznesowy staje się wystarczająco duży, góra jest tak daleko od dołu, że przełożeni mogą mierzyć postęp tylko na podstawie tego, co otrzymują na papierze. To okropne środowisko, ponieważ promocje zazwyczaj nie są popełniane. Ale ludzie, którzy dostają awanse, unikają porażek, spychając swoje obowiązki na innych (tj. Ślepą niekompetencję) i przypisując im sukcesy ludzi znajdujących się niżej w łańcuchu.
Niestety programiści są łatwymi celami do rzucenia „pod autobus”, ponieważ bez względu na to, jak duży jest problem, postaramy się znaleźć rozwiązanie. Kluczem jest to, aby nie poświęcać więcej czasu na ustalenie sposobu oszacowania problemu niż na wdrożenie rozwiązania.
źródło
To trudne miejsce. Wygląda na to, że utknąłeś na etapie „tylko dostarczenia” tego rurociągu.
Przez lata zauważyłem następujące informacje na temat szacowania: Jakość oszacowania można ustalić, odpowiadając (pod właściwą nazwą) na trzy następujące pytania.
Jakość oszacowania jest odwrotnie proporcjonalna do liczby różnych nazwanych osób. Na przykład: najlepszym oszacowaniem jest, gdy ta sama osoba wykonała wszystkie trzy powyższe zadania, słabym oszacowaniem jest, gdy jedna osoba zaprojektowała / oszacowała, a inna wykona wdrożenie, a najgorszym oszacowaniem jest to, na które odpowiedzą wszystkie trzy pytania unikalna nazwa.
źródło