Szacowanie Projektów – Część 2 Jak Oszacować czas trwania projektu

Estimating by Darts throwW części pierwszej opisałem ogólne zasady przygotowywania wszelkich oszacowań, których stosowanie może ułatwić nam życie i zaoszczędzić nieporozumień. Teraz skoncentruje się na opisaniu metod szacowania czasu całych projektów.

Do rzeczy, jak ułatwić szacowanie czasu trwania projektu?

Do szacowania całkowitego czasu wykonywania projektów można podejść na kilka sposobów. Poniżej lista podstawowych metod.

Szacowanie Oddolne (Wstępujące)

Jest to jedna z najbardziej pracochłonnych metod szacowania, dzięki czemu jest zdecydowanie najdokładniejsza.

Szacowanie oddolne polega na podzieleniu całego projektu na jak najmniejsze zadania, dla których oszacowania czasu wykonania może być dość dokładne.

Dzieląc projekt na zadania, powinniśmy dokonywać ich podziału do momentu w którym dane zadanie nie będzie przekraczać kilku dni roboczych. Jako optimum przyjmowane są różne wartości, osobiście jako maksimum polecam 40h (1 tydzień roboczy), ale ideałem są zadanie w zakresie od 4-16h.Przykładem podziałów zadań do wykonywania takiego szacowania są listy zadań WBS (WorkBench Structure).

Metoda szacowania oddolnego jest najbardziej przydatna w momencie planowania całego projektu, kiedy podjęliśmy już decyzję odnośnie sposobu realizacji i znamy zasoby jakimi dysponujemy oraz dokładnie stawiane nam wymagania.

Ciężko stosować ta metodą w pełnym zakresie do przygotowywania wstępnych szacunków projektu na etapie jego definiowania, kiedy niespisane są jeszcze wymagania projektu. Choć już wtedy warto podzielić projekt na mniejsze części.

Szacowanie Odgórne (Historyczne / Zstępujące ).

Jest to jedna z lepszych metod, która w połączeniu z szacowaniem oddolnym daje doskonałe rezultaty. Metoda szacowania odgórnego polega na wykorzystaniu danych z wcześniej realizowanych projektów.

No i tu właśnie mamy problem, bo jeśli nie mamy doświadczenia z poprzednich, podobnych projektów, to niestety nie możemy skorzystać z tej techniki. Drugi problem, to nawet jeśli realizowaliśmy wcześniej zbliżone projekty, to nie zawsze dysponujemy danymi historycznymi odnośnie rzeczywistych czasów wykonywania zadań.

Dlatego tak ważne jest, aby już od swojego pierwszego projektu archwizować dane zawierające nasze poprzednie szacunki wraz z realnie uzyskanymi wartościami.

Metodę szacowania odgórnego możemy oczywiście stosować również do pewnych, wybranych części danego projektu. Ponieważ, często się zdarza, że realizujemy projekt podobny, ale z jakimiś dodatkowymi funkcjami. Możemy, więc skorzystać z tej metody do oszacowania wykonania wspólnej części obu projektów. Metodę szacowania odgórnego najczęściej wykorzystuje się na etapie definiowania projektu, kiedy znamy jego ogólne założenia. (Np. przygotowywanie oferty dla klienta).

Szacowanie Parametryczne

Kolejna metoda jest nieco zbliżona do szacowania odgórnego, ponieważ korzysta również z danych historycznych. Szacowanie parametryczne polega na zastosowaniu modelu matematycznego.

Na przykład możemy korzystając z danych historycznych określić, że poszczególne fazy projektu Planowanie, realizacja, wdrożenie trwały odpowiednie 20, 40, 20 procent całkowitego czasu projektu. Więc możemy dokonać założenia, że teraz będzie podobnie.

Można również próbować szacować wielkość projektu, przeliczać to na linie kodu, a te na ilość pracy. Istnieją tablice definiujące ilość linii kodu na dzień roboczy dla wybranych języków programowania. Technika ta jest podstawą metody COCOMO (którą opiszę w części trzeciej – szacowanie zadań). Osobiście nigdy nie przekonałem się do tego typu szacowania i traktuje je bardziej jako ciekawostkę. Choć metoda ta była kiedyś stosowana dość szeroko.

O czym warto pamiętać szacując?

Stosowanie Buforów (rezerw) czasowych

Szacując całkowity czas trwania projektu należy koniecznie wziąć pod uwagę bufor czasowy.

Ważne jest, aby doliczać rezerwę do całkowitego czasu trwania projektu, a nie jak często się to zdarza do poszczególnych zadań. W drugim przypadku mamy mocno zaciemniony obraz tego ile naprawdę doliczyliśmy czasu do całego projektu, co znacznie utrudnia nam kontrolę.

Jeśli szacujemy na przykład, że czas realizacji projektu to 10 tygodni i doliczamy bufor 10%. To wiemy, że mamy 1 tydzień zapasu i w każdym momencie trwania projektu jesteśmy w stanie określić, jak wiele czas

u z rezerwy wykorzystaliśmy.Poza tym przeszacowywanie każdego zadanie wpływa często również na obniżenie naszej wydajności, bo skoro widzimy, że mamy czas, często spowalniamy naszą pracę, mniej koncentrując się na wykonaniu zadań.

Wielkość buforu zależy bardzo mocno od złożoności projektu i naszego doświadczenia. Jeżeli robiliśmy podobny projekt, dysponujemy danymi archiwalnymi, to możemy założyć bufor na około 10% czasu trwania. Jeśli jednak brakuje nam doświadczenia, a projekt jest bardzo złożony to bufor czasowy może wynieść nawet około 50%+.

Aktualizaca Szacunków

W zasadzie z wcześniejszymi szacunkami, można zrobić dwie rzeczy, albo wywalić do koszta, albo zaktualizować. Pozostawienie ich gdzieś w obiegu to jak zakładanie sobie pętli na szyję. Zawsze po pewnym czasie pracy, niektóre nasze szacunki będą się okazywały trafne inne nie. Możemy, więc albo wykonać nowe oszacowanie, albo zaktualizować istniejące. Jeżeli, wybierzemy drugą opcję, którą polecam, bardzo dobry przykład opisywania zadań zaproponował Joel Spolsky. Propozycję tę przedstawię w kolejnej części.

Jeśli robimy coś po raz pierwszy

Koniecznie trzeba uważać jeśli robimy coś po raz pierwszy. Zawsze potrzebujemy na to zdecydowanie więcej czasu, niż gdy dana czynność wykonywana jest ponownie.

Mimo, że na przykład wykonywaliśmy już integracje z system płatności, to wykonanie integracji z podobnym system innego dostawcy zajmie nam jednak więcej czasu. Zawsze musimy uwzględnić czas na naukę.

Project Backlog - Google Dosc

Zbieraj dane, zapisuje czasy realizacji, szacuj i jeszcze raz szacuj!

Podsumowując, szacowanie jest bardzo trudnym zadaniem, szczególnie jeśli brak nam doświadczenia. Dlatego ważne jest, aby ćwiczyć się w szacowaniu i już od pierwszych swoich projektów próbować estymować.

Koniecznie należy archiwizować otrzymywane czasy i w trakcie wykonywania zadań zapisywać rzeczywiście otrzymane wartości. Te informację mogą się okazać ( i z pewnością się okażą) prawdziwym błogosławieństwem w przyszłości. Do zbierania danych nie potrzeba super narzędzi, wystarczy zwykły arkusz kalkulacyjny (np. Google Docs, który sprawdzi się również w pracy grupowej). Można również korzystać z dedykowanych rozwiązań, bardzo ciekawą darmową pozycją jest Feng Office.

W trzeciej części postaram opisać się sposoby radzenia z szacowaniem poszczególnych zadań w projekcie.