Co wpływa na produktywność developerów

Jesteś freelancerem, pracujesz z zacisza własnego domu, jesteś swoim szefem lub szefową. Może się wydawać, że problemy „zwykłych śmiertelników” pracujących na etacie w ogóle cię nie dotyczą. Nie masz nad sobą managera, który przypisuje sobie efekty twojej pracy, nie musisz siedzieć w biurowym open space, nie marnujesz czasu na spotkaniach.

Co wpływa na produktywność developerów
10 rzeczy, które niszczą produktywność programisty

Nie zawsze oznacza to jednak idealne warunki do realizacji zleceń i utrzymania pełnej produktywności. Co najbardziej obniża produktywność programisty-freelancera?

 

1. Przerwy, przeszkadzanie, spotkania

Tak, tego punktu nie mogło zabraknąć również na liście „przeszkadzajek” programistów pracujących zdalnie jako freelancerzy. Nie musisz uczestniczyć w spotkaniach zespołu lub cotygodniowych meetingach z przełożonymi, ale zamiast tego masz kilku lub kilkunastu klientów, którzy wymagają uwagi.
Video-konferencje, telefony i maile, które już od nagłówka krzyczą „pilne” nie pomagają w utrzymaniu koncentracji i skupienia na pisaniu kodu – ani tym bardziej na rozwiązywaniu programistycznych problemów klienta.

Mało który developer jest w stanie „zawiesić” szukanie rozwiązania problemu, uciąć sobie pogawędkę z klientem na Skype, który właśnie ma czas i chce sprawdzić, jak rozwija się jego zlecenie, a potem „odwiesić” i wskoczyć dokładnie w ten punkt, w którym musiał przerwać pracę. Złapanie przerwanego wątku i ponowna koncentracja to czasem pół godziny, czasem więcej.

Im więcej przeszkadzania, tym więcej frustracji, bugów i kodu niższej jakości.

 

2. Mikro-zarządzanie

Mikro-zarządzanie oznacza w praktyce kontrolę kogoś, kto nie zawsze rozumie twój sposób pracy, ale dąży do zwiększenia ilości przerw, spotkań, telefonów i maili.
Analizowanie i ocenianie każdej pojedynczej rzeczy, jaką robisz, nieprzyjemnie kojarzy się także z brakiem zaufania i podważaniem twoich kompetencji. To wpływa nie tylko na twoją produktywność, ale również na sam sposób pracy i poziom twojej satysfakcji.

 

3. Brak precyzji

Brak precyzji i jasnych instrukcji to zmora każdego programisty. Od komunikatów w stylu „tu nie działa, napraw to” aż do niejasnych specyfikacji elementów, które masz napisać. W takich sytuacjach masz dwa wyjścia: wdrażać to, co klientowi wydaje się potrzebne, zanim sprecyzuje to dokładnie albo czekać na dokładne instrukcje i ryzykować opóźnienie projektu.

Do tej kategorii zaliczają się także sytuacje, w których priorytety nie są wyraźne, więc kodując zastanawiasz się, czy na pewno pracujesz nad właściwym zadaniem.

 

4. Nieprzewidziane zmiany briefu

Zgodnie z prawem Murphy’ego zadanie do zrobienia zostanie zmienione, kiedy jest już prawie skończone i coś relatywnie łatwego zamieni w prawdziwego potwora.
Prosta funkcja, jak dodanie mapki na stronie www może rozrosnąć się w złożone zadanie zrobienia mapki w 3D, a kiedy ta wersja będzie prawie gotowa, klient poprosi jeszcze o możliwość nawigowania po niej, najlepiej ślicznym animowanym ludzikiem.

Oczywiście klient najczęściej nie zdaje sobie sprawy z tego, że mała zmiana dla niego oznacza ogrom pracy dla ciebie, nie zmienia poziomu frustracji.

 

5. Kodowanie bezużytecznych rzeczy

Jasne, że tak długo, jak klient płaci, możesz zawsze powiedzieć sobie, że nie jesteś konsultantem ani doradcą, więc napiszesz wszystko, czego życzy sobie zleceniodawca – to jego czas, jego pieniądze i on dostanie ostateczny produkt zgodny z wytycznymi.
Gorzej, jeśli w połowie twojej pracy dowiesz się, że ten element wcale nie był potrzebny, a klient zacznie się sprzeczać, czy zapłacić za coś, czego nie będzie używał. Satysfakcja z pracy? Gdzieś blisko poziomu 0.

 

6. Słabe rozwiązania techniczne

Nawet jeśli czasem masz dość bugów i niedziałającego kodu, w gruncie rzeczy lubisz swoją pracę i dostarcza ci ona masy satysfakcji (kiedy wszystko działa, oczywiście). A jeśli klient żeby zaoszczędzić albo skrócić czas twojej pracy (a więc swoje koszty) nalega na rozwiązania gorszej jakości, ale tańsze i szybsze?

Produktywność nie zawsze oznacza parcie do przodu i dostarczanie rozwiązań w najkrótszym możliwym terminie. Nie-najlepszy-kod napisany szybko oznacza, że projekt się powiększa i jest trudniejszy do zarządzania – czasem dla ciebie, a czasem dla twoich następców.

 

7. Słaba dokumentacja

Co przenosi nas do kolejnego punktu, istotnego zwłaszcza w przypadku freelancerów, którzy często dokańczają lub rozwijają prace sowich poprzedników. Każdy programista na etapie nauki wbił sobie do głowy, że lepiej zostawiać za dużo niż za mało komentarzy do kodu i rzeczywiście odnośniki do absolutnie każdego kroku oszczędziły pracy niejednemu developerowi.
Gorzej, jeśli komentarze wyjaśniają, co robi dany fragment, ale nie dlaczego ani po co to robi. Efekt? Bug w programie, natrafiasz na fragment, o którym nie masz pojęcia, do czego służy i naprawdę nie wiesz, od czego zacząć.

 

8. Narzędzia

Developerzy nie boją się korzystać z narzędzi do programowania, porządkowania, debugowania i tak dalej. Jasne, im większa automatyzacja, tym lepiej. Z kolei jeśli używasz mocno przestarzałych narzędzi, to również będzie miało wpływ na twoją produktywność.
To samo dotyczy „zewnętrznych” narzędzi, takich jak wygodna klawiatura i ekran. Biorąc pod uwagę koszty sprzętu i średnie wynagrodzenie programisty, warto zainwestować, aby zwiększyć produktywność choćby o kilka procent.

 

9. Otoczenie

Czy pracując w domu można mieć problem ze środowiskiem pracy? Wszystko zależy od twoich sąsiadów, współmieszkanców i/lub jakości słuchawek. Nie u wszystkich developerów sprawdza się na przykład praca w kawiarniach, bibliotekach lub coworkingach. Zbyt wiele ruchu dookoła rozprasza, ale white noise lub odgłosy natury – padający deszcz albo szum fal – mogą bardzo poprawić twoją koncentrację.

 

10. Niemożliwe deadline’y

Oczywiście, że klient chciałby wszystko jak najszybciej, nawet jeśli od tygodnia nie możesz doprosić się o szczegółowy brief lub specyfikację. Na wagę złota są ci, którzy rozumieją, że ty też potrzebujesz czasu na wykonanie zlecenia.

Deadline, który balansuje na granicy wykonalności dla jednych może działać stymulująco, dla innych może być źródłem frustracji i stresu, które nie sprzyjają myśleniu.

 

10 rzeczy, które niszczą produktywność programisty – podsumowanie

Jeśli przyjrzysz się uważniej, wymienione przez nas 10 punktów można odnieść do każdej branży, w której freelancerzy pracują nad konkretnymi zadaniami w ramach określonego projektu. Można jednak powiedzieć, że stres, jaki powodują, ma większy wpływ na programistów, ponieważ ich praca wymaga dużego skupienia i koncentracji, aby posunąć proces do przodu.