Dlaczego nigdy nie robisz tyle rzeczy, ile planowałeś? [Zamknięte]

26

Zawsze zaczynam dzień od myślenia: „Z łatwością zrobię to do końca dnia” i ustalam, co wygląda jak realistyczny cel.

Dlaczego więc nigdy tego nie uderzyłem? Zadanie zawsze kończy się 3 razy dłużej z powodu nieprzewidzianych błędów, zmian w ostatniej chwili itp.

Czy to tylko ja? Nie wydaje mi się, żebym lepiej przewidywał, co można zrobić w ciągu jednego dnia.

billy.bob
źródło
8
To nie tylko ty. Zobacz prawo Hofstadtera .
Peter Boughton,
18
Ponieważ marnujesz czas na zadawanie pytań na temat P.SE, zamiast wykonywać swoją pracę :) :)
Jas
2
Następnym razem, gdy oszacujesz zadanie, pomnóż wynik przez 3, a będziesz bezpieczny;)
3
Nie planuję nic zrobić i zawsze wygrywam. Wszystkie moje błędy oceniam jako nieskończoność, więc moja prędkość jest zawsze nieokreślona.
Job
1
Mój stary szef zwykł mawiać, że moje cytaty z czasów były w latach kota . Myślę, że przesunął każdy cytat o jeden rząd wielkości. Godziny -> Dni; Dni -> tygodnie; Tygodnie -> Miesiące; Miesiące -> Klient zwrotu pieniędzy.
Orbling

Odpowiedzi:

17

Ponieważ nigdy nie uczono cię, jak planować.

Planowanie to umiejętność , podobnie jak pisanie i pisanie. Ale jakoś nie ma go w prawie każdym programie nauczania.

Trzeba się go nauczyć i ćwiczyć, a szacunki własnych możliwości należy stale aktualizować. Właśnie dlatego praktyki pracy, takie jak Agile, kładą nacisk na mierzenie twojej dotychczasowej pracy i porównywanie jej z szacunkami, abyś mógł poprawić swoje zdolności planowania.

Jak powiedzieli inni, musisz wziąć pod uwagę nie tylko zadanie, ale wszystkie jego poprzedników, towarzyszące im zadania (np. Nauczenie się wykonywania X), i musisz być świadomy własnych wewnętrznych uprzedzeń mentalnych, które uniemożliwiają ci prawidłowe rozliczenie z faktycznym sposobem wykonywania pracy.

Trenuj na tym, a kto wie, może ci się polepszyć.

Alex Feinman
źródło
8
Oprócz tego, że nie planuję spędzać czasu na jedzeniu w ciągu dnia, utrudniając planowanie, planowanie to także umiejętność, która nie sprawia przyjemności. Kiedy popełnisz błąd w kodzie, otrzymasz błąd, naprawisz go i nauczysz się lekcji. Gdy pojawi się błąd planowania, NIE POWINIENEŚ !!! Przesunięcie terminów powoduje, że czujesz się źle i powoduje porażkę, więc wiele osób po prostu nie planuje. Aby temu przeciwdziałać, zacząłem prowadzić bardzo szczegółowe, szczegółowe listy czynności do wykonania, ale zawsze daję sobie głupią ilość dodatkowego czasu. Czuję się naprawdę spełniony, ponieważ zawsze mam ograniczony budżet na czas!
CodexArcanum
@Codex, świetny punkt. Istnieją sposoby przekształcenia „błędów planowania” w coś, przed czym można „zakodować poprawkę”. Każda porażka planowania jest okazją do nauki. Przyjrzyj się technice takiej jak analiza przyczyn pierwotnych, aby pomóc zrozumieć kontekst awarii, abyś mógł lepiej zaplanować następnym razem i wprowadzić określone środki zaradcze, które zapobiegną awarii w przyszłości.
Alex Feinman,
1
Uczenie się nie tylko sprawia przyjemność, ale często jest stratą czasu. Nazywam to „metawork” - spędzanie czasu na analizowaniu lub organizowaniu pracy. Kiedy jest mnóstwo do zrobienia, metawork może poczuć się jak budowanie izolowanej jaskini pod lawiną zamiast próby wykopania się, ale tak naprawdę to, co robisz, to naostrzenie narzędzi w przygotowaniu do nadchodzącej pracy.
nlawalker,
W chwili pisania tego tekstu jest 11 osób, które poparły tę odpowiedź. Co oznacza, że ​​11 osób ma złudzenie, że istnieje coś takiego, jak plan, który prawidłowo oszacuje wymagany czas.
Robert Harvey
@nlawalker: Nie fajnie się uczyć? Jeśli nie nauczyłem się czegoś nowego w ciągu dnia, do diabła, w każdej godzinie dnia przebudzenia, uważam ten dzień za porażkę.
Orbling
26

Trudno uwierzyć, że nikt jeszcze nie wspomniał o prawie Hofstadtera .

Myślę, że prawdziwą odpowiedzią jest to, że twoje planowanie zawsze zakłada najlepszy scenariusz, tak jakby wszystko działało natychmiast i nigdy nie wystąpiła żadna przerwa. W prawdziwym życiu zaczynasz kodować, a następnie dzwoni telefon, jesteś rozproszony przez 5 minut, spędzasz kolejne 15 minut na przepełnieniu stosu lub programistach. Zmiana stosu, aby się uspokoić i ponownie ustawić, zrobić trochę kodowania, napotkać nieoczekiwane zachowanie niektórych API, zrobić trochę google, poświęć 2 godziny na przetestowanie możliwych rozwiązań itp.

Innymi słowy: „najlepszy przypadek” zdarza się tylko w twoich snach.

użytkownik 281377
źródło
1
Zobacz komentarz @Peter Broughton (5 godzin przed odpowiedzią!).
ChrisF
Tak, masz rację, ChrisF. Musiałem tego przegapić.
user281377,
+1. Właśnie dlatego stosuję zasadę „dokonaj rozsądnego oszacowania, a następnie podwoj go”. I nawet wtedy często trwa to dłużej. Jeden z moich wykładowców na uniwersytecie zwykł mawiać „potrójnie”. Więc myślę, że mam się dobrze. :)
Tabele Bobby
10

Każdy programista, raz na jakiś czas, ma idealny dzień. Budzisz się na 5 minut przed budzikiem, czując się świetnie. Śniadanie jest przygotowywane i na blacie, wraz ze świeżą kawą, więc możesz coś złapać i wyjść za drzwi. Podczas dojeżdżania do pracy uderzasz każdym zielonym światłem, a ruch wydaje się być szczególnie lekki. Biorąc pod uwagę dzień przed Tobą, jesteś w stanie w pełni zrozumieć projekt i konsekwencje zadania przed Tobą, które zostało dobrze zaplanowane z określonymi wymaganiami.

Wchodzisz do pracy i okazuje się, że nie masz żadnych ważnych wiadomości e-mail, nie czekasz na wiadomości głosowe, a twoi współpracownicy są poza domem lub na spotkaniach, na których nie musisz uczestniczyć. Odpalasz edytor i od razu znajdujesz się w strefie, możesz poczuć strukturę kodu i zobaczyć, jak struktury danych i algorytmy pasują do siebie w pięknej i spójnej całości. Myśli przepływają przez dłonie do klawiatury, wprowadzając idealnie ukształtowany kod, który jest elegancki, łatwy w utrzymaniu i nie zawiera błędu.

W ciągu dnia, w którym pracujesz bez zakłóceń, w biurze jest cicho i jesteś tak skoncentrowany, że nigdy nie masz ochoty tracić czasu na nadrobienie wiadomości, blogów itp. Gdy kompilujesz i uruchamiasz testy, okazuje się, że wszystko działa bez żadnych problemów, oczywiście, że wiedziałeś, że to zrobi, a pod koniec dnia popełniasz konflikty. Patrząc na zegar, gdy wychodzisz, zdajesz sobie sprawę, że poświęciłeś 12 godzin i poczułeś się jak krótka 20 minutowa sesja kodowania.

Tego dnia, tego idealnego dnia, zakładamy, że będziemy mieli za każdym razem, gdy będziemy musieli cokolwiek oszacować.

Cercerilla
źródło
7

Nie zapomnij o spotkaniach, ludziach, które ci przeszkadzają itp. Nieprzewidziane błędy są trudne do przewidzenia, ale z czasem powinieneś być w stanie dowiedzieć się, ile błędów odkryjesz w określonym czasie. Szacując, jak długo to zajmie, musisz wziąć pod uwagę kontekst. Tj. „Zakładając, że nie przeszkadzam ani nie odkrywam błędów, powinienem być w stanie coś zrobić w X czasie”

Jako małe ćwiczenie dla siebie rozważ wykonanie następujących czynności:

  • Na początku dnia zapisz swój cel i oszacuj jego czas.
  • Przy każdej przerwie (spotkanie, rozmowa ze współpracownikiem itp.) Zanotuj przybliżony czas
  • Za każdym razem, gdy znajdziesz nowy błąd, zanotuj go jako nieplanowane zadanie wraz z przybliżonym czasem jego opracowania.

Przekonasz się, że niektóre wzorce zaczynają się pojawiać i możesz je odpowiednio zaplanować. Za każdym razem, gdy podasz swojemu menedżerowi szacowany czas ukończenia, zastanów się nad tym z założeniem z pierwszego akapitu. Możesz być zaskoczony, jak dokładny był twój szacunek, kiedy usuwasz czas poświęcony na przerwy i błędy.

Kiedy pracujesz nad listą błędów lub listą funkcji, prawdopodobnie już robisz pierwszy i trzeci punkt wypunktowania. To małe ćwiczenie powie ci, dokąd zmierza cały twój czas, i możesz być zaskoczony odpowiedzią.

Berin Loritsch
źródło
+1 Gdybym zapisywał każdą przerwę, którą otrzymałem, oprócz częstszego zamawiania artykułów papierniczych, straciłbym znaczną część dnia na notację.
Orbling
3

Możesz poszerzyć ramy czasowe przewidywalności. Czy potrafisz określić, co możesz zrobić w ciągu tygodnia? Jeśli każde zadanie trwa trzy razy dłużej, niż się spodziewałeś, brzmi to tak, jakbyś był wystarczająco konsekwentny, aby być przewidywalnym. Musisz tylko wyregulować 3x;)

JeffO
źródło
+1 Ciągle źle jest nadal konsekwentne! Wynik.
Orbling
2

bo po prostu zignorowałeś fakt, że mogą wystąpić nieprzewidziane błędy.

Zrób statystyki dotyczące średniego czasu poświęconego na błędy i weź ten czas pod uwagę przy tworzeniu planu.

RRR
źródło
1

Ponieważ nie planujesz poprawnie. Ojej .

Założę się, że jeśli utrzymasz bieżącą sumę, o którą się poślizgniesz (nawet na papierze), a następnie dostosujesz swoje szacunki o ten%, będziesz w stanie poprawnie zaplanować.

FWIW, oprogramowanie jest niezwykle trudne do oszacowania. McConnell (znany z Code Complete) ma nawet książkę na ten temat.

Paul Nathan
źródło
1

Coś, co często robię, to rozpraszanie się przez przypadkowe rzeczy niezwiązane z tym, co robię. Lista rzeczy do zrobienia może w tym pomóc; kiedy coś wymyślisz, zapisz to i zrób to po skończeniu tego, co jest przed tobą.

Michael K.
źródło
1

Ponieważ spędzam zbyt dużo czasu na przepełnieniu stosu.

John Dibling
źródło
1

Pilna / ważna matryca może być warta rozważenia, aby zobaczyć, gdzie idzie twój dzień. Czy dotyczy to pilnych, ale nieistotnych rzeczy, takich jak nieprzygotowane spotkania i przerwy? Czy chodzi o pilne i ważne rzeczy, których nie znałeś na początku dnia? Ćwiczenie do rozważenia, dokąd zmierza Twój czas.


Wydaje mi się, że najciekawsze rzeczy są ważne lub dlaczego są interesujące? Tylko myśl.

JB King
źródło
1
Moim problemem z tą techniką zawsze był niewidoczny „trzeci wymiar”: jak CIEKAWE coś jest. Niestety dla mnie ciekawość przebija pilność i znaczenie za każdym razem.
dnia
0

To dobre pytanie, nad którym ciągle się zastanawiam. Zwykle tak myślę

  • bardzo łatwo jest źle ocenić, ile pracy zajmie funkcja X.
  • Nigdy nie planuję błędów ani wycieczek do czajnika.
  • albo robisz dużo przy małym kodzie, albo nic nie zostanie zrobione i wydaje się, że nie ma pomiędzy nimi.
  • czasami tracisz swoją „strefę”, czasem rzeczy wymagają przemyślenia.
dan_waterworth
źródło