Tylko teraz 35% rabatu na hasło #DEV. Gwarancja Pracy lub Stażu gratis i wygodne finansowanie — nawet 40 rat 0%. Kto pierwszy, ten lepszy!
← Blog

Nie samym kodem... Najważniejsze kompetencje miękkie w pracy developera

11.07.2024

Nie samym kodem... Najważniejsze kompetencje miękkie w pracy developera

Programiście nie są potrzebne kompetencje miękkie? W artykule mierzymy się z tym stereotypem.

Branża IT jest na swój sposób wyjątkowa. Oferuje wiele możliwości rozwoju, umożliwia osiąganie dobrych zarobków i podnoszenia kwalifikacji. Rozwój kompetencji jest dziś kluczowy, ponieważ, im więcej potrafimy, tym bardziej stajemy się wszechstronni. A im bardziej stajemy się wszechstronni, tym większą wartość możemy zaoferować naszemu pracodawcy i zespołowi, z którym będziemy współpracować teraz lub w przyszłości. To z kolei przełoży się na obustronny sukces - my dowieziemy to, czego się od nas oczekuje, a w zamian za to, odpowiednio do naszych umiejętności otrzymamy za to wynagrodzenie. Dlatego tak bardzo ważny jest rozwój i zdobywanie kompetencji, jeżeli chcemy więcej zarabiać. Nie ma innej drogi.

 

W artykule przejdę przez te najbardziej istotne kompetencje miękkie, w pracy developera w branży IT. Umówmy się nie samym kodem człowiek żyje. Efektywna praca z resztą zespołu i zarządzanie pracą własną są kluczowe w pracy programisty.

Kompetencje miękkie w pracy developera

Kompetencje miękkie to inaczej kompetencje psychospołeczne związane ze współpracą z innymi, organizacją pracy oraz cechami charakteru. Kompetencje te są trudniejsze w ocenie w porównaniu z umiejętnościami twardymi. Panuje powszechny stereotyp, że programiści nie potrzebują skilli miękkich, by móc efektywnie wykonywać swoją pracę. W dzisiejszym tekście chciałbym się z tym zmierzyć i przedstawić kompetencje miękkie, które naprawdę liczą się na stanowisku developera.

Kreatywność

Jeżeli chcesz tworzyć ciekawe i funkcjonalne oprogramowanie, niezbędna będzie do tego kreatywność. Programowanie to w dużej mierze szukanie rozwiązań i sposobów na jak najlepszą implementację logiki przyjętej w specyfikacji. Jasne, zdarzają się miejsca pracy, w których zadaniem jest jedynie “klepanie CRUD-ów” i przepisywanie kolejnych linijek kodu. Zakładam jednak, że Ty z pewnością celujesz nieco wyżej ;). Dobry programista potrafi wymyślić takie rozwiązanie, które wpisze się w specyficzne potrzeby klientów, tworząc nową jakość. Kreatywność pomaga też w rozwiązywaniu problemów oraz myśleniu w sposób nieszablonowy. To także wprowadzanie nowych, świeżych rozwiązań, zmian i usprawnień, co jest cenione w branży IT i świadczy o innowacyjnym podejściu do zadań. Zwłaszcza w okresie intensywnego rozwoju narzędzi AI, możemy spodziewać się, że najbardziej cenieni i najlepiej opłacani będą ci, którzy potrafią nowatorskie idee przekuć w (działający!) kod.

 

PORADA: Jak rozwijać kreatywność?

  • W ramach ćwiczenia wymyślaj nieistniejące aplikacje lub programy dla różnych odbiorców.
  • Dbaj o higienę pracy i staraj się pewien czas w ciągu tygodnia poświęcić na nietechniczne zajęcia — słuchanie muzyki, niezwiązaną z branżą lekturę. Przeładowany umysł nie sprzyja kreatywności, a mózg potrzebuje różnorodnych bodźców do wymyślania nowych pomysłów.

Rozwiązywanie problemów

Zadziwiające może być to, że praca programisty w bardzo dużym stopniu to właśnie rozwiązywanie problemów. Na każdym etapie tworzenia oprogramowania developerzy mogą spotkać się z wieloma trudnościami. Nie wszystkie technologie są ze sobą kompatybilne, zdarzają się błędy w dokumentacji, niektóre wymogi klienta mogą być problematyczne we wdrożeniu, narzędzia się starzeją, a wersje oprogramowania deaktualizują. Oczywiście tutaj bardzo pomocna jest wiedza techniczna, jednak samo podejście psychiczne też ma znaczenie. Jeśli początkujący programista nie potrafi podejść do problemu jak do wyzwania i łatwo traci zapał do pracy, polegnie, zanim zdąży zwrócić na konsolę swoje pierwsze Hello World. Nie bez znaczenia są też zdolności analityczne, które ułatwią rozłożeniu trudności na czynniki pierwsze i dotarcie do ich źródła.

 

PORADA: Jak rozwijać umiejętność rozwiązywania problemów?

  • Naucz się priorytetyzować problemy, z którymi spotykasz się podczas pracy, np. nadając im numery (1 — najpilniejszy, 2 — średnio istotny, 3 — mało ważny). To z pozoru banał, ale tworzy dobrą podbudowę pod porządkowanie trudności i na starcie daje nam poczucie, że mamy kontrolę nad problemami (tak naprawdę to stara jak świat zasada dziel i panuj).
  • Słuchaj siebie i swojej psychiki. Jeśli czujesz, że ogrom trudności Cię przerasta, możesz spróbować na start rozwiązywać mniejsze problemy (traktując je jako rozgrzewkę), a potem przejść do większych.
  • Przygotuj listy źródeł i osób, które mogą być pomocne w rozwiązywaniu problemów przy wybranym projekcie. To mogą być przydatne linki z dokumentacją i instrukcjami, zebrane materiały szkoleniowe, czy kontakty do znajomych, z którymi pracowałeś kiedyś nad podobnym oprogramowaniem.

Zarządzanie czasem i pracą własną 

Pracując nad projektem, istotne jest, aby wykonać powierzone zadanie w określonym czasie. Odpowiednie ustalenie priorytetów umożliwi dowiezienie wyników w wyznaczonym terminie i pomoże uniknąć sytuacji kryzysowych oraz przytłoczenia. Dobrze zorganizowany czas pracy to klucz do sukcesu. Oczywiście wiele firm pracuje w systemie metodyk zwinnych, a nawet zatrudnia specjalistów, którzy mają dbać o odpowiedni przepływ pracy. Nie zwalnia nas to jednak z odpowiedzialności za terminową realizację zadań. Praca zespołu developerskiego nie dzieje się przecież w próżni. Zbyt późno naprawiony błąd w aplikacji może narazić na straty setki użytkowników, a za późno dowieziona funkcjonalność sprawi, że team testerów nie będzie miał co testować. Brak opóźnień na “produkcji” będzie sprzyjał ogólnemu zadowoleniu z pracy całego zespołu.

 

PORADA: Jak lepiej zarządzać czasem i pracą własną:

  • Planuj zadania do wykonania na każdy dzień i określaj, które z nich są najpilniejsze.
  • Skorzystaj z bezpłatnego narzędzia do mierzenia czasu pracy, by dowiedzieć się, jakie aktywności są najbardziej czasochłonne.

Elastyczność 

Umiejętność dopasowania się do zmieniających się okoliczności i wymogów może okazać się kluczowe dla całego projektu. Czasem zajdzie potrzeba, że będziemy musieli użyć nieznanej nam wcześniej technologii lub odnaleźć się w nowej wersji oprogramowania. Może się także okazać, że w trakcie trwania projektu nastąpią zmiany w funkcjonalności oprogramowania, zmieni się wizja klienta itd. Bycie elastycznym sprawi, że łatwiej będzie się pracowało zarówno samemu programiście, jak również całemu zespołowi, co niewątpliwie przełoży się na sukces i satysfakcję klienta. Dobry developer nie boi się wykraczania poza znane mu technologie, a umiejętność sprawnej adaptacji do zmian to bardzo istotny skill w świecie, który nieustannie pędzi do przodu.

 

PORADA: Jak rozwijać elastyczność?

  • Nie chowaj głowy w piasek i szukaj możliwości pracy przy projektach, które są dla Ciebie nowe, podejmuj wyzwania. W ten sposób przełamujesz swoje wewnętrzne opory przed zmianami i trenujesz zdolność do odnajdywania się w nowych sytuacjach. Poznajesz też w praktyce nowe technologie.

Umiejętność pracy w zespole 

Tworzenie oprogramowania to zwykle zadanie wieloosobowe, które wymaga współpracy, nieczęsto pomocy i dzielenia się wiedzą. Projekty wymagają efektywnej pracy zespołowej, dlatego otwartość i komunikacja jest kluczowa, aby zadania zostały wykonane w odpowiednim czasie i dostarczone w najwyższej możliwej jakości. Praca w zespole to również budowanie relacji (także sieci kontaktów biznesowych), oraz wymiana myśli i idei lub pomysłów np. w celu rozwinięcia danej funkcjonalności. Umiejętność współpracy jest złożona, to po części zdolność do słuchania i rozumienia innych, a jednocześnie możliwość efektywnego komunikowania swoich celów i potrzeb. Ktoś, kto potrafi skutecznie pracować w grupie, prawdopodobnie lepiej zrozumie potrzeby klienta. Będzie też dążyć do realizacji wspólnych celów.

 

PORADA: Jak wykształcić umiejętności zespołowe?

  • Tu nie ma drogi na skróty. Staraj się po prostu zrozumieć ludzi, z którymi współpracujesz. Jakie są ich potrzeby i obawy? Do czego dążą?
  • NIe bój się rozmowy i dopytuj, gdy coś jest dla Ciebie niejasne. Nie zakładaj przy tym, że inni mają złe intencje.
  • Spisuj swoje cele i potrzeby związane z projektem, nad którym pracujecie, by móc je skutecznie komunikować innym.

Odporność na stres 

Praca w szybkim tempie, terminy, pojawiające się błędy — to wszystko może stresować, dlatego ważna umiejętność radzenia sobie w trudnych sytuacjach. Biorąc pod uwagę zmiany, jakie mogą zajść w kodzie w trakcie wytwarzania oprogramowania, nieuniknione stanie się pojawianie błędów, które będą wymagały natychmiastowej reakcji, co w konsekwencji może prowadzić do pojawienia się dyskomfortu. Z kolei ryzyko związane z tym, że jakieś działania mogą przynieść skutki odwrotne do zamierzonych, mogą spowodować napięcie w całym zespole. Praca programisty raczej jest spokojna, jednak tuż przed planowanym terminem wdrożenia funkcjonalności może pojawić się presja i nerwowa atmosfera w całym teamie. Nie do końca chodzi o to, by developer miał stalowe nerwy niczym saper, ale o to, by nie dał się zewnętrznemu naciskowi i potrafił zapanować nad negatywnymi emocjami.

 

PORADA: Jak wzmocnić odporność na stres?

  • Pamiętaj, że tworzone przez Ciebie rzeczy są bardzo ważne, ale nie tak ważne, jak Twoje zdrowie psychiczne. Należy zawsze szukać równowagi między dawaniem z siebie 100%, a pewnym dystansem do wykonywanych obowiązków.
  • Nie obiecuj, że dowieziesz wszystko na pstryknięcie palcami. Branie na siebie obowiązków ponad siły zemści się w najbardziej gorącym okresie. Planuj zadania i terminy realizacji uczciwie — również wobec siebie.
  • Gdy masz natłok zadań, rozbijaj je na mniejsze części i wykonuj po kolei, skupiając się tylko na tym tasku, który robisz w danej chwili. To zminimalizuje poczucie przytłoczenia i ogromu pracy do wykonania. Możesz też skorzystać z techniki pomodoro.

Wytrwałość 

Branża IT ceni osoby, które są konsekwentne i ukierunkowane na ukończenie zadania we właściwym czasie. W każdej fazie projektu możemy zetknąć się błędami i problematycznymi sytuacjami. W trakcie wytwarzania kodu mogą się np. zmienić wytyczne klienta, co będzie wymagało wprowadzenia istotnych zmian, a to może całkowicie zburzyć dotychczasowy porządek i istniejący już proces pracy. Firmy doceniają osoby konsekwentnie dążące do celu, bo chcą, by praca została wykonana, a nie zostawiona w połowie.

 

PORADA: Jak wzmocnić wytrwałość?

  • Nie zniechęcaj się trudnościami. Staraj się podchodzić do nich po prostu jako do kolejnych etapów działania. W pracy developera konsekwencja w dużej mierze wynika z doświadczenia i zrozumienia, że szukanie rozwiązań oraz poprawianie swojej pracy są po prostu integralnymi częściami pisania kodu.

Chęć do ciągłego rozwoju

IT stale się zmienia, a to powoduje, że konieczne może być uzupełnianie i nabywanie nowych kompetencji. Ciągłe ich poszerzanie będzie pozytywnie odbierane przez pracodawcę i długoterminowo docenione. Weźmy pod uwagę przede wszystkim to, że przecież w IT stale kolejne technologie zastępują stare. Języki programowania również ulegają zmianie poprzez aktualizacje. Programy i narzędzia również się zmieniają, co powoduje, że aby opanować nowe funkcjonalności, okiełznać ekosystem konieczne będzie nabycie nowej wiedzy. Wspomnę też o sprzęcie - przez spopularyzowanie smartfonów zwiększyła się rola aplikacji mobilnych i programowania na froncie. Szybkie tempo zmian może wymusić ciągły rozwój.

PORADA: Jak zachęcić się do ciągłego rozwoju?

  • Poszukuj nowych projektów, których tematyka Cię interesuje, wówczas będziesz mieć naturalną wewnętrzną motywację do nauki.

Czy warto uwzględnić kompetencje miękkie w CV?

Oczywiście! Mocno zachęcam do uwzględnienia kompetencji miękkich w swoim CV, choćby ze względu na to, że wiele osób unika ich wpisywania, a to może sprawić, że taka aplikacja będzie niepełna i zostanie odrzucona przez rekrutera. Warto też mieć na uwadze, że proces rekrutacji jest czasochłonny i kosztowny, dlatego rekruterzy, mając tego świadomość i, aby uniknąć zatrudnienia nieodpowiedniej osoby, chcą mieć jak najpełniejszy obraz kandydata.

 

Pamiętaj, aby uwzględnić tylko te, rzeczywiste umiejętności miękkie. Jeżeli z trudem przychodzi Ci np. dokładna praca, a na danym stanowisku jest ona wymagana - nie wpisuj jej w swoim CV. Może to zostać źle odebrane przez rekrutera. Zamiast niej wpisz takie, które Twoim zdaniem są Twoimi najsilniejszymi i, które mogą przyciągnąć uwagę rekrutera. Może się okazać, że zaplusujesz w innych obszarach.

Bądźcie czujni — warto łączyć kompetencje

Wiele lat temu wystarczyło mieć umiejętności techniczne (kompetencje twarde), żeby móc wykonywać dany zawód. Dzisiaj patrząc z perspektywy rozwoju branży technologicznej, waga przechyla się na korzyść tych drugich.

 

Choć umiejętności twarde są kluczowe, to jednak takie cechy jak np. umiejętne rozwiązywanie problemów, radzenie sobie ze stresem, komunikacja w zespole, jasne określanie potrzeb, są tak samo ważne. Należy pamiętać, że same kompetencje miękkie (np. chęci do pracy), nie wystarczą w tak specyficznej branży, jaką jest IT. Bez twardych i mierzalnych umiejętności technicznych praca na stanowisku nie będzie w ogóle możliwa. 

 

W obecnych czasach, znacznie bardziej ceni się tych pracowników, którzy potrafią dostosować się do potrzeb biznesu i wnosić wartości w wielu obszarach. Kiedyś bardziej ceniono umiejętności twarde, wiedzę techniczną, a miękkie umiejętności interpersonalne były mniej istotne. To się zmienia, a granica między rolami, gdzie ważne są jedynie kompetencje twarde a typowo miękkimi stanowiskami powoli się zaciera.

Obie te grupy są ważne z perspektywy sukcesu zawodowego. Warto je rozwijać w celu zmaksymalizowania swoich szans na rynku pracy. Jeżeli myślisz o nauce programowania i odpowiednim wsparciu HR, koniecznie zapoznaj się z ofertą naszych kursów i rozwijaj umiejętności techniczne równolegle ze skillami miękkimi pod opieką profesjonalistów.