Do niedawna funkcjonował mit, że w pracy programisty najważniejsze są umiejętności techniczne. Tymczasem to właśnie kompetencje miękkie leżą u podstaw efektywnej pracy. Stworzenie oprogramowania, które idealnie odpowiada na potrzeby klienta to wyzwanie, przed którym stoją obecnie wszystkie firmy technologiczne, a co za tym idzie pracujący w nich programiści. I choć często programista ma do pomocy analityka, który jest łącznikiem pomiędzy biznesem a programistami, sam też musi włożyć dużo pracy w zrozumienie potrzeb klienta. Nie jest to możliwe bez kompetencji miękkich.
Zmiana podejścia do kompetencji programisty ma swoje uzasadnienie w trzech aspektach – zmiana roli programisty w ostatnich latach, sposób pracy oraz wymagania, jakie stawia przed programistami sama branża technologiczna.
Pomyślmy o roli, jaką pełni programista.
Mówiąc najprościej, jest to osoba, która pomaga w budowaniu rozwiązań. Istotą sukcesu jest tutaj dobre zrozumienie oczekiwań użytkowników końcowych. Taką szansę zapewnia między innymi otwarta postawa, umiejętność słuchania, komunikacji, klarownego wyrażania swojego zdania, a nawet empatii, czyli umiejętność przyjęcia sposobu myślenia klienta, spojrzenia z ich perspektywy na dane zagadnienie czy też problem. To dużo, ale dobre zrozumienie potrzeb jest podstawą do przygotowania dobrego rozwiązania. Często też zadaniem programisty jest weryfikowanie oczekiwań klienta, podpowiadanie mu, że pewne rozwiązania mogą nie być najlepsze i proponowanie innego sposobu podejścia do problemu. Wtedy przydaje się asertywna postawa. I właśnie ze względu na rosnącą kompleksowość pracy programisty kompetencje miękkie są niezbędne.
Programista, nawet jeśli pracuje zdalnie – rzadko kiedy pracuje nad rozwiązaniem sam.
Zespoły coraz częściej pracują w opartej na zasadach Agile metodyce SCRUM. Ich praca nad projektami oparta jest na ciągłej, nieustannej współpracy i komunikacji. Jednocześnie praca w tym systemie uruchamia zapotrzebowanie na całą kaskadę kompetencji miękkich związanych z perswazją, przekonywaniem i wzajemnym motywowaniem. Każdy programista staje się w pewnym sensie liderem w zespole i każdy ma możliwość wpływu na innych. W takich warunkach na pewno lepiej pracują zespoły, w których pracownicy są nastawieni na współpracę, dążą do dialogu i komunikacji a także ci, którzy potrafią czasem oderwać się od własnych przekonań i przyjąć perspektywę grupy. W przypadku wspomnianej wcześniej pracy zdalnej wyzwaniem jest umiejętność komunikacji na odległość i samodyscypliny.
Równie ważny czynnik, wpływający na kompetencje miękkie, determinuje sama branża IT.
Szybkość zmian i postęp, jaki odbywa się w świecie technologii wymaga od programistów dużej samoświadomości i ciągłego uaktualniania stanu wiedzy. Ponadto umiejętność radzenia sobie z ciągłą zmianą, gotowość do podejmowania ryzyka czy wychodzenie ze strefy komfortu to kluczowe cechy przyczyniające się do podejmowania nowych wyzwań i angażowania się w ciekawe i rozwojowe projekty.
Edukacja nie nadąża za zmianami rynkowymi
Zmiany w podejściu do wymagań wobec programistów są już widoczne. Jednak nadal jednak procesy edukacji i rekrutacji nie uwzględniają ich całkowicie. Rynek pracy i edukacji ma problemy z nadążeniem za tymi zmianami. Ze względu na ogromny popyt na kompetencje programistyczne, który rośnie w tempie geometrycznym. Rekruterzy niestety często nie mają wyboru i zatrudniają osoby, które nie mają w pełni ukształtowanego zaplecza kompetencji miękkich. Wpływa to realnie na jakość i sprawność w dostarczaniu rozwiązań technologicznych.
Autorka: Aleksandra Babicka – Head of HR w HL Tech