Nadciąga deadline! Jak zdążyć?

Ostateczny termin, zamknięcie, ściana, dzień sądu, linia krytyczna lub po prostu deadline. To słowo mrozi krew w żyłach niejednemu programiście. To widmo chodzące za wszystkimi developerami. Nikt nie lubi deadline’u, ale wszyscy muszą z nim żyć. Szczególnie freelancerzy. Oni nierzadko muszą włożyć najwięcej pracy i wysiłku, aby dotrzymać terminu, ponieważ najczęściej zajmują się nie tylko kodowaniem, ale również organizacją pracy, sprawami administracyjnymi itd. Jak zdążyć, gdy nadciąga deadline?

Wielu programistów woli o terminach nie rozmawiać. Wystarczy, że muszą żyć w cieniu deadline’u. Firma ZeroTurnaround przepytała między innymi na tę okoliczność wielu koderów. Okazało się, że 25% z nich nie może spać spokojnie w nocy z powodu deadline’u. To jeden z najsilniejszych czynników stresogennych dla programistów obok takich kwestii, jak problemy z wydajnością aplikacji (powoduje bezsenność u 24,10% developerów), obawa, że napisany kod nie jest wystarczająco dobry (23,70%) i konieczność nauczenia się nowych rzeczy (23,50%). Presja deadline’u sprawia, że często kod jest wysyłany szybciej. Problem polega na tym, że to wcale nie musi być pozytywny aspekt presji terminów. 81% developerów, przepytanych przez GitLab, przyznaje, że z powodu deadline’u wypuszcza kod, zanim ten będzie rzeczywiście w pełni gotowy. To właśnie presja terminu jest wskazywana przez 59% programistów jako największa przeszkoda, aby praca została dobrze wykonana. Jako drugi czynnik wskazywana jest presja ze strony przełożonego, chociaż często ta ostatnia wynika właśnie z nadciągającego deadline’u. Do tego dochodzi jeszcze problem z kreatywnością, którą przecież niejednokrotnie developer musi się wykazać. Badania prowadzone w Harvardzie przez profesor Teresę Amabila wykazały, że bardzo silna presja czasu wpływa destrukcyjnie na kreatywność. Okazało się jednak, że wystarczy tę presję nieco złagodzić, aby widmo nadciągającego deadline’u stało się czynnikiem stymulującym do działania z dobrymi efektami. Problem polega jednak na tym, że nie wolno dać się pokonać presji czasu. To programista musi okiełznać deadline, szczególnie gdy pracuje jako freelancer. Jak? Mamy dla Ciebie kilka podpowiedzi.
 

Wyznacz priorytety


Gdy na początku realizacji projektu spojrzy się na listę zadań, można poczuć się słabo. Zwykle jest bardzo wiele punktów do wykonania, a najgorsze, że wszystkie wydają się tak samo ważne. Takie podejście to pierwszy krok do tego, aby nie zdążyć z realizacją projektu w wyznaczonym terminie. Konieczne staje się priorytetyzowanie zadań. Musisz zastanowić się, które zadania są najważniejsze dla danego projektu, a które nie mają wielkiego znaczenia. Warto rozróżnić to, co jest ważne od tego, co jest pilne. Te ostatnie nie musi być wcale istotne dla realizacji całego projektu. Na początek najlepiej wybrać zadanie o najwyższym priorytecie, a potem zastanowić się, jaką jeszcze czynność można do tego dobrać, która również jest ważna. Podążając tym tropem z kolejnymi zadaniami, ułożysz listę-drogowskaz, który powinien doprowadzić Cię do deadline’u bez większych problemów. Dodatkowo warto każdego dnia ustalać listę do zrobienia. Jeśli to możliwe, nie powinieneś również pozostawiać zadań najtrudniejszych i najbardziej znienawidzonych na ostatnią chwilę. Im szybciej się za nie zabierzesz, tym większa szansa, że ewentualne opóźnienia z nimi związane nie wpłyną na końcowy deadline całego projektu.
 

Nie zapomnij również o zasadzie PARETO, która głosi, że po uszeregowaniu wszystkich zadań według ich wartości, 80% tych wartości można uzyskać, wykonując 20% zadań. Czasami stosowany jest także wariant tej zasady nazywany Analizą ABC. Według niej tylko 15% zadań musisz rzeczywiście wykonać samodzielnie i są one ważne dla projektu, kolejnych 20% również musisz wykonać samodzielnie, ale nie mają one aż tak dużego znaczenia, jak poprzednie, natomiast pozostałe 65% zadań jest najmniej istotnych, możesz je nawet komuś przekazać do wykonania.
 

Używaj kalendarza


Przechowywanie wszystkich terminów w głowie jest może oznaką świetnej pamięci, ale niekoniecznie musi być dobrym rozwiązaniem dla Twojej produktywności. Kalendarz to wynalazek, który jest niezwykle skuteczny w walce z nadciągającym deadline’em. Nie ma tu większego znaczenia, czy będzie to kalendarz tradycyjny, w formie książki czy aplikacja do organizacji czasu (na przykład Trello). Musisz mieć wszystko zaplanowane z konkretnymi datami. Planuj nie tylko to, co masz zrobić konkretnego dnia, ale również w perspektywie tygodnia, miesiąca i całego okresu trwania danego projektu. Musisz jednak pamiętać o specyfice pracy programisty. Nie zawsze można skupić się tylko na kodowaniu. Badania nad produktywnością pokazują, że developerzy zajmują się pisaniem kodu średnio 15 godzin w tygodniu pracy, przez kolejne 5 godzin rozwiązują problemy, następne 5 godzin pochłaniają spotkania, e-maile i telekonferencje, 4 godziny w tygodniu zajmuje przygotowywanie narzędzi, wdrażanie oprogramowania, przez następne 4 godziny developerzy myślą nad kolejnymi działaniami, 3 godziny poświęcają różnym portalom (na przykład Reddit, Facebook), przez 2 godziny testują kod, a ostatnie 2 godziny zabiera walka z awariami. Jeśli uwzględnisz te wszystkie kwestie, zaznaczysz w kalendarzu poszczególne terminy etapów prac i zadań do wykonania, deadline nie powinien być już taki straszny.
 

Unikaj odkładania na później


Zdarza Ci się odkładać coś często na później? Psychologowie nazywają taki nawyk prokrastynacją. To niekiedy zmora tych, którzy próbują zdążyć z wykonywaniem różnych zadań, ale im się to nie udaje. Chrispoher Parker, angielski aktor młodego pokolenia, którego zapewne znasz z kilku kasowych seriali, powiedział kiedyś, że „prokrastynacja jest jak karta kredytowa. To świetna zabawa, dopóki nie dostaniesz rachunku”. Trudno to lepiej ująć. Badania przeprowadzone przez Normana A. Milgrama dowodzą, że w obliczu deadline’u pracownicy bardziej się stresują, popełniają więcej błędów, a w rezultacie muszą dokonywać więcej poprawek. Mało tego, okazało się, że najczęściej osoby, które odkładają zadania na później, zarabiają mniej o 11,5 tys. dolarów rocznie od pracowników, którzy nie borykają się z prokrastynacją. Co ciekawe, często okazuje się, że nawyk odkładania wszystkiego na później nie wynika wcale z lenistwa, ale jest konsekwencją perfekcjonizmu. Takie osoby często boją się, że nie wykonają zadania idealnie, tak aby były z niego zadowolone, więc instynktownie odwlekają moment rozpoczęcia pracy, co w konsekwencji często prowadzi do katastrofy w postaci przekroczenia terminu. Kanadyjski psycholog, profesor Timothy Pychyl twierdzi, że kluczowe w zwalczaniu odkładania wszystkiego na później jest nauczenie się rozpoczynania zadania szybko i efektywnie. Podążaj właśnie tą drogą, jeśli nie chcesz, aby deadline stał się dla Ciebie zmorą.
 

Mierz siły na zamiary


To stare powiedzenie ma kluczowe znaczenie w pracy programisty-freelencera. Nie zapominaj, że nie masz stu par rąk. Jeśli weźmiesz na siebie zbyt wiele, na pewno polegniesz w walce z deadline’em. Pamiętaj, że powinieneś na każdy dzień zaplanować nie więcej niż 60% czasu pracy, ponieważ na pewno pojawią się nieprzewidziane zdarzenia i problemy, które trzeba będzie dodatkowo rozwiązać. Gdy zaplanujesz 100% czasu, na pewno nie wykonasz wszystkiego. Aby jednak skutecznie mierzyć siły na zamiary, musisz nauczyć się odmawiać. Asertywność to ważna umiejętność w realizacji projektów. Jeśli będziesz wykonywał każde zadanie, o jakie Cię poproszą, Twoja efektywność będzie bardzo niska. Bierz na siebie tylko tyle, ile będziesz w stanie rzeczywiście wykonać. Nie zapominaj, że Twój czas jest cenny. Odmawiaj i bądź przy tym szczery, ale uprzejmy.
 

Pamiętaj również, że nie wszystko musisz robić sam. Wspominaliśmy już o tym w punkcie dotyczącym wyznaczania priorytetów. Tam właśnie określiłeś wagę poszczególnych zadań i zgodnie z tym wiesz już, które prace mógłbyś delegować komuś innemu. Najlepiej podziel się pracą jak najszybciej, nie trzymaj w zawieszeniu zadań do wykonania. Pamiętaj jednak, aby delegować zadania odpowiednio do zdolności i możliwości współpracownika. Możesz również używać różnych narzędzi do pracy grupowej (na przykład Asana, JIRA, Stack itp.), które usprawnią wspólne działania przy realizacji projektu.
 

Wynegocjuj nowy deadline


Na koniec rozwiązanie radykalne, które warto zastosować, gdy nie zadziałała żadna z powyższych rad. Gdy już wiesz, że nie dotrzymasz deadline’u, musisz zachować się odważnie i skontaktować się z klientem. Na początek warto wyjaśnić, z jakiego powodu nastąpiło opóźnienie. Najlepiej znajdź jakieś racjonalne wytłumaczenie, konkretne. Potem zacznij negocjować nowy termin. Pamiętaj jednak, aby był to deadline realistyczny. Musisz zdobyć czas, w którym rzeczywiście będziesz w stanie dokończyć projekt. W przeciwnym razie znowu będziesz musiał tłumaczyć, dlaczego nie zdążyłeś. To może mocno nadszarpnąć Twoją reputację i markę, a na to nie możesz sobie pozwolić.
 

Deadline nie musi być straszny, jeśli podejdziesz do realizacji prac racjonalnie, kierując się rozsądkiem, nie emocjami. Oceń, czy proponowany czas na wykonanie zadania jest realistyczny i nie bój się negocjować nowego terminu, gdy uznasz, że nie można zakończyć projektu, zapewniając jego wysoki poziom. Takim podejściem tylko zyskasz szacunek i potwierdzisz swój profesjonalizm.