Jak pisał Herbert – warto z uporem powtarzać stare zaklęcia ludzkości: bajki i legendy. Wszyscy znamy historię Syzyfa – ulubieńca bogów, który naraziwszy się Zeusowi padł ofiarą srogiej kary. Przyszło mu w nieskończoność wtaczać na szczyt ogromnej góry wielki głaz, który tuż przed osiągnięciem celu miał zawsze już wymykać mu się z rąk, spadać w dół zbocza i zmuszać go do rozpoczęcia zadania raz jeszcze. Bezsensowna, pozbawiona efektu praca, od tysiącleci jest więc symbolem tortury.
U zarania dziejów nie było zajęć beznadziejnych. Rozpaczliwa była kondycja ludzka – krótkie życie, łatwa śmierć, choroby, głód i chłód. Cierpieliśmy dzień w dzień pod wiecznie smutnym niebem. Niebezpieczne i nużące polowania, żmudna uprawa roli – straszna to była niedola. Jedno, jednakże rzec trzeba – miało to sens. Kto ubił dzika, zjadł go i przeżył, kto zboże zasadził i zebrał nie mógł powiedzieć, że spędził miesiące na bezsensownych czynnościach. Różne nas sprawy wówczas torturowały, ale praca mogła dawać satysfakcję.
Trzeba było kilku tysięcy lat, by sytuacja uległa odmianie. Dość radykalnej, bo w zasadzie obróceniu o 180 stopni. Mało co nas dziś zabija, a pod względem wysiłku wymaganego do przeżycia znaleźliśmy się na przeciwnym biegunie. Trudniej dziś umrzeć niż przeżyć (do czasu starości oczywiście). Złożoność społeczeństwa i gospodarki eksplodowała tak bardzo, że choć zasadniczo wszystko co robimy za pieniądze ma jakiś sens globalnie, to lokalnie już nie zawsze.
Przychodzimy do pracy. Współtworzymy jakiś-tam produkt cyfrowy. Bierzemy za to pieniądze, kupujemy produkty wytworzone przez innych ludzi z innych kontynentów. Niby wiemy, że do czegoś ta nasza praca się przydaje, że jest gdzieś na wysokim poziomie jakieś jej uzasadnienie, ale z perspektywy mikro ono po prostu, zwyczajnie nie istnieje.
Słyszałem o tak wielu przykładach deweloperskiej udręki, że nie wiem, czy nie należałoby wypłacać niektórym programistom dodatku za pracę w ciężkich warunkach…
- W projekcie ABC kilku koderów pracowało nad projektem przez ponad kwartał, w nadgodzinach, pod presją – tylko po to by dowiedzieć się, że zmieniła się koncepcja, ich praca wyląduje w koszu i mają zacząć od nowa w większym gronie.
- W projekcie BCD programista tworzył narzędzie dla dosłownie dwóch managerów wysokiego szczebla.
- Projekt CDE został po dziewięciu miesiącach zamknięty, ponieważ okazało się, że międzynarodowa korporacja prowadziła na całym świecie w tym samym czasie pięć identycznych przedsięwzięć i ktoś postanowił zakończyć cztery z nich.
- Projekt DEF trwał już dobre pół roku, kiedy pewien programista dowiedział się z pewnego źródła, że jest to już piąta z kolei próba implementacji tego samego oprogramowania. Żeby było zabawniej po kolejnym kwartale projekt został anulowany.
- Pewien pracownik po odbytej wideokonferencji oświadczył, że dzwoniono do niego z prośbą o wymyślenie jakiegokolwiek projektu, ponieważ osoba dzwoniąca ma trzysta tysięcy euro budżetu do spożytkowania.
Na szczęście nie każdy projekt tak wygląda. Tego typu syzyfowe prace są najczęściej domeną albo korporacji albo ledwie co założonych startupów. W tych drugich produkt może po prostu nie zdobyć wystarczającej ilości użytkowników i roczna lub dwuletnia praca trafia do piachu. W przypadku tych pierwszych natomiast spora grupa projektów powstaje nie z uwagi na realne zapotrzebowanie albo hipotezę rynkową, którą postanowiono zweryfikować, ale ze względu na politykę. Prezes mówi „internet of things” i dwór zarządza by całe jego królestwo rozsiane po kontynentach rozpoczynało projekty pod tym hasłem. Dwa lata później okazuje się, że trend się zmienił albo większość z nich była jedynie na szybko montowanymi chochołami nie mającymi prawa przetrwać w rzeczywistości.
W ogóle projekty podzielić można na zasadniczo trzy kategorie:
- Utrzymanie starych, rentownych produktów
- Budowa nowego produktu (9 na 10 nie przetrwa roku)
- Rozwój produktu o rosnącej bazie użytkowników
Do każdej z nich nadają się inne osoby, z czego dwie pierwsze są bliskie definicji tortury.
Nieustanne tworzenie nowych produktów, które nigdy nie wchodzą na produkcję przypomina akademickie klepanie programów na zaliczenie. Z jednej strony osoby kreatywne mogą się w tym jakoś odnaleźć, bawiąc się architekturą i eksperymentując z nowymi technologiami, z drugiej jednak na dłuższą metę dojdą do nieuchronnego wniosku, że ich praca to zabawa, że nic w gruncie rzeczy światu nie dają, że budują papierowe samoloty, zamki z piasku…
Utrzymanie starych, rentownych produktów z kolei bliskie jest zazwyczaj szambo-nurkowaniu. Są to projekty beznadziejnie nudne, w których czas spędza się jedynie na łataniu taśmą bugów w beznadziejnych próbach utrzymania rozpadającego się truchła w kształcie przypominającym to, czym dawniej było. Jest to skazana na porażkę walka z entropią i gniciem oprogramowania. Jest to mieszanka oddziału gerontologicznego i onkologicznego. Przede wszystkim jednak jest to morderstwo własnego CV, bo można się tam nauczyć jedynie cierpliwości.
Jedyna przyjemna i nieliczna kategoria to produkty o rosnącej bazie użytkowników – aplikacje, które powstały stosunkowo niedawno, przyjęły się na rynku i są rozwijane. Znajdziemy je w najczęściej udanych startupach, które ewoluują już w kierunku średnich firm.
Do tworzenia nowych produktów nadają się osoby kreatywne. Mają się w nich okazję wyżyć, wyszumieć w swoich twórczych popędach, eksperymentować do woli, często i bez konsekwencji. Można się w nich też wiele nauczyć – często używa się tam najnowszych technologii. Jeśli tempo prac nie jest zbyt duże można nawet pokusić się o rozsądne zaplanowanie architektury i z tego etapu naukę oraz doświadczenie wynieść.
Do projektów utrzymaniowych z kolei, nadają się ludzie cierpliwi. Ktoś, kto ma już swoje lata jako programista, nie czuje się na siłach, by zgłębiać nowe techniki i paradygmaty, może tam odnaleźć swój przedemerytalny zakątek. Także osoby potrzebujące odreagować od pędu ku nowoczesności mogą w nich przycupnąć i odsapnąć od pogoni za nowymi frameworkami. Kto jednak kreatywny, kto nie znosi chaosu i lubi zbawiać świat – popadnie w tych projektach w szał. Trzeba do nich ludzi spokojnych, pogodzonych z niedoskonałościami, ludzi, którzy przyjdą każdego dnia, potaplają się w bagnie, westchną i wyjdą o piątej do własnego życia…
Jedynie w miarę ustabilizowane projekty, o rosnącej bazie użytkowników, napisane niedawno, rozrastające się dadzą schronienie osobom pomiędzy tymi dwoma światami. Nie będzie tam frameworków sprzed tygodnia, ale nie będzie też sprzed dwóch dekad. Coś da się poprawić, choć architektury się nie zmieni. Bugi będą, bo są zawsze, ale będą też nowe funkcjonalności. Co najważniejsze jednak – będzie sens. Użytkownicy docenili produkt i chcą go używać. Piszemy coś fajnego, co ludzie lubią i z czego korzystają. Nie łatamy starego systemu, którego wszyscy nienawidzą. Nie robimy eksperymentalnego produktu, który może się nie przyjąć. Robimy prawdziwą, w starodawnym duchu, poczciwą, przydatną pracę. Czego wszystkim życzę.