27.10.20225 min

Maciej OlanickiRedakcja Bulldogjob

Czy Software Engineer to naprawdę inżynier?

Ile jest w programiście inżyniera, a w inżynierii programowania? Niełatwe terminologiczne spory sięgają także polskiego IT i codzienności developerów.

Czy Software Engineer to naprawdę inżynier?

Przeglądając oferty pracy w polskim IT, można odnieść wrażenie, że nazwy stanowisk Programista/Developer oraz Software Engineer / Inżynier oprogramowania stosowane są bez większej refleksji niemal całkowicie zamiennie. Ale czy to słuszne podejście – i czy każdy programista jest inżynierem? A może dziś, gdy znad Doliny Krzemowej nadciąga trend, w którym programiści to coraz częściej tzw. blue collars, developerzy to częściej wyrabiacze, rzemieślnicy, a nie inżynierowie?


Spór w Albercie

Impulsem do pochylenia się nad tą terminologiczną niejasnością była relacjonowana przez „The Globe and Mail” historia ze stanu Alberta w Kanadzie. Doszło tam do ciekawego sporu pomiędzy przedstawicielami Stowarzyszenia Zawodowych Inżynierów i Geologów Alberty (APEGA) a tamtejszym sektorem IT, na czele z firmą Octopusapp, Inc., znaną także pod nazwą jednego ze swoich największych produktów, czegoś w rodzaju systemu ERP dla małych i średnich firm – Jobber. Przedsiębiorstwo od lat konsekwentnie używa w swoich ofertach pracy i opisach stanowisk i właśnie to zwróciło uwagę stowarzyszenia.

Nie chodzi jednak o to, że inżynierowie i geodeci stanu Alberta chcą odmawiać programistom kompetencji technicznych czy umiejętności, które legitymizowałyby posługiwanie się przez niż inżynierską tytulaturą. Sprawa jest znacznie prostsza – APEGA chce pieniędzy. Jako organ związkowy oraz regulujący, swoisty cech, stowarzyszenie domaga się, aby wszyscy ci, którzy mienią się inżynierami, odprowadzali należne składki. I to niemało, firma zatrudniająca programistów jest w ramach związku zobowiązana do uiszczenia 500 dolarów przemnożony przez pierwiastek kwadratowy z liczby zatrudnionych inżynierów. Za 100 inżynierów trzeba więc zapłacić 5 tys. dolarów.

Rzecz jasna przedstawiciele APEGA zarzekają się, że nie chodzi o pieniądze, lecz o wymuszenie na samozwańczych inżynierach zmiany swoich praktyk. Z kolei przedstawiciele Jobbera uzasadniają, że wykorzystywanie nazwy stanowiska „software engineer” to globalny standard, które porzucenie wiązałoby się ze zmniejszeniem konkurencyjności przedsiębiorstwa na rzecz amerykańskiego big techu. Co ciekawe, żadna ze stron nie porusza w sporze kwestii wykształcenia rzekomych inżynierów. Sprawę będą rozstrzygać władze stanowe Alberty.


Zajrzyjmy do słowników

Zgoła inaczej sytuacja rysuje się w Polsce, nie oznacza to jednak, że śmiałe wykorzystywanie określenia software engineer czy też inżynier oprogramowania nie budzi niekiedy zastanowienia. W ramach zdrowego rozsądku z pomocą przychodzą słowniki polszczyzny, które są obszarze definiowania tego, kim jest, a kim nie jest inżynier, bardzo zgodne. Słownik języka polskiego PWN informuje, że inżynier to „osoba mająca wyższe wykształcenie techniczne; też: tytuł nadawany absolwentom wyższych uczelni technicznych. Nieco bardziej rozbudowaną definicją dzieli się starszy słownik pod red. W. Doroszewskiego. Tam inżynier to „posiadacz stopnia świadczącego o wyższym wykształceniu technicznym”.

W Polsce inżynier to więc tytuł zawodowy regulowany przez prawo, a nie postanowienia lokalnych stowarzyszeń. O tym kto może nazywać się inżynierem stanowi Art. 93 ust. 2 pkt 2 lit. b Ustawy z dnia 20 lipca 2018 r. o prawo o szkolnictwie wyższym i nauce, a także Obwieszczenie Ministra Edukacji i Nauki z dnia 18 marca 2021 r. w sprawie ogłoszenia jednolitego tekstu rozporządzenia Ministra Nauki i Szkolnictwa Wyższego w sprawie studiów (Dz.U. 2021 poz. 661). I to w zasadzie zamyka temat. 

Rzecz w tym, że nijak nie przekłada się na wspomniany już we wstępie stan rzeczy – z ustaw i rozporządzeń tak pracodawcy, jak i pracownicy niewiele sobie robią i nadal bez większej refleksji oferują bądź wykonują pracę na stanowisku software engineer, nie uwzględniając przy tym regulacji. Nic także nie stoi na przeszkodzie, aby ktoś, kto nie dysponuje tytułem zawodowym inżyniera, deklarował, że wykonuje pracę na stanowisku software engineera. Chyba że mowa o Niemczech – tam funkcjonować ma cała ustawa chroniąca i nakładająca sankcje za nadużycia w posługiwaniu się tytułami Ingenieur oraz Ingenieurin.


Inżynier i inflacja stanowisk

Taki stan rzeczy można zakwalifikować jako przejaw ogólnobranżowego zjawiska inflacji stanowisk. Ba, wykroczyło ono już dawno poza IT. Chodzi o inflację stanowisk ze szczególnym naciskiem do nadużywania ich nazewnictwa w taki sposób, aby nadać im jak najwięcej prestiżu. Na przykład po wizycie na portalu dla profesjonalistów i choćby pobieżnej eksploracji firm związanych z marketingiem czy PR-em, można odnieść wrażenie, że na polskim rynku pracy nie pozostało już zbyt wiele osób, które nie są managerami. Nawet jeśli zakres obowiązków pracowników z zarządzaniem nie ma nic wspólnego, to jednak wykorzystują ten tytuł w dużej mierze, bo mogą i dlatego, że ładnie brzmi.

Nie inaczej jest często z programistami, którzy utrzymują, że zajmują się inżynierią oprogramowania. Ba, śmiało posługują się nimi także specjaliści Quality Assurance, w przypadku których osób o tytule zawodowym inżyniera jest najpewniej znacznie mniej, niż wśród developerów. Świadczyć ma to dobrze nie tylko o pracowniku, ale też firmie, która nie zatrudnia „jakiegoś tam” Java Mid Developera, lecz inżyniera oprogramowania co się zowie. Następnie taki przykładowy software house może za zgromadzenie tak wykwalifikowanego zasobu ludzkiego oczekiwać należycie wyższej zapłaty od końcowych klientów.


Programowanie a inżynieria

Zastanawiając się nad leksyką, koniecznością gromadzenia tytułów zawodowych i brzydkiego obyczaju ich nadużywania, warto pominąć kwestię całym problemie być może najważniejszą. A mianowicie to, że programowanie i inżynieria oprogramowania to dwie osobne rzeczy. I o ile inżynier oprogramowania zawsze będzie programistą, tak programista wcale nie musi być inżynierem oprogramowania.

O tym, że spora część kodujących nie zajmuje się inżynierią, pisałem już nieco w tekście o „bluecollaryzacji” zawodu programisty. Coraz częściej, na razie głównie w USA, ale nie tylko, dostrzega się, że część prac prowadzonych nad oprogramowaniem to raczej praca rzemieślnicza niż inżynierska. Ta grupa w coraz większym stopniu traktowana jest już nie zgodnie ze standardami, jakie proponowano u zarania historii Doliny Krzemowej, lecz jak inni rzemieślnicy czy robotnicy. To skutkuje koniecznością jednoczeniem się w związkach zawodowych, które z kolei budzą przerażenie zarządów korporacji big tech i są aktywnie zwalczane.

Obok tego (lub ponad) jest inżynieria oprogramowania – dyscyplina, której samo programowanie jest zaledwie składnikiem. Jak przystało na inżynierię, w procesie budowania, rozwoju i utrzymywania oprogramowania wykorzystywane są tu naukowe metody badawcze. Stosuje się je do analityki, projektowania softu, ale też poznawania potrzeb i na tej podstawie definiowania wymagań. Proces tego planowania to jak widać coś znacznie więcej niż samo klepanie kodu. I choć zapewne walka z nadużywaniem tytułu inżyniera w stosunku do stanowisk stricte developerskich to walka z wiatrakami, to jednak warto zdawać sobie sprawę z elementarnych różnic.

<p>Loading...</p>