Tworzenie buforów czasu w MS Project oraz wskaźnika wykorzystania bufora.
MS Project nie wspiera tworzenia buforów dla zadań, ścieżek zadań, czy też dla samego projektu. Tworząc harmonogramy jesteśmy jednak zmuszeni do przewidzenia czasu ewentualnych opóźnień w celu dotrzymania terminu realizacji odcinka (przeciwdziałania opóźnianiom w trakcie realizacji), szczególnie utworzonego przez zadania krytyczne.
Jest kilka rozwiązań, aby to zrobić. Możemy definiować dłuższe czasy trwania zadań (zakładając, że i tak się opóźnią) lub wprowadzać czasy wyprzedzenia dla tych zadań (modyfikując parametry tworzenia ścieżki krytycznej), jednak takie rozwiązania są bardzo niewygodne w późniejszym monitorowaniu i nanoszeniu poprawek w trakcie realizacji przedsięwzięcia. Dodatkowo planowane koszty obliczone na podstawie tak wprowadzonych zadań będą większe niż te zakładane przez nas, a termin realizacji projektu zostanie wydłużony.
Lepszym rozwiązaniem jest zastosowanie zadań fikcyjnych będących de facto buforami dla zadań, a najlepszym rozwiązaniem będzie stworzenie buforów ścieżek, buforów wspomagających i projektu w postaci zadań fikcyjnych w oparciu o reguły CCPM.
Przedstawię to na przykładzie harmonogramu odcinka budowy składającego się z kilku zadań połączonych w fazy.
Definiowanie bufora czasu
Interesuje nas ścieżka Roboty budowlane, która kończy się punktem kontrolnym Stan surowy w dniu 10.06.2010r. Ścieżka nie posiada bufora czasu, jedynie dla zadań znajdujących się na ścieżce został założony dłuższy czas trwania. Lokalizację bufora czasu, powinniśmy określić tak, aby spełniała ona wytyczne Goldratta, następnie należy zastanowić się nad prawidłowym doborem skrócenia czasu trwania zadań. Dla uproszczenia przykładu, dodałem bufor ścieżki tuż przed wystąpieniem punktu kontrolnego, łącząc go zależnością ZR z zadaniem poprzedzającym i następnikiem.
Następnie skróciłem czasy trwania zadań oraz wyznaczyłem czas dla bufora (26 dni) w taki sposób, aby nie zmienić wcześniej obliczonej daty punktu kontrolnego.
Pasek na wykresie Gantta został dodatkowo sformatowany na kolor zielony.
Jednak to nie koniec pracy, ponieważ tak zdefiniowany bufor nie będzie sam prawidłowo reagował na wydłużenie czasu trwania zadań poprzedzających, będzie się on zachowywał po prostu jak normalne zadanie (zmieni się jego czas rozpoczęcia, ale czas trwania nie ulegnie zmianie).
Widać to na rysunku powyżej. Pomimo zastosowania bufora czasu on automatycznie nie zareagował na wydłużenie czasu trwania zadania Roboty ziemne, a termin ostateczny dla punktu kontrolnego został przekroczony.
Automatyzacja wykorzystania bufora
Aby bufor reagował prawidłowo na zmiany czasu trwania zadań na ścieżce należy połączyć czas zakończenia zadania poprzednika (Szkielet) z czasem rozpoczęcia bufora (Bufor ścieżki) oraz czas rozpoczęcia zadania następnika (punkt kontrolny – Stan surowy) z czasem zakończenia bufora. Robimy to poprzez skopiowanie odpowiednich komórek z czasem i wklejenie ich za pomocą polecenia: Wklej specjalnie -> Wklej łącze -> Dane tekstowe. Dodatkowo usuwamy łącze zależności dla bufora.
Teraz, wydłużając czas trwania dowolnego zadania na ścieżce, np.: Roboty ziemne (z 25 do 45 dni), bufor zareaguje nie wpływając na rozpoczęcie punktu kontrolnego. Bufor skompensował dodatkowy czas pracy dla zadania nr 2.
Formatowanie paska na wykresie Gantta
Zdefiniowany wcześniej bufor doskonale się sprawdza w procesie monitorowania. Idąc o krok dalej sformatujemy pasek na wykresie tak, aby pokazywał zużycie bufora oraz informację ile go jeszcze pozostało, podczas fazy kontroli realizacji projektu.
Rozpocznijmy od zdefiniowania Flagi informującej czy dane zadanie jest zadaniem zwykłym czy też buforem czasu. Dodajemy kolumnę [Flaga1] i dla zadania Bufor ścieżki ustawiamy jej wartość na TAK.
Następnie definiujemy Pole niestandardowe (Typ: Tekst) o nazwie: _Pozostały bufor i definiujemy dla niego formułę obliczeniową:
IIf([Flaga1]=Tak;Round([Czas trwania wg harmonogramu]/[Szacowany czas trwania wg pbaz.]*100;0) & " %";"")
Teraz musimy już tylko sformatować pasek dla bufora i dodać opcję wyświetlania pozostałego bufora.
Dla pasków dla zadań i zadań krytycznych dodajemy warunek pokazywania: Nie Flaga1. Definiujemy nowe wiersze o nazwach: Bufor oraz Bufor – wykorzystanie i dodajemy warunek pokazywania: Flaga1. Pasek Bufor będzie pokazywał wielkość bufora zdefiniowanego wg planu bazowego, natomiast pasek Bufor – wykorzystanie będzie pokazywał jego rzeczywiste wykorzystanie. Dodajemy do tego paska wyświetlanie tekstu z prawej, będzie to wynik obliczeń na zdefiniowanej wcześniej formule: _Pozostały bufor.
Działanie bufora w praktyce
Po zapisaniu planu bazowego bufor będzie automatycznie dostosowywał swój czas trwania na podstawie poślizgu w harmonogramie. Możemy zatem śledzić % wykonania ścieżki zadań i porównywać jego wartość z penetracją bufora, aby na czas reagować jeśli zadania zbytnio się opóźniają i mogą spowodować przekroczenie założonego bufora czasu.
Na rysunku powyżej widać działanie bufora ścieżki tuż po zapisaniu planu bazowego (pozostały bufor = 100%), natomiast rysunek poniżej przedstawia sytuację w trakcie realizacji. Zadanie Roboty ziemne opóźniło się o 20 dni, co zostało skompensowane na buforze (pozostały bufor = 28%).