Edsger W. Dijkstra, holenderski naukowiec i pioner informatyki, w swoim tekście opublikowanym w 1972 roku pt. “The Humble Programmer”, wspomina o tym, że w latach 60’ ubiegłego wieku uważano programistów za ludzi, którym płaci się za dużo. Co więcej, już wtedy prognozowano spadek płac osób pracujących w tym zawodzie. Od tamtego momentu minęło ponad 60 lat, a programowanie nadal jest bardzo dobrze opłacane i branża z każdym rokiem się powiększa o kolejne setki tysięcy nowych programistów.
Gdy 10 lat temu zaczynałem przygodę z programowaniem też słyszałem w mediach o końcu słynnego “eldorado programistów”, czyli popularnego terminu na tę właśnie wyjątkowość finansową branży IT. Społeczeństwo od lat widzi programistów jako ludzi, którzy coś tam klepią w klawiaturę i dużo się im za to płaci. Podobnie było w czasach Dijikstry, nie tylko z perspektywy przeciętnego odbiorcy, ale też ludzi o podobnych profesjach. Edsger w swoim tekście wspomina jak podziwiał, że jego koledzy inżynierowie wiedzą wszystko o sprzęcie, na którym pracują. O tym jak rozwodzą się o specjalistycznej elektronice, a jemu zostaje… nic. Pracował przecież nad abstrakcyjnymi algorytmami, rozwiązaniami których wprost “nie widać”. Dzisiaj wśród niektórych dziedzin branży IT już łatwiej można “dotknąć” bezpośrednie efekty pracy programistów, jednak nadal jest to rola bardzo enigmatyczna.
I o ile enigmatyczność tłumaczy wizerunek programistów, to czy jest to powód wysokich płac? Dla przeciętnego odbiorcy rola prawnika czy księgowej też jest względnie enigmatyczna, ich praca wymaga wielu lat nauki i ciągłego rozwoju, identycznie jak osób z branży IT. Dlaczego jednak typowy prawnik czy księgowa nie zarabiają tak dużo jak typowy programista? Wytłumaczeniem tego problemu jest coś, co nazwę “skalą efektu”. Mam przez to na myśli to jak duży efekt (spełnienie potrzeb biznesowych) tworzy dana praca.
Prawnik, księgowa czy inny zawód specjalistyczny rozwiązuje pojedynczy problem biznesowy. Prawnik zajmuje się kwestiami prawnymi, księgowa dokumentami i kontaktem z urzędem, a np. korektor poprawia teksty przed publikacją. Ich praca tworzy pojedynczej skali efekt w zakresie ich roli. Jeśli potrzeba księgować więcej dokumentów, potrzeba więcej księgowych; jeśli powstaje więcej tekstów, potrzeba więcej korektorów… i tak dalej.
Z pomocą programów komputerowych można każdy z tych problemów rozwiązać “jednorazowo” i zniwelować całkowicie potrzebę skalowania przez zwielokratnanie liczby ludzi w danej roli. Mówiąc inaczej, masowe generowanie tysięcy faktur czy poprawianie tysięcy tekstów nie jest problemem dla programów komputerowych, dla pojedynczego człowieka już tak. Co więcej, program nie potrzebuje przerwy w pracy i można go łatwo skalować, wystarczy kupić lepszy serwer (wielokrotnie tańszy i szybszy od ludzi).
Wobec tego, kierując się podanymi przykładami, skala efektu pracy programisty tworzącego program do korekty tekstu jest wielokrotnie większa aniżeli skala efektu pracy pojedynczego korektora. Wartość programisty zawsze będzie wielokrotnie większa, bo programowanie jest najefektywniejszym z dostępnych dla człowieka narzędzi przy rozwiązywaniu problemów biznesowych. Dlatego opłacenie paru programistów za duże pieniądze do wykonania programu jest czynnością biznesowo lepszą niż płacenie miesiącami za pracę dziesiątek korektorów.
I warto tu zaznaczyć, że informatyka nie jest branżą geniuszy. Wiele dziedzin tworzenia oprogramowania nie wymaga znajomości matematyki czy ogólnie jakichkolwiek akademickich fundamentów. IT jest branżą nowoczesnych rzemieślników, specjalistów którzy dobrze znają swój fach, ale też ciągle muszą się rozwijać i doskonalić. Praca stolarza nie jest intelektualnie wymagającą (w porównaniu do pracy akademika), ale wymaga specifycznych zdolności myślenia abstrakcyjnego, wytrwałości i umiejętności efektywnego wykorzystania narzędzi.
Ale tym co odróżnia programistę od stolarza jest to, że ten drugi wykona jeden stół, a pierwszy napisze program, który wyprodukuje setki tysięcy stołów na sekundę. I to jest clue w całym temacie “eldorado programistów”. Dopóki komputery nie przejmą świata, programowanie zawsze będzie najefektywniejszym z narzędzi tworzenia. Automatyzacja działań nadal będzie zastępować pracę setek tysięcy osób, aż dojdziemy do momentu gdzie to kreatywność wyjdzie na piedestał. Tylko nawet wtedy, będzie potrzebny ktoś, kto będzie utrzymywał już powstałe systemy do automatyzacji.