Kawa, wrzutki i code review. Dowiedz się, jak wygląda praca programisty

Dodane:

Adam Łopusiewicz Adam Łopusiewicz

Udostępnij:

Znacie taki żart o mężu informatyku? Mówi żona: – Poznajesz człowieka na fotografii? – Tak – odpowiada. – OK, więc dzisiaj o 16.00 odbierzesz go z przedszkola. Po rozmowach z kilkoma znajomymi koderami, zrozumiałem dlaczego dowcip nie mija się z prawdą. Programiści to zadaniowcy.

Zdjęcie royalty free z Fotolia

Mieć trochę na obrotomierzu

Jest nim m.in. Jarek Rencz, który do nabrania rozpędu do pracy potrzebuje CatchApp. Co rano dostarcza podsumowania tego, co dzieje się w interesujących go obszarach Internetu. Pokazuje jakie zmiany wystąpiły w projektach, w których bierze udział na GitHubie, co działo się na bugtrackerze klienta oraz jakie zmiany Project Manager wprowadził w dokumentach na Google Docs. – Bardzo przyjemnie nie musieć szukać tego typu rzeczy, a dostać je bez problemu, przygotowane w łatwej do przeskanowania formie – komentuje.

Jak sam mówi, do zadań siada “mając już trochę na obrotomierzu”. Rencz, tak jak i wielu jego kolegów, zazwyczaj pracuje w biurze. Kiedyś, gdy programowaniem zajmował się dorywczo, zdarzało mu się pracować w różnych miejscach, z czego dom był i tak jednym z ostatnich. – Kawiarnie, sale wykładowe, biura organizacji studenckich… raz nawet autobus nocny. Dopiero po jakimś czasie dotarło do mnie, że to nie było aż tak mądre, jak wtedy mi się wydawało – przekonuje Rencz.

Przede wszystkim myślenie

Po nabraniu jako takiego doświadczenia i wypiciu morza kawy nad swoim i nie tylko swoim kodem wybrał jednak biuro. Ułatwia skupienie się na zadaniach jakie czekają go w ciągu dnia. Programista lubi w ten sposób pracować, nawet jeśli efektem ubocznym przebywania w “open space” są niekiedy tzw. “wrzutki”, czyli nieplanowane zadania i prośby o pomoc spoza głównego projektu jaki wykonuje. Obojętnie czy pomaga innym, czy realizuje zadania z pracy, dużo czasu poświęca na strategiczne planowanie.

fot. Jarek Rencz - samouk z trzyletnim doświadczeniem w JavaScript i pięcioletnim w PHP

– Praca programisty polega wg mnie przede wszystkim na myśleniu – mówi Jarek Rencz, programista z kilkuletnim doświadczeniem. Do efektywnej pracy potrzebuje trzech czynników. Pierwszy z nich to code review, co pozwala trzymać rękę na pulsie (a może na kodzie?) i mieć także wpływ na planowanie innych rozwiązań. – Lubię przeanalizować problem jaki przede mną stoi, zanim podejmę decyzje dotyczące rozwiązań – dodaje Rencz. Kolejnym jest szukanie informacji i dokumentacja narzędzi.

Powrót do przeszłości

Dzień pracy programisty nie zaczyna się jednak od nowych zadań, ale od powrotu do przeszłości. Zazwyczaj najpierw przegląda zmiany jakie w ciągu końcówki poprzedniego dnia wprowadziły współpracujące osoby, albo aplikuje sugestie dotyczące proponowanych modyfikacji, jakie programista dostaje od współpracowników. – A po drugiej kawie można zabrać się za nowe zadania – mówi Jarek Rencz. Podobne zdanie ma Marcin Complak. Przyznaje też, że programista to indywidualny gracz.

Poświęca osiemdziesiąt procent czasu na samodzielną pracę nad kodem. Do tego okresu doliczyć należy też okres opracowania strategii. Wtedy pyta siebie: jak zaprojektować dane elementy, na co uważać i czego oczekuje klient. Reszta to planowanie i rozmowy na temat realizacji projektu i tego, co jest “do zrobienia”. – Jak się dobrze nie przemyśli podstaw, to cała reszta będzie jednym wielkim “babrownikiem” – mówi Complak. Przy małych projektach pracuje na czuja, przy większych z planem działań. Jak powstaje taka strategia?

Problemy zawsze i wszędzie

Jeśli projekt jest spory i wymagający, to pierwszą rzeczą jest zaplanowanie architektury modeli/bazy danych. Później następuje podział na kontrolery i widok. Jest to najbardziej standardowe podejście, czyli MVC – Model View Controller. Dopiero później planowana jest kolejność wykonania pracy i można zacząć kodować, czyli budować program, stronę internetową, czy aplikację mobilną. Programista zapytany o to, bez czego w pracy nie może się obejść odpowiada, że bez problemów.

fot. Marcin Complak - specjalista od PHP, Flash i node.js

– Są zawsze i wszędzie. Nawet w najprostszych zadaniach zawsze znajdzie się jakiś “fakap” – komentuje Marcin Complak, wieloletni programista. Największym problemem jest konieczność robienia wielu zadań na raz. Przekonuje, że można pokonać każdą barierę, ale gdy spraw jest mnóstwo, często graniczy to z cudem. W pracy przeszkadza mu też telefon, który dzwoni za często i gdy ktoś wprowadza zamieszanie podczas programowania. Do efektywnej pracy potrzebuje przede wszystkim spokoju.

Warunki pracy programisty

Najważniejsza w pracy zespołu programisty jest atmosfera i wspólne zrozumienie. – Zarówno zrozumienie na linii Project Manager – programista, ale też grafik – programista. O zrozumieniu w kontakcie z klientem już nawet nie wspomnę, bo to fundamentalne. Bez tego, to równia pochyła – przekonuje. Dodaje, że konflikty często wynikają z niewiedzy. Na przykład grafik znajduje ciekawe rozwiązanie i proponuje je klientowi bez konsultacji z programistą. Klient jest z niego zadowolony, ale przeznacza za mały budżet, aby poświęcić na to tyle czasu.

Przyznaje jednak, że są to “sytuacje z jednej strony niestety bardzo standardowe, a z drugiej często niemożliwe do uniknięcia”. Ważne, aby w zespole była osoba, która potrafi opanować złą atmosferę i pomóc w realizacji planu. Zazwyczaj jest nią Project Manager, który powinien być wyrozumiały i cierpliwy. Powinien też choć trochę umieć programować i znać żargon. – (…) żeby wiedział co się do niego mówi, potrafił wesprzeć, a po trzecie, żeby wiedział, czy nie jest oszukiwany przy wycenach – komentuje Complak.

Specyficzny “gatunek” ludzi

Często zadaniem Project Managera jest też przygotowanie specyfikacji projektu, w której ma wskazać, czego dotyczy zlecenie. Wykaz prac jest też przewodnikiem dla zainteresowanych, bo duży projekt nie ma szans na sprawną realizację bez planu działań. Niestety często bywa zbyt ogólny, w miejscach gdzie opis funkcji projektowanego narzędzia powinien być trzy razy dłuższy. To utrudnienie i wbrew pozorom strata czasu dla zespołu. Wtedy każdy członek ekipy dopytuje o szczegóły projektu, a nie zajmuje się pracą.

Co jeszcze warto wiedzieć na temat pracy programisty? – Programiści to bardzo specyficzny gatunek ludzi – mówi Marcin Complak, który od kilkunastu lat programuje. – Bywają z wierzchu bardzo nieprzyjemni, ale jak się ich pozna lepiej, to naprawdę fajni ludzie, którzy lubią wyzwania – przekonuje. Zwraca uwagę na odpowiednie warunki pracy, bo bez nich trudno podejmować zadania. Programista musi też czasem po prostu odpocząć. – Jak jest “sajgon” przez dłuższy czas, to głowa przestaje pracować i trzeba się “zresetować” – mówi Complak.

Projekt po godzinach

Reset moich rozmówców wygląda podobnie: przy programowaniu, najlepiej jakiegoś swojego pobocznego projektu. Aby nabrać do niego siły, trzeba być zadowolony ze spędzonego dnia pracy. Potwierdza to Jarek Rencz, który lepiej odpoczywa po pracy, jeśli udało mu się w niej osiągnąć zadowalający rezultat. Wtedy, nawet po ciężkim dniu siada wieczorem do czegoś swojego, czyli projektu który robi dla zabawy i tylko po to, żeby przekonać się czy warto zagłębić się w jakąś technologię. Programistą jest się 24 godziny na dobę.