Kiedy w firmie zajmującej się produkcją oprogramowania, któryś z programistów pozostaje bez projektu mówi się potocznie, że trafia na „ławeczkę” (bardziej można to porównać do tej na meczu piłkarskim niż ze szkolnej ławy). Gdy zaś w projekcie sytuacja jest odwrotna, czyli brakuje ludzi do pracy wówczas mówi się o „unławeczce”. Najczęściej w takich momentach firma wystawia ogłoszenie, na specjalnych dla branży grupach (np. na Slacku) lub w sieciach społecznościowych, informując inne firmy, że ma osobę „z wolnymi przebiegami”, którą mogą „wypożyczyć”. W taki sposób firmy starają się wzajemnie wspierać swoje działania. Deweloper nie nudzi się, nie szuka na siłę zajęcia i dzięki temu wszyscy są szczęśliwi.

Z ogłoszeniem tego typu, w popularnej sieci społecznościowej, wystawiła się jedna z firm produkujących oprogramowanie pisząc, że poszukuje ona do zespołu doświadczonego dewelopera. Nie byłoby w tym nic dziwnego, bo taka forma działania jest czymś normalnym, gdyby firma ta nie dostała oferty na tego samego programistę z kilku różnych spółek, za zupełnie różne stawki.

Ten moment sprawił, że ponownie zacząłem zastanawiać się nad tym jak ludzie, którzy tak jak ja poświęcają życie dla technologii, stali się “towarem”, którym się handluje (i to w bardzo brzydki sposób). Nie wspominając już o tym, że takie podejście do wzajemnej “pomocy” jest krzywdzące dla całej branży technologii informatycznych (TI).

Nie mogłem zrozumieć takiego postępowania. Zarówno moja pierwsza firma (także wszystkie kolejne projekty oraz inicjatywy), jak i miejsce, które obecnie mam ogromną radość współtworzyć powstały między innymi z miłości do technologii, a kolejne lata tylko mnie w tym uczuciu utwardzały. Nigdy jednak technologia nie była ważniejsza od samego człowieka, któremu to z definicji powinna służyć.

Dziecięce fascynacje technologią

Branża technologii informatycznych 
Commodore 64

Jako dziecko fascynowały mnie komputery. Uwielbiałem spędzać czas przy swoim Commodore 64, odkrywać jego możliwości, ucząc się korzystać z aplikacji, następnie pisząc swoje pierwsze linie kodu, by w wieku 12 lat stworzyć grę tekstową. Komputery były nie tylko moim zainteresowaniem, ale traktowałem je ze szczerą miłością. Z czasem wykroczyła ona poza same maszyny i objęła swoim zasięgiem technologię, w którą obecnie pokładam ogromne nadzieje dla poprawy funkcjonowania świata (ale nie jestem naiwnym optymistą, który nie widzi w niej też zagrożeń).

W swoim zawodowym życiu przeprowadziłem setki, jak nie tysiące rozmów z programistami. Zdecydowana większość z nich w podobnym tonie wypowiadała się o swoich doświadczeniach z młodości.

Spoglądając na wyniki ankiety Developers Survey przeprowadzonej przez Stack Overflow możemy zauważyć, że ponad 50% respondentów napisało swoją pierwszą linijkę kodu w wieku od 11 do 17 lat, a 14% pomiędzy 5 i 10 rokiem życia.

Zdecydowana większość z nich obawiała się tego by nie trafić nigdy do firmy, która będzie traktować ich przedmiotowo. Ci zaś, którzy trafili do dużych korporacyjnych “kombajnów” (głównie w młodości) w większości bardzo żałowali, że byli w nich tak długo.

Z raportu firmy Haystack wynika, że obecnie aż 83% programistów cierpi z powodu wypalenia zawodowego. Wśród głównych powodów takiego stanu rzeczy wymieniali oni duże obciążenie pracą (47%), nieefektywne procesy (31%) oraz niejasne cele i zadania (29%).

Nie ma się co jednak dziwić, że część z nich skręciła w tym kierunku. Przyciągani wyższymi niż średnie zarobki w branży pozwalały, przynajmniej w myślach, jeszcze bardziej cieszyć się życiem i prestiżem, nawet kosztem jego sporego kawałka.

Bycie programistą to odpowiedzialność

Programiści to w większości ludzie z pasją, którzy poświęcili niesamowicie dużo energii, część swojego życia i grono swoich marzeń by zostać specjalistami, którzy dzięki technologii mogą wpływać na otaczający nas świat.

Interfejs białkowy

Większość z nich, bo ponad 70% może pochwalić się wykształceniem wyższym. Najwięcej deweloperów, bo 40% jest w wieku pomiędzy 25 a 34 lata, a pomiędzy 35 i 44 rokiem życia trochę ponad 18%.

Praca wykonywana przez programistów to dużo więcej niż tylko „klepanie kodu”. Bardzo często nie zdajemy sobie sprawy jak bardzo trudne i złożone jest tworzenie aplikacji oraz jak wiele różnych czynników wpływa na powodzenie projektu. Każdy tworzony przez profesjonalnych deweloperów kawałek kodu to ogromna odpowiedzialność. Nie tylko za samą technologię, ale w głównej mierze za to, że to ona odpowiada za funkcjonowanie całych biznesów [ludzi pracujących w firmach (lub ich klientów), dla których tworzy się oprogramowanie, na którym później firmy opierają swoje działania], ekosystemów, a nawet za ludzkie życie. Pisałem o tym w jednym ze swoich artykułów pt. “Kiedy to oprogramowanie decyduje, czy przeżyjesz“.

Nie da się więc ukryć, że głównie dlatego (ale także z powodu braku specjalistów) branża TI cieszy się wysokimi zarobkami. Na tyle dużymi, że już w świecie startupów to główny programista zarabia więcej niż założyciel biznesu.

Braki specjalistów

Jeżeli ten ma wydać prawie 200 000 złotych rocznie na samego dewelopera (uwzględniając albo koszty B2B albo koszty pracodawcy przy umowie o pracę) to coraz trudniej będzie startupom tworzyć oprogramowanie. Ale to temat na zupełnie inny artykuł.

Wysokie zarobki sprawiają, że branża przyciąga do siebie coraz to większe ilości zwolenników, którzy (podobnie jak w innych branżach) nie zawsze trafiają do niej z zamiłowania, czy dzięki swoim umiejętnościom. Przez to coraz częściej można spotkać się z generalizującymi i bardzo krzywdzącymi opiniami na temat programistów czy ich pracy.

Przebranżowienie sposobem na brak specjalistów

Dzień po tym jak przeczytałem wcześniej wspomniane ogłoszenie, miałem odbyć spotkanie z jedną z firm, która pomaga ludziom bez wcześniejszego doświadczenia w programowaniu wchodzić do świata TI. Chciałem poznać ich sposób myślenia, działania, a także ewentualnie nawiązać z nimi relacje. Od wielu lat żyłem w przekonaniu, że takie firmy bardzo źle wpłynęły na jakość oprogramowania, rynek, a także na sposób kształcenia specjalistów.

Może zabrzmi to brutalnie, ale nie uważam, że każdy może zostać programistą. Tak samo jak nie każdy może zostać zawodowym śpiewakiem, skrzypkiem, chirurgiem, astronautą piłkarzem czy architektem. Co nie znaczy, że nie może nauczyć się języka programowania czy budowania algorytmów, bo to akurat uważam za słuszny kierunek rozwoju.

Jak w każdym wymagającym zawodzie, oprócz samych suchych faktów potrzebny jest zestaw umiejętności. Im wcześniej zaczniemy swoją edukację w tym kierunku tym jest nam prościej zdobywać wymagane doświadczenie. Firmy zajmujące się przebranżawianiem ludzi (nie napiszę, że wszystkie, bo byłoby to krzywdzące) bardzo często kuszą ogłoszeniami, że w dowolnym wieku, z dowolnego człowieka o dowolnym zestawie umiejętności i wiedzy, z dowolnej branży zrobią programistę. To nie prawda, co najwyżej nauczą podstaw języka.

Oczywiście nie zmienia to faktu, że nawet osobiście znam kilka osób, którym naprawdę udało się przejść z innych branż do TI i są doskonałymi specjalistami. Ale są to osoby, które nie tylko poświęciły wiele lat swojego życia, ale także cechowały ich bardzo dobrze rozwinięte umiejętności analitycznego myślenia i rozwiązywania problemów.

Przebranżowienie

Koszty kursów pozwalających na przebranżowienie są horrendalnie drogie, a w zamian za nie obiecuje się wysokie zarobki dla przyszłych absolwentów wypuszczanych na rynek. Tylko czy osoba po 8 tygodniowym kursie (bo takie też są sprzedawane), będzie potrafiła tyle samo co człowiek znający się na inżynierii oprogramowania, który lata spędzał na szlifowaniu swojego warsztatu? Gdzie jest cel? Gdzie jest kierunek? Czy nie robimy w ten sposób krzywdy tym ludziom? Czy nie stają się oni „trybami w maszynach”, które szybko można/trzeba wymieniać.

Gdyby te firmy (a nie twierdzę, że niektóre tak nie robią) potrafiły wyłuskać z tłumu spóźnione talenty, byłbym zgoła większym zwolennikiem tego typu kształcenia.

Nie chcąc jednak być uprzedzony postanowiłem, że spotkam się z wcześniej wspomnianą firmą i być może uda się im mnie przekonać, że żyję w błędzie (w końcu nie jestem nieomylny). Niestety okazało się, że zamiast z partnerem spotkałem się z typowym handlarzem “interfejsów białkowych” – firmą żerującą na osobach, które chcą się przebranżowić, wmawiając im, że lekkie zanurzenie się w temacie i szybka ścieżka są dużo lepsze niż rzeczowe podejście do tematu, a dla usprawiedliwienia swojego postępowania nazywała to filozofią poprzez tworzenie własnych standardów kształcenia.

Cała rozmowa była ubrana w estetycznie brzmiące zdania, ale ostatecznie przy zadaniu kilku trudnych pytań dało się sprowadzić temat do słów: “po co przepłacać za lepiej wykształconych, skoro tych mogę dać wam po taniości, a potem sprzedacie ich do swoich klientów”.

Siedząc tam zastanawiałem się jak muszą czuć się firmy, które faktycznie z troski o ludzi pozwalają się im przebranżowić i podchodzą do tego tematu etycznie, gdy mają na rynku tak wielu konkurentów tego pokroju oraz jak źle muszą czuć się ludzie, którzy wydali na tego typu kursy oszczędności swojego życia.

Braki specjalistów

Ogromne zapotrzebowanie związane z transformacją cyfrową, digitalizacją i pędzący do przodu rozwój gospodarczy od lat nieustannie zwiększają zapotrzebowanie na specjalistów.

Według szacunków organizacji Software Development Association Poland, na rynku brakuje nawet 250–300 tys. programistów.

Głównie przez ogromne zapotrzebowanie wiele firm przestało stawiać człowieka w centrum i zaczęło skupiać się na liczbach.  Głównym ich zadaniem było pozyskanie jak największej ilości specjalistów z rynku – nie zawsze wynikające z realnych potrzeb, a jedynie z przymusu lub zabezpieczenia swojej pozycji. Robiły to zarówno firmy produktowe, jak i duże konglomeraty outsourcingowe.

Taka spirala spowodowała, że z kolei inne firmy, który wyczuły rosnący popyt, odnalazły model biznesowy we wchłanianiu i wewnętrznym szkoleniu ludzi ze znajomości języków programowania, wypożyczać ich do firm outsourcingowych, które następnie wypożyczały ich do kolejnych firm tworząc tym samym ogromny łańcuszek.

Oprogramowanie

Bardzo podobną sytuację można zauważyć w przypadku nie tak dawnych dwóch katastrof jednego z producentów samolotów (specjalnie pomijam nazwę). Ich przyczyną było najprawdopodobniej wadliwe oprogramowanie systemu MCAS, które automatycznie zapobiega przeciągnięciu (utracie siły nośnej).

Mówi się, że powodem wady w samolotach były naciski na wprowadzenie tańszego rozwiązania. Oprogramowanie zostało wytworzone przez firmę, która zatrudniała tymczasowych pracowników z Indii za stawkę $9 za godzinę. W tym samym czasie producent zwalniał swoich doświadczonych inżynierów, a także doświadczonych kontrahentów co spowodowało utratę kontroli nad tworzonym oprogramowaniem. Producent przygotowywał specyfikację, zaś wcześniej wspomniana firma miała tworzyć wedle niej działający program. Pracowało nad nim kilka rzędów pracowników, posadzonych przy biurkach. Oprogramowanie, które trafiało do firmy, nie przechodziło nawet najprostszych testów, a jej kod był bardzo kiepskiej jakości.

Mimo ogromnej ilości zgłaszanych nieprawidłowości, nie udało się wyłapać ich wszystkich. Podjęta w ten sposób decyzja o zastąpieniu „skończonej ilości” specjalistów, „nieskończoną ilością” niewykwalifikowanego personelu stała się dramatyczna w skutkach.

Jako inną ciekawostkę dotyczącą odpowiedzialności za wytwarzane oprogramowanie chciałbym wskazać fakt, że pewna 13 letnia uczennica z Japonii została złapana przez policję za wstawienie linku do strony z nieskończoną pętlą alertów w JavaSciptcie. Podobną do tej:

while (1) {
  alert("!");
}

Nawet powstał specjalnie dedykowany temu zagadnieniu projekt na GitHubie.

Co warto zmienić w podejściu do programistów?

Przede wszystkim dajmy pole do rozwoju i przestańmy patrzeć na programistów jak na przedłużone interfejsy komputerów, przy których pracują.

Bycie inżynierem oprogramowania nie jest związane tylko z dostarczaniem samego kodu – nazywanego potocznie w branży jego „klepaniem”. To złożona i skomplikowana rola, w której trzeba spojrzeć na miliony różnych kontekstów i umieć połączyć je w jedną całość. Oczywiście nie bądźmy bezwzględni, bo nie da się tego osiągnąć od pierwszego dnia pracy, do tego też potrzebne jest doświadczenie.

Zadowolenie z pracy

Praca programisty związana jest z nieustannym, ekscytującym zdobywaniem wiedzy, gdzie nawet pozornie błahe problemy mogą spędzać sen z powiek. Zawód zdecydowanie nie należy do najłatwiejszych, a odnieść sukces można tylko wtedy, kiedy faktycznie spędza się niezliczone godziny na doskonaleniu swojego rzemiosła. Można to czynić poprzez praktyczne pokonywanie wyzwań i przeszkód podczas samego tworzenia oprogramowania, a także dzięki wyjściu poza sam aspekt kodowania i skupieniu się na dostarczaniu wartości (np. biznesowej czy społecznej).

Firmy, które zatrudniają deweloperów powinny skupić swoją uwagę na

  1. jasnym określeniu ścieżek rozwoju (mamy takie w Inwedo, niedługo będą mam nadzieję publicznie dostępne, teraz można wzorować się na tym co posiada GitLab),
  2. zbudowaniu programów rozwojowych,
  3. stworzeniu środowiska do wzajemnego zachęcania do rozwoju
  4. oraz zainwestowaniu w budżety szkoleniowe (i namawianiu do korzystania z nich).

Nie powinniśmy dopuścić do sytuacji, w której programiści nie rozwijają się w swoich projektach, gdyż wystarczy kilka długich miesięcy by rynek i technologia zmieniły się na tyle, że trudno będzie dogonić im rozwiązania, które w międzyczasie z trendów przeobraziły się w obowiązujące realia.

Skupmy się na kształceniu specjalistów, dbaniu o nich, pomagajmy im w rozwoju i nie traktujmy ich jako „dobro”, które możemy odsprzedawać lub pozbywać się, gdy kończą się projekty (tak działają niestety duże firmy, gdy wraz zakończeniem projektu zwalnia się kilkunastoosobowe zespoły). Nie dopuszczajmy do sytuacji, że deweloperzy odpowiedzialni są jedynie za samo pisanie kodu bez wnikania jaką niesie on za sobą wartość.

Producenci oprogramowania, którzy stawiają człowieka w centrum mogą poszczycić się bardzo dobrze rozwiniętą kadrą, która mocno integruje się z miejscem, w którym pracuje. Dzięki temu coraz więcej klientów dostrzega ogromne korzyści ze współpracy z takimi podmiotami.

Co w przypadku braku specjalistów

Pamiętajmy też, że nie zawsze do każdej pracy z technologią konieczni są programiści – tych zostawmy do naprawdę trudnych zadań.

Firma PWC opublikowała listę kroków, które powinny podjąć przedsiębiorstwa przechodzące transformację cyfrową. Są to:

  1. stworzenie strategii, która pozwoli na holistyczne spojrzenie na aktualną sytuację,
  2. uruchomienie projektów pilotażowych – z założeniem, że nie wszystkie projekty odniosą sukces,
  3. precyzyjne określenie potrzeb i zasobów,
  4. analiza danych oraz ich gromadzenie jako skuteczny klucz do przemysłu 4.0.
  5. budowa odpowiedniej kultury i jej wzrost ponad struktury firmy,
  6. stworzenie ekosystemu wraz z kompleksowym opracowaniem rozwiązań w zakresie produktów i usług dla klientów;
Low-code

Zakładając, że powinniśmy uruchomić wiele projektów pilotażowych zastanówmy się dla których z nich da zbudować się produkty minimalnie gotowe – a następnie spróbujmy (tam, gdzie się da) wykorzystać narzędzia low-code i no-code (czyli takie, które umożliwiają „wyklikanie” aplikacji). Możemy dzięki nim w szybki sposób tworzyć prototypy przez osoby mniej techniczne (oczywiście bardziej skomplikowane elementy integracyjne mogą nadal wymagać pomocy inżyniera). Wyobraźmy sobie, że dzięki szybkiemu wdrożeniu w takie rozwiązania kadra menadżerska, lub osoby odpowiedzialne za funkcjonowanie danego procesu w firmie są w stanie w przeciągu kilku tygodni sprawdzić i przeanalizować sens jakiegoś rozwiązania, przetestować go w realnym środowisku, a w przypadku powodzenia postawić na prawilne, dedykowane rozwiązanie tworzone przez doświadczony zespół.

Do brzegu

Dobrzy inżynierowie oprogramowania cechują się determinacją i wytrwałością dzięki którym są w stanie dostarczać użytkownikom końcowym skuteczne i intuicyjne w użytkowaniu rozwiązania. Muszą mieć bogatą wyobraźnię, śledzić na bieżąco trendy w branży, dużo czytać, poszerzać swoją wiedzę do granic możliwości, podważać status quo i każdego dnia wychodzić poza strefę swojego komfortu. Bycie programistą to nieustanny proces uczenia się, dzięki któremu praca ta jest pasjonująca i oferuje możliwość, nie tylko rozwoju swojej ścieżki kariery, ale przede wszystkim rozwoju osobistego.

Subscribe
Powiadom o
guest

15 komentarzy
Inline Feedbacks
View all comments
Zakochana w twoich treściach
Zakochana w twoich treściach

Uwielbiam kiedy rano przed rozpoczęciem pracy dostaję od Ciebie newslettera z nową, długowyczekiwaną treścią. Już się biorę za czytanie!

Zakochana w twoich treściach
Zakochana w twoich treściach

Adam, nawet nie zdajesz sobie sprawy jaki ten tekst jest dobry i jak wiele daje mi do myślenia. Jest tam wiele o mnie. Przez zbyt długo okres czasu siedziałam w korporacji czekając na to, aż coś się zmieni. Czekałam, bo czułam się tam bezpiecznie – wiesz rodzina, dzieci, obowiązki. Dopiero po latach zrozumiałam jak bardzo się myliłam i jak wielki błąd popełniłam nie szukając dla siebie miejsca w świecie. Powinnam w tym czasie walczyć o swój rozwój, a przez to na lata zatrzymałam się zupełnie. Oj, niech ktoś tylko nie odbierze, że to przez rodzinę czy coś w ten desen. Zupełnie nie o to chodzi. Chodzi o komfort wygodnej pracy bez wnikania w to co ważne i gnicie w wygodnym boksie.

Deweloper z krwi i kości
Deweloper z krwi i kości

Mam podobne spostrzeżenia. Zasiedziałem się w korpo. W sensie nie to, że przeszkadza mi siedzienie w jednym miejscu, bo w sumie to mógłbym i nawet już w jednym robić do emerytury, ale chodzi mi o miejsce, które nie stawia w żaden sposób na mój rozwój, także jak autor wspomniał na samym końcu – ten osobisty

DevConik
DevConik

Dobry artykuł, dużo mówi prawdny, szczególnie jeżeli chodzi o firmy, które obecnie kształcą deweloperów. Miałem kiedyś rozmowy techniczne u nas w firmie z kandydatami. Dostałem kilka różnych CV, i każde z nich miało wpisane dokładnie 1:1 tak samo zakres umiejętności i doświadczenia. Okazało się, że wszyscy byli dokładnie po tym samym bootcampie. Poziom wiedzy bardzo średnio. Oczywiscie to nie wina tych biednych ludzi, którzy dali się naciąć na ofertę nie do spełnienia

Marlena
Marlena

Bardzo dobry tekst. Wiele mówi o tym jak obecnie jestesmy postrzegani w branży i na rynku. Zgadzam się tez z tym, że jest dużo rozkapryszonych deweloperów, ale myślę, że to w każdej branży znajdą się takie wypaczone osobistości

KolegaKolegi
KolegaKolegi

Do branży IT, albo jak autor pisze TI trafiłem kilka lat temu z przebranżowienia. Byłem analitykiem. W pełni zgadzam się z tym, że te kursy nie rozwiązują wszystkich problemów i nie są wystarczające by móc nazywać się programistą. Mnie zajęło to lata by zrozumieć czym jest odpowiedzialność za tworzone oprogramowanie

Damian S
Damian S

Ostatnio oglądałem ciekawy talk na podobny temat: https://www.youtube.com/watch?v=R3enwmh0rh0 autor dość dostanie wyraża się na podobny temat.

Ja osobiście za największy problem branży IT uważam firmy zajmujące się outsourcingiem/body leasingiem i z całego serca chciałbym zaorania tej części biznesu IT:
* same w sobie te firmy nic nie dostarczają, towarem jest inżynier co samo w sobie jest już rakiem bo interes firmy nie leży w technologii czy jakości a po prostu sprzedaży jak największej ilości skór.
* Bardzo często firmy te zarabiają na niewiedzy, niewiedzy inżynierów że są po prostu okradani. Te firmy przerzucają faktury zabierając 50% lub więcej sumy którą za człowieka płaci klient docelowy.
Czasy pandemii otworzyły rynki pracy i obecnie bardzo łatwo znaleźć kontrakt bezpośrednio z zachodnią firmą bez pijawki w postaci firmy outsourcingowej. Puste hasła “trust passion innovation” i multisport już przestają ludzi przekonywać. Cieszy mnie ta rewolucja i mam nadzieje że zdalny model pracy bezpośrednio dla klienta zdominuje rynek.

e-technolog

To bardzo ważne o czym piszesz. Wiele ludzi tak naprawdę nie zdaje sobie z tego sprawy i myśli, że bycie programistą to błaha sprawa.

Pobierz moje darmowe publikacje

Zrozumieć Cyberbezpieczeństwo

Zrozumieć cyberbezpieczeństwo

Zaprezentowane w książce dane rysują krajobraz zagrożeń oraz pokazują, jak dramatycznie zmienił się on w ciągu ostatnich lat. Praktycznie każdy sektor publiczny i prywatny jest pod ciągłym atakiem hakerów, którzy za cel wybrali sobie kradzież danych, okupy lub zakłócanie działalności organizacji czy rządów.

MVP

Mini podręcznik przedsiębiorcy

E‑book, dzięki któremu zaoszczędzisz i dowiesz się jak zrealizować pomysł na biznes. Zarówno na początku swojej drogi, jak i wtedy gdy wdrażasz nowe rozwiązania w istniejącym przedsiębiorstwie. Metodologię opisaną w Mini Podręczniku Przedsiębiorcy możesz zastosować w różnych branżach i technologiach. Pokażę Ci jak to zrobić najefektywniej.

Zobacz także
Znane nieznane - Framework do znajdowania przyczyn i skutków problemów
Read more

Framework do rozwiązywania złożonych problemów

Stworzyłem framework do rozwiązywania problemów. Następnie nakarmiłem nim sztuczną inteligencję by sprawdzić, czy da się z niego w prosty sposób korzystać. Wyniki analizy, a także opis całego narzędzia zawarłem w artykule. Opowiadam w nim także o tym, jak odnaleźć to, co jest naprawdę kluczowe do zażegnania kłopotów. Opisuję także jak poznać prawdziwą przyczynę problemu, zwłaszcza gdy jest ona dla nas niewidoczna.