Dlaczego harmonogramy w IT zawsze się rozjeżdżają i jak temu zapobiegać?

Pamiętam, gdy zadzwonił do mnie klient z wyraźnie zaniepokojonym głosem. „Mamy już tydzień opóźnienia, a to dopiero początek. Coś poszło nie tak – nie wyrobimy się z tym projektem na czas”. Rzecz w tym, że takie telefony nie są rzadkością. Branża IT wręcz słynie z rozjazdów w harmonogramach. Choć na starcie każdy wierzy, że tym razem się uda, w praktyce pojawiają się niespodzianki, dodatkowe funkcjonalności, nowe problemy, a wszystko to dokłada się do opóźnień i chaosu. Chciałbym przyjrzeć się bliżej temu zjawisku i zastanowić się, gdzie leży przyczyna wiecznego poślizgu, a także jakie kroki można podjąć, by przynajmniej część z nich wyeliminować.

Gdzie ginie nasz czas

Za każdym razem, gdy ruszam z nowym projektem, przypominam sobie historię o budowie domu w stylu góralskim, który mimo ustalonego terminu, nigdy nie został oddany do użytku w zapowiadanym czasie. Robotnicy co chwilę trafiali na przeszkody – a to brakowało materiałów, a to okazywało się, że projekt wymaga poprawek. Zastanawiające jest, że w branży IT bywa podobnie – materiałem są linie kodu, biblioteki i frameworki, które mogą wydawać się dostępne na wyciągnięcie ręki. A jednak w zderzeniu z rzeczywistością wszystko zaczyna się komplikować. Trudno z góry przewidzieć, która biblioteka okaże się niekompatybilna z nową wersją środowiska, albo ile czasu zajmie skonfigurowanie kolejnego narzędzia do testów. Zawsze jest coś, co trzeba poprawić, dostroić, przepisać.

Syndrom nieprzewidywalnych zmian

Częstym problemem jest moment, gdy klient nagle zmienia zdanie i chce dodać kolejne funkcjonalności, które „koniecznie” muszą być w pierwszym wydaniu. Spotkałem się z sytuacją, gdy w połowie drogi klient zażądał „tylko małej kosmetyki” w aplikacji – w rzeczywistości okazało się to gruntowną przebudową kluczowych modułów. Na papierze wyglądało to niegroźnie, jak poprawka w kodzie, ale w praktyce wystarczyło, by przesunąć premierę o kolejne tygodnie. Dopiero odpisując mu w e-mailu, wychodziły na jaw wszystkie szczegóły i zależności, które wcześniej pominął w rozmowie telefonicznej. Wychodzi więc na to, że spisywanie i precyzowanie ustaleń nie tylko chroni przed późniejszymi nieporozumieniami, ale pomaga też realnie oszacować, ile czasu dodatkowe wymagania pochłoną.

Brak zrozumienia skali projektu

Zdarza się też, że sami programiści zbyt optymistycznie zakładają, że coś zrobią szybciej, niż w rzeczywistości. Łatwo powiedzieć: „to tylko parę linijek kodu”. Jednak te parę linijek to często też testy, review i integracja z istniejącym systemem, który wcale nie jest taki elastyczny, jak się wydaje. Podobnie wygląda to na poziomie całego zespołu – każdy planuje, że skończy część zadania w jednym tygodniu, a potem okazuje się, że trzeba uzgodnić jeszcze kilka szczegółów z testerem, dogadać się z UX designerem, a w międzyczasie może pojawić się krytyczny błąd w innej części aplikacji, który wzywa do gaszenia pożaru na cito. I wtedy piękne założenia o terminie nagle topnieją jak śnieg w pierwszych dniach wiosny.

Jak okiełznać chaos

Sposobów na opanowanie tego ciągłego rozjeżdżania się harmonogramów jest sporo, ale w praktyce klucz leży w odpowiednim podejściu do planowania i komunikacji. Z mojego doświadczenia wynika, że nic nie zastąpi szczerej analizy ryzyk i stworzenia planu awaryjnego, który obejmuje dodatkowy bufor czasowy. Już na starcie warto uwzględnić margines błędu. Lepiej uczciwie powiedzieć klientowi, że jest szansa na opóźnienie, niż obiecać termin, którego nie da się dotrzymać. Poza tym, tak jak w relacjach biznesowych dobrze sprawdzają się pisemne potwierdzenia ustaleń, tak w planowaniu prac również warto spisywać każde założenie, każdy kamień milowy i każdą zmianę. Projekt jest żywym organizmem i będzie się rozwijał, jednak przejrzysta dokumentacja pomaga unikać niepotrzebnego chaosu.

Podsumowanie dłuższej drogi

Zawsze dziwiłem się, jak bardzo projekty, które na początku wydają się zgrabnie zaplanowane, potrafią rozmywać się w szczegółach. Ale to właśnie te detale, drobne zmiany, nieprzewidziane problemy i zbyt optymistyczne podejście do czasu sprawiają, że harmonogramy w IT się rozjeżdżają. Czy da się temu zapobiec? W stu procentach pewnie nie, bo każdy projekt jest trochę jak żywioł i zawsze może nas czymś zaskoczyć. Można jednak ograniczyć rozmiar tych niespodzianek dzięki realnemu podejściu do planów, otwartej komunikacji i systematycznemu spisywaniu ustaleń. W końcu im lepiej jesteśmy przygotowani na to, co może się wydarzyć, tym łatwiej dostosowujemy się do zmieniających się warunków. A w branży IT zmiana jest jedyną stałą rzeczą, która nigdy nas nie zawiedzie.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Koniecznie przeczytaj także