Zachęcanie inżynierów oprogramowania do śledzenia czasu

24

Jak zachęcić współpracowników do śledzenia czasu poświęcanego na rozwiązywanie problemów i wdrażanie funkcji? Mamy do tego oprogramowanie, ale po prostu nie wpisują liczb.

Chcę, aby zespół był lepszy w dostarczaniu oszacowań projektu, porównując nasze wcześniejsze oszacowania z faktycznym czasem spędzonym. Podejrzewam, że moi współpracownicy nie widzą osobistych korzyści, ponieważ często nie biorą udziału w planowaniu projektów.

M. Dudley
źródło
6
Być może problem polega na tym, że muszą oni wprowadzać liczby zamiast tego, że oprogramowanie śledzi czas i tylko okresowo prosi je o ustawienie opisu działania i zapisywanie w prasie. Napisałem program dla siebie, aby dokładnie to rozwiązać, ponieważ chodziłem cały dzień w strefie, a następnie wynurzałem się i trudno mi wygenerować „dziennik czasu” na ten dzień. Zobacz softwaremonkey.org/Program/TimeKeeper
Lawrence Dol
3
Po prostu zrób im to, co zrobiono mi w jednej firmie, w której pracowałem. Przydziel mu zadanie, natychmiast pozwól mu spędzić 3 nieprzerwane dni na spotkaniach, w których uczestniczysz, a następnie natychmiast po spotkaniu poproś o wyjaśnienie, dlaczego zadanie nie zostało ukończone.
user16764
2
Gdzie mam podać liczby na czas, gdy rozwiążę problem w drodze do domu?
Pieter B
1
@ PieterB IMO, jeśli regularnie spędzasz wystarczająco dużo czasu na myśleniu o problemach z pracą w samochodzie, aby zwiększyć produktywność, to uważam, że należy śledzić czas na szacunki projektu, nawet jeśli jest to nie kompensowane. Nadszedł czas, aby w przeciwnym razie spędzić myślenie przy biurku. Z drugiej strony, jeśli jest to jednorazowe odkrycie w samochodzie, nie sądzę, że warto śledzić, ponieważ nie jest to coś, na podstawie czego można by oszacować projekt.
M. Dudley,
1
@PieterB Zdecydowanie szary obszar. Wszystko zależy od tego, czy przydatne jest śledzenie podczas tworzenia harmonogramów i szacunków projektu.
M. Dudley,

Odpowiedzi:

41

Podejrzewam, że moi współpracownicy nie widzą osobistych korzyści, ponieważ często nie biorą udziału w planowaniu projektów.

To można naprawić.

Zaangażuj ich w planowanie.

S.Lott
źródło
2
Jest na to cytat, ale większość moich książek jest wciąż spakowanych. Coś w tym, że sami inżynierowie są najlepsi w planowaniu, więc powinni być zaangażowani w planowanie projektu od 1. dnia. Chcę powiedzieć, że pochodzi on z Rapid Development Steve'a McConnella, ale nie jestem pewien.
Thomas Owens
4
Niedawno widziałem mój projekt (projekt 6-miesięczny), w którym nasz PM przeznaczył 4 godziny na integrację z inną aplikacją. Wystarczy powiedzieć, że integracja zajmie dużo czasu, a ja i inny programista uważamy, że to dość komiczne.
Chris
@ThomasOwens Nadal mnie to zaskakuje za każdym razem, gdy mówi mi się, ile czasu zajmie licencjat lub premier. Ten błąd jest tak dogłębnie obalony, że zasmucające jest to, że uświadomienie sobie, iż oznacza to, że żaden z licencjackich ani premierów nie ma najmniejszego pojęcia o branży, w której pracują.
Jimmy Hoffa
21

Joel Spolsky napisał artykuł na temat planowania opartego na dowodach, który może pomóc ci znaleźć argumenty.

Musisz przekonać swoich współpracowników, że lepsze umiejętności szacowania mogą pomóc im w tworzeniu lepszego oprogramowania. Oto kilka punktów przemawiających za śledzeniem czasu zadania:

  • Jeśli masz arbitralny termin ustalony przez kierownictwo, dobre szacunki pokażą ci, co możesz faktycznie osiągnąć w tym czasie. Jako bonus masz fajne wykresy, aby przekonać menedżera, że ​​wiesz o czym mówisz.
  • Musisz dokładnie przemyśleć projekt. Artykuł, który powiązałem z, stwierdza: „Musisz rozbić swój harmonogram na bardzo małe zadania, które można zmierzyć w godzinach ”. Ponieważ myślałeś o prawie każdym aspekcie projektu (mam nadzieję, że napisałeś specyfikację !), Jesteś znacznie mniej zaskoczony czymś, o czym nie pomyślałeś.
  • To sprawia, że ​​jesteś lepszym programistą. Z czasem zobaczysz, jakie rodzaje zadań nie doceniasz, więc możesz poświęcić trochę czasu na poprawę tych konkretnych zadań zamiast na ślepą optymalizację.
Michael K.
źródło
1
+1 za drugi punkt. Odkryłem, że wszelkie szacunki, które wykorzystują miarę czasu w dniach lub tygodniach, zawsze będą niedokładne pod względem dni lub tygodni. Jeśli masz kilka godzin wolnego, zawsze możesz dokładniej przeliczyć inne szacunki. A napisanie specyfikacji lub zbudowanie artefaktu PoC zapewnia dokładniejsze oszacowania, chociaż opracowanie oszacowań dla tych elementów nie jest takie proste.
Vineet Reynolds
10

Możesz to zrobić w standardowy sposób - marchewki i laski.

Marchewka (-y) w tym przypadku może być „lepszym przyszłym oszacowaniem poprzez zrozumienie naszej aktualnej prędkości” - ale będziesz musiał przejść dalej.

Twój komentarz, że nie są często zaangażowani w planowanie projektu, może sprawić, że będzie to trudna sprzedaż.

Najbardziej wydajne z nich, szczególnie jeśli masz zwolenników PSP , to to, że pomagasz im się polepszyć.

Najczęstszym kijem (aby je pokonać, nie trzymać marchewki przed sobą) jest „jest to obowiązkowe, zrób to”. Chociaż niewiele motywuje; przynajmniej pozycja jest jasna.

Wreszcie, czy używane oprogramowanie przyczynia się do ich powściągliwości? Czy to jest niezgrabne? Czy muszą szukać kodów czasowych w systemie A, a następnie umieszczać swój czas w systemie B? Czy jest zbyt szczegółowy, nie pozwala na „wyłączony” czas i wymaga rozliczenia 8 godzin dziennie. Uczyń go tak wolnym od tarcia, jak to możliwe, aby również ułatwić adopcję.

Powodzenia

sdg
źródło
5
+1 za ostatni akapit. Ułatw sobie śledzenie czasu, niż nie rób tego, a to nagle magicznie się skończy.
Scott
5
Świetny ostatni punkt - Nienawidziłem konieczności szukania 8-cyfrowej liczby, gdy internetowy internet rozwijalny mógłby być napisany w 10 minut (moje oszacowanie za pomocą kostek szacunkowych, które trzymam na biurku). Nie użyłbym też terminów związanych z zarządzaniem Bingo, takich jak „zrozumienie naszej aktualnej prędkości”, ale raczej „nie będziesz musiał pracować dużo obowiązkowej nieodpłatnej pracy w nadgodzinach, próbując wprowadzić rzeczy pod koniec harmonogramu, jeśli sprawimy, że nasze harmonogramy będą realistyczne, zacząć od."
Wonko the Sane
@Wonko +1 za „kostkę szacunkową” :-)
sdg
8

Z mojego doświadczenia wynika, że ​​w większości programów do śledzenia czasu występują następujące problemy:

  • Deweloper nie ma zdolności ani uprawnień do dzielenia zadania na łatwiejsze do oszacowania podzadania w locie.
  • Nie ma dobrego sposobu na uwzględnienie podzadań, o których nie wiedziałeś, dopóki nie zacząłeś nad czymś pracować, sytuacja ta pojawia się cały czas przy tworzeniu oprogramowania i debugowaniu.
  • Czas spędzony jest wprowadzany po fakcie, kiedy trudno jest dokładnie zapamiętać, ile wysiłku poświęcono na zadanie, a ile na spotkania, pytania kolegi, recenzje i inne koszty ogólne.
  • Nie ma dobrego sposobu na rozliczenie nieśledzonych zadań. Czy na koniec dnia odkładasz 8 godzin, mimo że 6 z nich poświęcono na spotkania i tak dalej?
  • Nie ma dobrego sposobu na uwzględnienie i zakomunikowanie niepewności w swoich szacunkach.

Rozwiązałem wiele z tych problemów, zacząłem sam stosować technikę pomodoro. Jeśli pracuję 25 minut nieprzerwanie nad zadaniem, jest ono natychmiast rejestrowane, a moje szacunki są dokonywane w odniesieniu do tych nieprzerwanych interwałów. Nadal pracuję nad wprowadzeniem harmonogramu opartego na dowodach, aby przekazać niepewność, oraz nad przełożeniem mojego dokładnego śledzenia na gruboziarniste harmonogramy, które podobają się PM, ale jak dotąd zdecydowanie poprawa.

Karl Bielefeldt
źródło
6

Dobry sposób

Używaj oprogramowania, które sprawia, że ​​jest to łatwe i prawie przejrzyste, na przykład Mylyn. Połącz go z narzędziami, takimi jak na przykład wykres spalania godzin.

Zła droga

Zmuszaj ich do wypełniania żmudnych kart czasu pracy, w których musisz ręcznie określić projekt, zadanie, dokładne daty i godziny itp.

vartec
źródło
3
Mam nadzieję, że wypełniłeś formularz tt-proc-1b, aby zapisać czas poświęcony na udzielenie odpowiedzi na to pytanie, a następnie uzyskać podpis od kierownictwa w celu uzgodnienia czasu spędzonego. i wypełniłeś formularz tt-est-1a, aby zapisać szacunkowy czas, który poświęcisz na udzielenie odpowiedzi na to pytanie, zanim zaczniesz pracę nad odpowiedzią na to pytanie?
gbjbaanb
mylyn / tasktop ... nie jest doskonały, ale na pewno robi wiele w kierunku dobrego śledzenia czasu, podobnie jak efekt uboczny innego narzędzia, które przynosi rzeczywiste korzyści bezpośrednio programistom ... nie jest idealny, ale cudownie wspaniały !!
Newtopian
2

Jeśli nie jesteś szefem zespołu / premierem, będziesz miał problem z tym. Ludzie nie lubią słuchać rówieśników, jeśli wymaga to więcej pracy niż jest to absolutnie konieczne (z mojego doświadczenia wynika, że ​​tak jest w każdym razie). Spróbuj porozmawiać z liderem zespołu lub premierem, a jeśli zgodzą się z twoją sprawą, prawdopodobnie mogą po prostu wprowadzić obowiązek rejestrowania czasu (tak się dzieje w miejscu, w którym obecnie pracuję).

Jeśli jesteś kierownikiem / szefem zespołu, musisz być bardziej zdecydowany w swojej roli: ci ludzie są tam, aby zrobić to, co im powiesz (skutecznie), a jeśli potrzebujesz więcej informacji, aby wykonać swoją pracę, powinieneś ich przekonać Informacja. Jeśli nie są w stanie pomóc ci w uzyskaniu informacji, to prawdopodobnie dlatego, że nie rozumieją, dlaczego jest to przydatne, spróbuj porozmawiać z nimi, aby wyjaśnić, jak często twoje projekty wypadają z harmonogramu / są zawyżone / cokolwiek i dlaczego to powoduje masz problemy, sprawdź, czy możesz je odwrócić!

Ed James
źródło
2

Śledź swój czas lub nie zarabiaj. Robią to miliony ludzi (konsultanci, prawnicy itp.), Dlaczego nie mogą?

Niektórzy mogą myśleć, że to raczej drakońskie, ale nie jest. Jeśli pracujesz w Starbucks, musisz posprzątać łazienkę . Jeśli pracujesz w banku, nosisz garnitur i krawat do pracy każdego dnia , a jeśli jesteś inżynierem oprogramowania w zespole, który potrzebuje ciebie do śledzenia twojego czasu, zrób to !

Czasami musimy robić rzeczy w pracy, których nie lubimy. Wszyscy jesteśmy dużymi chłopcami i dziewczynami, myślę, że powinniśmy sobie z tym poradzić.

Richard
źródło
1
Dokładnie to, co chciałem powiedzieć. Zwłaszcza jeśli masz klientów płacących rachunek - skąd jeszcze możesz wiedzieć, co ich obciążać? Gwarantuję, że jedna spóźniona wypłata, ponieważ ktoś nie załadował swojego czasu, rozwiąże problem na zawsze.
HLGEM
2
Jest to doskonały sposób na pozwanie za niepłacenie za nadgodziny pracownikom, o których twierdzisz, że są zwolnieni z FLSA, ale którzy nie kwalifikują się do zwolnienia, ponieważ dokujesz wynagrodzenie na podstawie wydajności.
Wooble,
1
@Wooble: Oczywiście nie opowiadam się za działaniami, które naraziłyby cię na ryzyko pozwane lub w jakikolwiek sposób niewłaściwe traktowanie pracowników. Ale pomysł jest taki sam. Powinny pojawić się konsekwencje za nie wykonywanie pracy. W wielu przypadkach śledzenie czasu jest częścią pracy. Więc może nie dokujesz pensji, ale ostrzegasz, poddajesz zawieszeniu, cokolwiek to ma sens, ale faktem jest, że musisz wykonywać swoją pracę . Samolubne jest to, że nie, ponieważ wpływa również na wszystkich członków zespołu.
Richard
@HLGEM: Masz rację. Jeśli Twoja umowa z klientem dotyczy T&M, lepiej śledź swój czas lub jesteś nieuczciwy.
Richard
Niestety nie jestem w stanie nakazać śledzenia czasu, więc muszę znaleźć alternatywne metody.
M. Dudley,
1

Oczywiście najlepsza odpowiedź zależy całkowicie od psychologicznej mieszanki twojego zespołu. Czy są konkurencyjne? Zaprojektuj cykliczny konkurs, który nagrodzi zwycięzcę za wprowadzenie czasu do systemu. Dostosuj i dostrój konkurs, aby gracze uznali, że jest uczciwy i przyjemny. Zrób z tego grę.

Być może obawiają się, że gdyby istniała przejrzystość, ile czasu faktycznie poświęcili na wykonanie zadania, miałyby to negatywne konsekwencje. Zawsze zastanawiałem się nad zaprojektowaniem „narzędzia do śledzenia wysiłku”, które byłoby anonimowe i gdzie wiadra miały wystarczająco wysoki poziom, aby wiele osób wlewało do każdego wiadra kwoty wysiłku, których nie moglibyśmy wyróżnić. Nawet uzyskanie dokładniejszych kosztów nakładów dla projektów wysokiego poziomu może być użytecznymi danymi do planowania projektu i ogólnej prędkości zespołu, ale pozwoliłoby to uniknąć „OMG, nie mogę uwierzyć, że Joe wziął trzykrotnie swoje szacunki, aby zrobić coś tak prostego… . ”lub coś, co ludzie boją się zgłaszać w tradycyjnym systemie śledzenia czasu.

Sądzę, że są to tylko dwa przykłady, ale tak naprawdę dobre zrozumienie składu psychologicznego twojego zespołu da ci właściwą odpowiedź, jak zachęcić lub w inny sposób zachęcić ich do przekazania informacji o kosztach.

dossy
źródło
+1 za kwestię przezroczystości. Musiałem raz uruchomić system śledzenia czasu i celowo sprawiłem, że kierownictwo naprawdę ciężko było ustalić dokładny czas rozpoczęcia i zakończenia, zamiast tego mogli po prostu zobaczyć całkowity czas spędzony. W ten sposób nie miało znaczenia, kiedy pracownik wykonał pracę, tylko to, że zostało wykonane i jak długo to trwało. Trochę szczegółów, ale wciąż.
James
1

Zastanów się, dlaczego być może nie reagują dobrze na tę prośbę. Nie zakładaj tylko, że są leniwi lub unikają wysiłku.

Zwykle są to programiści, którzy unikają przedstawiania dowodów

  • Martwiłem się, w jaki sposób można go wykorzystać i / lub
  • Zaniepokojony ważnością danych

Właśnie dlatego w ostatnich latach wzrosła ocena punktowa i dobór koszul . Uwzględnia bardzo niepewny charakter procesu szacowania i pozwala „magii” (czyli uśrednieniu niepewności) przejęcia kontroli nad harmonogramem.

I chociaż może to nie wydawać się logiczne, to w większości działa - przynajmniej tak dobrze, jak system oparty na godzinie lub dniu. Bardzo trudno jest też obalić drużynę lub osobę za głowę osiągnięciami w ciągu miesiąca, jeśli zrobi się to w dowolny sposób.

Scrum pozwala także programistom kontrolować prędkość, co oznacza, że ​​składają obietnicę osiągnięcia wszystkiego, co wybierzesz spośród A, B i C lub A, Y i Z. Po złożeniu tej obietnicy programiści nie lubią zawieść; ale jeśli złożysz im tę obietnicę, nie będzie ich to obchodzić. To twoja wina, jeśli to źle.

Rozumiem, że mówisz, że nie skorzystasz z ponownej oceny w ten sposób, ale jak pewne są osoby z twojego zespołu?

pdr
źródło
1

Każde narzędzie, które wymaga od programistów poświęcenia jeszcze więcej czasu na programowanie, niekoniecznie jest świetną rzeczą. Programiści mają już dużo narzutów, nie odbywają 5 minutowych spotkań, a następnie wywołują burzę.

Jeśli masz moc, możesz zmusić ich do zrobienia tego. Jednak zdecydowanie najlepszym rozwiązaniem jest zbudowanie bezproblemowego narzędzia, które czyni go bezbolesnym. Nie mogę ci powiedzieć, jak to zrobić dla projektu, ale dla kodowania chcesz rejestrować zmiany dokonane w środowisku programistycznym. Kiedyś był to nieprawdopodobnie wysoki pasek, ale jeśli używasz czegoś takiego jak Eclipse, nie jest tak źle, może już istnieje. W ten sposób możesz zmierzyć, ile czasu zajmuje każdy plik i potencjalnie w Javie, każdą metodę. To dużo bardziej szczegółowa informacja, niż można uzyskać, prosząc ją o wystawienie rachunku, i może być dość dokładna.

Podobnie, jeśli masz narzędzie do wprowadzania projektów, możesz tam przechwycić.

Dow
źródło
0

Zależy od tego, jak i dlaczego chcesz, aby śledzili czas, czy my po prostu liczymy czas w biurze lub czas dojazdów do pracy, myśląc również o problemie?

Planowanie projektu jest trudne i istnieje duże prawdopodobieństwo, że uzyskane przez ciebie wskaźniki nie będą tak przydatne, jak mogłoby się wydawać. Żadne dwa problemy nie są takie same, więc jedno zadanie może potrwać osiem godzin, a inne może potrwać 32 godziny.

Możesz przyjrzeć się harmonogramowi opartemu na dowodach, ponieważ ma on oszacowanie przez dewelopera, jak długo zajmie zadanie, a następnie dostosowuje się w miarę upływu czasu na podstawie tego, jak dobre są ich szacunki; jednak nie jest tak dobry w przypadku dużych projektów, ponieważ możesz nie znać wszystkich zadań z góry. W przypadku dużych projektów lepiej byłoby spojrzeć na wcześniejsze projekty o podobnym zakresie i wykorzystać je jako miernik, zamiast próbować agregować poszczególne szacunki.

rjzii
źródło
0

Spróbuj wprowadzić je do systemów organizacji osobistej, takich jak na przykład technika Pomodoro (jest wiele innych, ale tego właśnie próbuję teraz)

Technika ta wykorzystuje zegar do dzielenia okresów pracy na 25-minutowe odstępy zwane „Pomodori” (od włoskiego słowa „pomidory”) oddzielone krótkimi przerwami. Metoda ta, ściśle związana z takimi pojęciami, jak timeboxing oraz iteracyjne i przyrostowe opracowywanie oprogramowania, została przyjęta w kontekście programowania par. Metoda opiera się na założeniu, że częste przerwy mogą poprawić sprawność umysłową.

Shady M. Najib
źródło
0

Zamiast przekonać ich do podania swoich liczb, użyj oprogramowania, które działa bez wysiłku. Używam ScreenAware: https://www.screenaware.com/en/ Śledzi twój czas automatycznie i przypisuje go do odpowiednich projektów. Jest więc zawsze dokładny i nikt nie musi już zgadywać

Tomek
źródło
To konkretne rozwiązanie może nie działać w przypadku ogólnego pytania PO. Chociaż podanie linków jest w porządku, następnym razem spróbuj podać bardziej ogólne rozwiązanie, chyba że OP wyraźnie wspomina o rozwiązaniu problemu dla swojego oprogramowania.
Neil
-1

Czy zamiast tego rozważałeś skorzystanie z istniejącego systemu biletów? Nasz system biletów monitoruje czas między utworzeniem biletu a momentem jego zamknięcia. Jeśli tworzysz bilety do zadań i ustawiasz numer biletu jako wymóg zatwierdzania kodu, zyskujesz więcej.

Amy Anuszewski
źródło