2009-05-29 8 views
13

To bardzo źle, gdy powiedziałeś klientowi lub kierownikowi, że można to ukończyć 10 dni, ale spędziłeś 20 dni, aby uzyskać punkt, który nie został jeszcze wdrożony.Jak oszacowałeś czas, który spędziłeś przed rozpoczęciem projektu tworzenia stron internetowych?

Każde doświadczenie może podzielić się ze mną o tym, jak pan szacowany czas spędzony w proponowanych projektach?

Dzięki

+0

Dziękuję za osoby, które pomogły mi w tym pytaniu i nie wahaj się jeszcze dodać swojego doświadczenia. –

Odpowiedz

25

Doświadczenie pomoże ci lepiej ocenić, nic więcej.

Najważniejszą rzeczą do zapamiętania jest informowanie ludzi.

Jeśli zadanie zostało oszacowane na 10 dni i jesteś w dniu 5 i wyraźnie nie zamierza zarządzać go na 10, należy niech ludzie wiedzą, w tym momencie, a nie, gdy osiągnie dzień 11.

Nie są trzy opcje, gdy rzeczy idą w czasie, bierzesz trafienie i wykonujesz pracę, usuwasz rzeczy z systemu lub prosisz o więcej pieniędzy na ukończenie. Im szybciej można się zdecydować, tym lepiej.

+0

Gdybym mógł głosować to więcej niż raz, zrobiłbym to. To naprawdę świetna odpowiedź. – Abel

+4

Zgadzam się ze wszystkim, co powiedziałeś, Z WYJĄTKIEM pierwszego zdania. Doświadczenie to nie jedyna rzecz, która pomoże ci lepiej oszacować. Dzielenie zadania na wiele podzadań poprawi również Twoją dokładność i możesz to zrobić już dziś, a nie tylko wtedy, gdy zdobędziesz więcej doświadczenia. –

+0

Tak, zgadzam się, byłem nieco binarny z tym stwierdzeniem. +1 do twojej odpowiedzi na przeprosiny :) –

4

Podawanie szacunków czasowych to coś, z czym można się tylko lepiej z doświadczeniem.

Zapoznaj się z ostatnimi doświadczeniami i wykorzystaj je do zmiany prognozy czasowej.

zobaczyć również http://en.wikipedia.org/wiki/Estimation_in_software_engineering aby uzyskać więcej informacji.

znalazłem, że jedną z najgorszych rzeczy, które możesz zrobić, to spojrzeć na wymagania po raz pierwszy, a następnie dokonać przypuszczenie podczas tego pierwszego spotkania. Zawsze mów, że będziesz musiał do nich wrócić, a następnie przeanalizuj wymagania i udzielij wykształconej odpowiedzi.

+0

Zrobię to od dzisiaj, wielkie dzięki. –

12

W miarę możliwości staraj się rozbijać rzeczy na małe kawałki na początku. Czytałem wcześniej, że ludzie nie mogą dokładnie oszacować czasu trwania czegoś dłuższego niż kilka dni, więc jedyną rzeczą, którą możesz zrobić, aby obejść to, jest próba zidentyfikowania wszystkich elementów i oszacowania każdego z nich osobno.

+0

Dobrze to zrobić, gdybym mógł podzielić zadania na małe kawałki, i tak wiem, czego się nauczyć. –

3

Nie można oszacować, nie wiedząc, co masz zamiar zrobić; trzeba przerwać zadanie się na kawałki, które można rozsądnie szacujemy - w dół na godzinę (nie mniej niż 1 godzinę, zaokrąglić w górę)

np „Make me strony logowania”

HTML formularza logowania - 1 godzina tabeli bazy danych dla użytkowników - 2 godziny itp itd

Następnie otwieramy kalendarz i spróbować wypełnić godzin - w porządku w poniedziałek mogę pracować około 5 godzin, więc dba o jedno zadanie. Czy możesz rozsądnie wykonywać wiele zadań jednocześnie? Prawdopodobnie, ale nie mów, że możesz wykonać zadania 3 x 4 godziny w ciągu jednego dnia, nawet jeśli masz 12 godzin na "oszczędzanie" (to za dużo).

Spójrz na weekendy; będziesz ich pracował? Prawdopodobnie nie, więc dołącz to. Musisz zmienić twój olej? Zbliża się ślub? Upewnij się, że to uwzględniłeś. Włącz trochę czasu na wypadek, gdy nie możesz pracować kilka dni (dzieci chorują, moc gaśnie)

+0

Awsome, naprawdę marnuję dużo czasu na wierze "Mogę wykonywać wiele zadań", to prawda, że ​​nie dodałem efektów z mojego prawdziwego życia, dziękuję za anser i życzę, żeby żadne dzieci nie zachorowały. –

3

W rzeczywistości tworzę bardzo szczegółową mapę witryny, a następnie szacuję godziny (minuty) dla każdego kawałka .

Wyświetlam mapę strony dla klienta i powiadam, że zajmie ona podwójnie to, czego tak naprawdę oczekuję.

Następnie określamy, co zrobi każda ze stron, więc nie ma dyskusji, czy strona jest "ukończona".

Niedorzeczna, nadmierna dostawa. Zwykle wyprzedzam to, co mówię klientowi i zawsze są szczęśliwi, że zrobiłem to "wcześnie".

+0

Mam nadzieję, że mógłbym zrobić coś takiego, czy miałeś na myśli to, że powinienem powiedzieć moim klientom lub kierownikowi, że spędzę 20 dni (jak się spodziewałem 10 dni w pierwszym punkcie)? –

+0

Dokładnie to robię.Nigdy nie miałem menedżera, więc nie jestem pewien politycznych implikacji, ale dla moich klientów to działa dobrze. - Ostatnio powiedziałem klientowi, że strona zajęłaby trzy tygodnie ... zajął mi trzy dni. Nie dostarczyłem im tego przez kolejny tydzień, tylko po to, aby uniknąć pozorów, że wszystko będzie tak szybko w przyszłości. –

2

Jedną rzeczą, którą należy zawsze uwzględnić, jest czas testowania. Jeśli zajdzie potrzeba opracowania 10 dni, idealnym rozwiązaniem będzie przeprowadzenie testu na co najmniej 7-8 dni. Właściwe zrozumienie wymagań z góry pomaga w oszacowaniu czasu. Kiedy/w razie zmiany wymagań, będziesz musiał poinformować klienta, że ​​doda dodatkowy czas do daty dostawy.

Podsumowując, jak powiedział Zack, im więcej doświadczenia uzyskasz, tym dokładniejsze będą twoje szacunki czasu. Nierealne oszacowanie czasu tylko po to, by zdobyć pracę, może być tylko złą rzeczą. Oczywiście nie sugeruję, że to właśnie zrobiłeś. Po prostu stwierdzam, że jest to punkt dobrej praktyki.

+0

Dziękuję za odpowiedź, testy zajęły mi około 80% czasu, dlatego częściowo nie mogę ukończyć mojego projektu na czas, jednak potrzebuję poprawić umiejętności testowania, aby zmniejszyć tę część. –

1

Jeden z moich ulubionych nauczycieli programowania używał powtarzania tego zdania za każdym razem, gdy dostał zmianę: "Nie spiesz się, kiedy myślisz, że weźmiesz to i pomnożysz przez 3. Nawet wtedy będzie to bliski kontakt" .

Na początku brakowało lepszego sposobu robienia rzeczy, faktycznie to zrobiłem. Wciąż robię! Głównie w tych projektach, w których możesz poczuć obecność klienta :)

To działa dla mnie. To nie jest naukowe, ale działa.

+0

Powiedziano mi (na poły żartobliwie), że poświęcam czas, podwajają go i podnoszą jednostkę. A więc trzy godziny idą do sześciu dni! Niezwykle dokładne ... –

2

Ile czasu naprawdę spędziłeś nad tym? Jakie rozkojarzenia już minęły? Za każdym razem, kiedy się koncentrujesz i ktoś niszczy tę koncentrację (normalny stan rzeczy, w którym pracuję), możesz stracić 30 minut na powrót do stanu koncentracji. Czterech lub pięciu z nich dziennie (również z powodu przyczyn przerw) straciłeś pół dnia. Codziennie.

Wszyscy to robimy. Długo po tym, jak powinniśmy się lepiej nauczyć, nadal to robimy. Uważamy, że "nie może to potrwać dłużej niż kilka tygodni" i mówimy natychmiast, zamiast być mądrym i myślącym. Mówię sobie bardzo dużo, tutaj!

Jak to może być, jeśli powiedzieliśmy coś takiego: "Myślę, że w idealnym świecie mógłbym to zrobić za 10 dni, ale ty i ja wiemy, że sprawy pojawiają się i trzeba się z nimi uporać, a to mieć wpływ. Co powiesz na nadawanie priorytetów funkcjom, a ja popracuję nad nimi w kolejności i zgłoś się po zakończeniu każdego z aktualizowanych szacunków pozostałego czasu? "

1

Rozbiłam projekt na najmniejsze możliwe zadania. Następnie przeglądam listę trzy razy.

Po raz pierwszy przejdę na listę szukam rzeczy, z którymi mam duże doświadczenie. Są to rzeczy, w których na podstawie moich wcześniejszych doświadczeń mogę dokładnie oszacować czas, jaki zajmuje.

Potem przeglądam listę w poszukiwaniu rzeczy, których nie jestem pewien i obawiam się, że potrwają długo. Poświęcam trochę czasu na zbadanie każdego z nich i podzielenie ich na jeszcze mniejsze zadania. To pozwala mi lepiej zrozumieć, co dokładnie jest w to zaangażowane, i ułatwi to podejście później.

Ostatni raz przeglądam listę, zakładam, że każde zadanie zajmie jednego programisty, jeden dzień pracy do wykonania. Czasami ktoś może zrobić całą masę w ciągu jednego dnia. To wspaniale. Ale czasami w jednym zadaniu kryje się cała gama ukrytych złych przeczuć, których nikt się nie spodziewał, i zajmie to kogoś w ciągu tygodnia. W końcu wyrównuje.

To nie daje bardzo dokładnych szacunków. Naprawdę nie można dokładnie oszacować. Nigdy nie możesz wiarygodnie przewidzieć, w którym dniu skończysz coś. Jednak da ci to bardzo dobry konserwatywny i dokładny szacunek. Dokładność i precyzja to dwie różne rzeczy.

1

Określ wszystkie możliwe zadania. Jak zauważyli inni, im mniej zadań, które oceniasz, tym dokładniejsza będziesz. Dodaj łączny czas, a następnie pomnóż go przez zwariowany czynnik. Im bardziej szalony jest twój klient, tym więcej czasu to zajmie. Przez jakiś czas konsultowałeś się, więc jestem pewien, że znasz ten typ.

+0

Dzięki i tak kolego. –

1

Przełomowy projekt, który znalazłem może być bardzo pomocny. Rozumiem przez to, że identyfikujesz kluczowe części projektu, co pomaga podzielić je na ramy czasowe dla rezultatów.

W ten sposób każdy kamień milowy może podsumować postępy i sprawdzić, czy nie opóźniają się, na czas itd. Z projektem.

ps. lub możesz zrobić klasyczne podejście polegające na zabraniu czasu na "myślenie", a następnie podwojenie go !!! ;)

+0

Nie chcę po prostu podwajać czasu, jaki myślę, ponieważ nie wiem, jaki jest mój czas. Jeśli wiesz, co mam na myśli. –

+0

aye! ... ten ostatni był bardziej miękki w policzek. – kevchadders

1

Należy również pamiętać stare powiedzenie ...

"Pierwsze 90% zajmuje 90% czasu Ostatni 10% zajmuje 90% czasu.".

Nie sądzę, że możesz kiedykolwiek pomylić się z podjęciem decyzji, jak długo potrwa projekt programistyczny i potrojenie go. Jeśli nie zbudowałeś DOKŁADNIE tego samego przedtem i było to w ciągu ostatniego roku, stanie się tak wiele nieoczekiwanych rzeczy. Nie można zastąpić doświadczenia, ale można użyć tej reguły, aby nie wpadać w kłopoty po drodze.

Przebuduj pierwszego reagującego ... będąc uczciwym i aktywnym po drodze jest ogromny. Lepiej unikać obiecywania niczego, niż twierdzić, że nie trafisz w cel.

+0

Czy miałeś na myśli, że pierwsze 90% zajmuje 10% czasu, a ostatnie 10% zajmuje 90% czasu? –

+0

Nie. Suma wynosi co najmniej 180% czasu. :) –

Powiązane problemy