[Miesiąc Programowania:] Dzień pracy developera. Kiedy programista nie koduje?

Dodane:

Daria Karasek Daria Karasek

Udostępnij:

Masz startup, małą lub średnią firmę i właśnie stoisz przed wyzwaniem zatrudnienia pierwszego programisty do swojego zespołu. Zastanawiasz się jak wygląda praca dewelopera i czy rzeczywiście możesz oczekiwać od niego, że cały dzień będzie pisał kod? Mylisz się.

Zawód programisty od kilku lat owiewają liczne legendy, mity i plotki. Wśród nich są tematy zarobków, zakresu zadań, używanych technologii, czasu potrzebnego na przygotowanie do zawodu czy sposobów nauki programowania.

Postanowiliśmy odczarować tę profesję i wspólnie z serwisem Antyweb zorganizowaliśmy akcję „Miesiąc Programowania”. Przez cały miesiąc będziemy publikować wysokiej jakości materiały skierowanie do programistów oraz wszystkich osób, które chciałyby rozpocząć swoją przygodę z programowaniem.

Tu znajdziesz je wszystkie.

fot. unsplash.com

Badania pokazują, że przeciętny deweloper na pisaniu kodu spędza jedynie połowę swojego czasu pracy. Zobaczmy więc jak wyglądają jego zadania w rzeczywistości. 

Myślenie

Tworzenie oprogramowania to czasami o wiele więcej analizowania niż pisania kodu. Jak mówi stare deweloperskie powiedzenie – myśl dwa razy, koduj raz. Mimo tego, że zapisane w aplikacji linijki można łatwo zmienić, opłaca się pracować nad tym, aby kod był tak dobry jak to tylko możliwe już za pierwszym podejściem. Ciężko dostrzec od razu jego wymierne rezultaty, jednak w dalej perspektywie to właśnie pomijanie tego etapu zabiera najwięcej cennego czasu, który w zamian trzeba poświęcić np. na poprawianie błędów.

Projektowanie 

Bez znajomości struktury aplikacji i jej obrazu jako całości ciężko byłoby od razu kodować i na każdym kroku zastanawiać się, jak powinny wyglądać pomniejsze elementy. Dlatego warto inicjować dyskusje pomiędzy osobami, które tworzą dla nas aplikację i dać im szansę na bycie częścią procesu jej planowania. Wtedy podejście programisty jest zupełnie inne, ponieważ w pewnym sensie sam planuje jak będzie wyglądała jego praca w czasie całego projektu. 

Spotkania

Jeśli w firmie stosuje się metody takie jak Scrum, bardzo ważne jest organizowanie spotkań typu Sprint planning, w trakcie których planuje się i szacuje pracę do wykonania podczas jednego sprintu, czyli np. tygodnia lub dwóch. Spotkania retrospektywne i przeglądowe są równie ważne, ponieważ pozwalają omówić pracę, która została już zakończona, przeanalizować ją i uzyskać opinię reszty zespołu, a w efekcie wprowadzić niezbędne ulepszenia i modyfikacje. 

Spotkania z klientami

Nie żyjemy już w świecie, w którym programiści są cenni tylko dlatego, że potrafią pisać kod. Wartość dzisiejszego dewelopera to także umiejętność komunikacji i przekładania wymagań firmy lub klienta na technologiczne rozwiązania. Programista musi zrozumieć wymagania budowanego systemu żeby móc dostarczyć jak najbardziej wartościowe rozwiązanie, a najlepszym źródłem informacji jest właśnie klient. Spotkanie z nim pokazuje jak w rzeczywistości wyglądają wyzwania firmy i jakiego rodzaju wsparcia od nas oczekuje. Jest to szczególnie ważne kiedy pracuje się metodyką Agile, w której dostarcza się klientowi mniejsze, skończone elementy aplikacji na bieżąco. 

Nauka

Jedną z ważniejszych cech, jakiej należy poszukiwać u programisty, jest chęć uczenia się. Jako software house poruszamy się w środowisku, w którym śledzenie branży i pozostawianie na bieżąco jest niezbędne do dostarczania najlepszych rozwiązań. Deweloper powinien mieć czas na szkolenia czy inne formy rozwoju zarówno w pracy, jak i w domu, aby móc lepiej wykonywać swoją pracę i rozumieć branżę. Jest to jeden z powodów, dla których mówi się, że programistą można być tylko z pasji, ponieważ poza murami biura trzeba dalej mieć w sobie chęć, aby sięgnąć po kolejny podręcznik czy tutorial.

Przekazywanie wiedzy

Największą wartością jaką programista może wnieść do zespołu nie są jego indywidualne umiejętności, ale to w jaki sposób potrafi wesprzeć swoich kolegów i dzielić się swoim doświadczeniem. Bycie mentorem dla innych jest też o tyle ważne, że podnosi produktywność i satysfakcję z pracy osoby, która może podzielić się swoją wiedzą i tym samym mieć swój wkład w sukces całego teamu. 

Odkrywanie

Aby skutecznie wykonywać swoją pracę, deweloper musi część swojego czasu przeznaczyć na czytanie istniejącego już kodu. Pozwala mu to lepiej zrozumieć, co dzieje się na każdym z poszczególnych kroków i wiedzieć, gdzie i jak wprowadzić zmiany. Czasami musi też mieć okazję spróbować różnych podejść żeby mieć pewność co do najlepszego rozwiązania. Jest to szczególnie ważne podczas pracy z rozbudowanymi projektami lub wprowadzania nowych technologii, z którymi trzeba umiejętnie zgrać te już istniejące. 

Testowanie 

Obserwując tworzenie kodu można sobie uzmysłowić, że jest to do pewnego stopnia otwarty proces, w którym zawsze można wprowadzić jakieś ulepszenia. Właśnie dlatego część pracy programisty polega na znajdowaniu obszarów do modyfikacji i wprowadzanie ich w aplikacji, tak aby działały w możliwie najbardziej optymalny sposób. 

W związku z tym bardzo ważne jest także testowanie, ponieważ w dużej mierze właśnie od niego zależy finalna wartość, jaką będzie niósł za sobą nasz produkt. Dlatego programiści spędzają sporo czasu testując własny kod i aplikacje samodzielnie lub pisząc automatyczne testy, które będą robiły to za nich. 

Jak widać programowanie to o wiele więcej niż pisanie kodu. Jeśli więc dasz programiście szansę poświęcić wystarczająco dużo czasu na zadania takie jak projektowanie rozwiązań odpornych na zmieniające się wymagania i wdrażanie różnorodnych strategii testowania, napisane przez niego aplikacje będą naprawdę wartościowe i wyróżnią twoją firmę na tle konkurencji. 

__

Daria Karasek

PR&Marketing Assistant w Inwedo