Bez niego na pewno nie byłoby projektu informatycznego – programista. Niezależnie od języka programowania, to on wprawia aplikację w ruch, właściwie nadaje jej życie. Moim rozmówcą jest ktoś więcej niż tylko specjalista w swoim fachu. To przede wszystkim ambitny pasjonat i odkrywca – Krzysztof Rudowski. Na przestrzeni ostatnich lat połączyło nas kilka projektów. Z całym przekonaniem mogę powiedzieć, że praca z Krzyśkiem to nie tylko profesjonalny warsztat, ale też postawa sprzyjająca tworzeniu rozwiązań jutra. To po prostu przyjemność. Zobaczcie, co o swojej roli w projekcie ma do powiedzenia programista PHP.
Mówi się, że projekt bez project managera jest jak samochód bez kierowcy. Podążając za tą analogią, powiedziałabym, że projekt bez programisty byłby jak samochód bez silnika. Bez Was ewidentnie nie byłoby projektu. Jaka jest Twoja rola w całym jego cyklu?
Przede wszystkim jestem odpowiedzialny za realizację techniczną projektu. Składa się na to nie tylko pisanie kodu, ale także analiza tworzonych funkcji przed ich wykonaniem, znalezienie możliwych, a nieprzewidzianych na etapie analizy ścieżek algorytmu, przyjęcie rozwiązania, określenie obszarów stycznych do innych części aplikacji. Dla mnie ważne jest również zgłaszanie poprawek do zaprojektowanych funkcji; często stawiam się w roli użytkownika końcowego, aby móc ocenić użyteczność i intuicyjność serwisu. Przekładam potrzeby wykreowane w umysłach innych osób na działające mechanizmy. To w pewnym sensie też praca twórcza.
Z jakimi innymi rolami pracujesz w projekcie?
Praca w projekcie to praca w zespole składającym się w przeważającej części z programistów. Konsultujemy wzajemnie wdrażane rozwiązania, szukamy optimum, wykonujemy code review, wymieniamy się informacjami, uczymy od siebie nawzajem, ale też wzajemnie się wspieramy i mobilizujemy.
Z team leaderem konsultuję rozwiązania techniczne, czasem coś sugeruję, czasem sam szukam sugestii. Analizujemy pojawiające się problemy techniczne.
Z project managerem konsultuję się doraźnie, ale to jemu zgłaszam wszelkie problemy, luki w procesach, dokumentacji, nieprzewidziane w toku analizy, a konieczne do obsłużenia po stronie aplikacji, choć czasem konsultujemy też coś funkcjonalnie.
Pojawia się też potrzeba wsparcia ze strony administratorów – współpracujemy przy konfiguracji nowych elementów oprogramowania, środowisk projektowych, a także konsultujemy możliwości poprawy wydajności aplikacji.
Kiedy w projekcie pojawiają się testerzy, tłumaczymy działanie użytych algorytmów, omawiamy sposób zachowania się aplikacji, poprawiamy zgłoszone przez testerów błędy. Tu ważna jest komunikacja i zrozumienie, że gramy do jednej bramki, a nie przeciwko sobie.
Jakie cechy i kompetencje są potrzebne na Twoim stanowisku? Chodzi mi przede wszystkim o predyspozycje do wykonywania tego zawodu.
Poza kompetencjami technicznymi, które są najważniejsze na moim stanowisku, ważny jest otwarty umysł, umiejętność szerokiego pojmowania problemu, patrzenia na funkcje systemu z wielu różnych stron. To również umiejętność pracy w zespole, czasem pod presją czasu. Elastyczność, gotowość do szybkiego reagowania, ale też chęć do nauki i doskonalenia się. Technologia nie stoi w miejscu.
Co w takim razie dla programisty jest wyzwaniem? Czy właśnie nieuchronny rozwój technologii, czy może sam projekt? Pytam też o to, bo wiem, że w ostatnim czasie zmieniłeś framework, w którym programujesz.
Przyznam szczerze, że dla mnie największe wyzwanie to problem, którego ktoś inny nie może rozwiązać i powoli się poddaje. Od początku mojej przygody z programowaniem wyznaję zasadę, że nie ma rzeczy niemożliwych i każdy problem można rozwiązać, jest to tylko kwestią czasu, a tym samym kosztów (przypominam, że w naszej branży czas to też koszt :)). Mogę godzinami szukać rozwiązania. Łapię się też na tym, że czasem nawet po pracy taki problem nie daje mi spokoju.
Podobne wrażenia mam, gdy wkraczam w nową technologię – trzeba wertować dokumentację, zapamiętywać nieznane dotąd elementy składni czy poszukiwać standardów w rozwiązaniach. To rozwija, uczy, a przy tym mobilizuje.
Sam projekt jak najbardziej też może być ciekawym wyzwaniem, zwłaszcza, że wymagania każdego klienta są inne, inne też mogą być problemy, a one, jak już wspomniałem, są dla mnie najbardziej motywujące.
Co jest najtrudniejsze w pracy programisty?
Wydaje mi się, że samo podejście do problemu. Często programistom od razu po kilku zdaniach przeczytanej specyfikacji kreuje się w głowie rozwiązanie – zaraz wiemy jakiej technologii użyjemy, jakie interfejsy zbudujemy i „widzimy” jak coś będzie funkcjonować. Niestety, często się okazuje, że nasza wizja jest odmienna od oczekiwań klienta i zazwyczaj dowiadujemy się tego już po „wypalonych” godzinach. Moim zdaniem ciężko nam powstrzymać się przed natychmiastową realizacją tego, co kreuje się w głowie. Jednak bardzo ważne jest, aby przed realizacją funkcji poznać dogłębnie jej założenia i pamiętać, że nie piszemy jej dla siebie i własnej satysfakcji, ale dla klienta. Ona ma realizować jakiś cel biznesowy, a nie tylko założenia techniczne, nawet jeśli te są jak najbardziej poprawne.
Mówi się, że programiści to introwertyczni faceci we flanelowych koszulach, którzy całymi dniami ślęczą nad komputerem. Jak myślisz, skąd taka „łatka”? Czy ta opinia Twoim zdaniem jest nadal aktualna? Czy rzeczywiście programowaniu trzeba oddać cały swój wolny czas?
Programowanie to pasja, ciągłe poszukiwanie „flow”. To pojęcie z psychologii – stan między satysfakcją, a euforią, wywołany całkowitym oddaniem się jakiejś czynności. Dlatego też jesteśmy postrzegani jako ludzie, którzy mają swój świat, są przez niego pochłonięci i nie myślą o tym, czy mają na sobie wczorajszą czy dzisiejszą koszulę. Wydaje mi się, że takie postrzeganie jest także rezultatem obrazu programisty z lat 80-tych czy 90-tych, kiedy był on osobą odosobnioną, która coś tworzyła w swoim obszarze. Dziś kładzie się nacisk nie tylko na „klepanie” kodu, ale także na współpracę z innymi rolami, programista jest częścią ekosystemu jakim jest projekt. Nie można jednak zapominać że programowanie to praca idealna dla introwertyków :)
Ostatnio spotkałam się z określeniem, że programiści to arystokracja w branży IT. Wiem, że jesteś na etapie zmian i dalszego rozwoju. Jak Twoim zdaniem wygląda dziś sytuacja programisty na rynku pracy? Programista szuka pracy czy raczej odwrotnie?
Moim zdaniem rynek IT nie tylko w Polsce od jakiegoś czasu jest rynkiem pracowniczym, z racji ogromnego zapotrzebowania na specjalistów. Aby skłonić kogoś do pracy, oferuje mu się różne dogodności, nie tylko w postaci elementów wspomagających lub uprzyjemniających codzienną pracę (sprzęt komputerowy, owoce, masaże, przerwy na xboxa czy piłkarzyki), ale także jednorazowe profity za samą zgodę na zmianę pracodawcy czy polecenie do pracy znajomego. Ostatnio słyszałem, że jakaś firma oferowała dron, ale standardem stają się konsole do gier czy wyjazdy do spa, choć najczęściej jest to gratyfikacja pieniężna. Trzeba jednak pamiętać, że dla programisty najważniejszy jest świat w którym na co dzień przebywa – to, czy dobrze się czuje pomiędzy wierszami kodu, czy kod jest wysokiej jakości, ale także czy ma możliwość korzystania z nowych technologii, które pozwalają mu się rozwijać. Czasem pracodawcy zapominają, że równie ważnymi elementami mogą być te drobniejsze, jak wygodne krzesło, szybki dysk, więcej pamięci RAM czy profesjonalna myszka komputerowa. W końcu to szczegół tworzy ogół. Środowisko pacy nie przestaje być ważne, co więcej – staje się coraz ważniejsze. Cieszę się, że rynek postanowił temu sprostać.
Faktycznie programiści w branży IT mają się teraz jak pączki w maśle :) Dziękuję za rozmowę. Chciałabym życzyć bezproblemowego kodu, ale skoro „kręcą” Cię programistyczne zmagania nad rozwiązaniem, to życzę jak najwięcej takich wyzwań :)
Krzysztof Rudowski – certyfikowany programista PHP, skoncentrowany na dziwnych i trudnych programistycznych przypadkach. Nie straszne mu nowe technologie, w których stale i chętnie podnosi swoje kwalifikacje.
Po godzinach uczy się hiszpańskiego z uwagi na fascynację tym krajem i jego kulturą. Aktywnie kibicuje rozgrywkom piłki nożnej – oczywiście z pozycji widza na kanapie, z kuflem piwa w ręku ;) Uwielbia muzykę rockową, próbując przy tym swoich wokalnych sił w garażowym zespole muzycznym. Człowiek o wielu zainteresowaniach i pasjach, zdecydowanie zaprzecza stereotypowemu wizerunkowi programisty.
Ten programista tak naprawdę jest projektantem tylko sobie nei zdaje z tego sprawy, ktoś inny pewnei poprawia jego stylistykę io ortografię, przekazuje jego uwagi klientowi itd. czyli robi za SEKRETARKE
Marle, dziękuję za komentarz. Niestety nie mogę się z Tobą zgodzić. Pracowałam z Krzyśkiem kilka lat i zapewniam – Krzysiek nie ma swojej “sekretarki” :)
nawet tego mu żałujecie, poza należnym tytułem i uznaniem ;(
Ciekawy artykul.
Dziękuję :) Zachęcam do przeczytania również pozostałych wywiadów z tego cyklu: https://kjarocka.pl/beze-mnie-nie-byloby-projektu/.
Ciekawy wywiad.
Dziękuję w imieniu swoim i mojego rozmówcy :)