Technologie i stagnacja

Come back

Stagnacja – to dobre słowo na początek tego wpisu. Chwilka kiedy był ostatni? Niestety sporo się ostatnio działo w moim życiu i musiałem nieco ogarnąć swój porządek dnia. Dodam tylko iż winowajcą jest ten wredny uniwersytet oraz pewna niewiasta – choć i tak nie czuję się usprawiedliwiony :(

Ale porozmawiajmy o technologii. Technologią nazywam tu język programowania, framework, różnego rodzaju narzędzia jak docker czy wirtualna maszyna. Czyli wszystko czego na co dzień używamy.

Jako że jesteśmy w temacie stagnacji chciałbym powiedzieć o niej w kontekście mentalności programistów z którą się zetknąłem podczas tworzenia różnego rodzaju produktów. Oraz dlaczego jest dobra! Zła oczywiście też. Wszystko jest mocno subiektywne. Potraktować to można jak felieton.

“Mental smell” programistów

Skoro mamy “zapachy kodu” to czemu by nie powąchać programistów ;)

Zakładam że na samym początku kariery nikt nie wybrzydza i prędzej idzie tam gdzie poniesie go wiatr, chyba że jest wyjątkowo uparty. W każdym razie nic tu jeszcze nie przesądzono. Można rzeźbić jak w kupce mokrej gliny.

To naturalne, że ludzie czują się najbardziej komfortowo kiedy znają dogłębnie temat. PROgrammer o którym mowa myślę że prędzej wciśnie coś co zna, ale da się przekonać do innego frameworku. Myślę że niewielu do całkowicie nowego języka. Mimo wszystko jest spora szansa że osoba o której mowa jest już fanatykiem… Rozwija się, w obrębie wybranego języka, ale świata poza nim nie widzi. Każdy inny jest Be, ewentualnie fuj. Programista który lubi programowanie być może wyspecjalizuje się wolniej, ale pozostaje otwarty. Dostrzega wady i zalety oraz ma frajdę z poznawania tych rzeczy.

Myślę że wyraźnie widać co faworyzuję w tym zestawieniu, a co mi nie odpowiada. Co by nie było każdy ma prawo do takiego postępowania jakie uzna za słuszne. Nie oszukujmy się, programowanie może być życiową pasją, jednak jest cholernie nudnym zajęciem – przynajmniej większość czasu. Programista który pracuje bo daje mu to pieniążka jest ok, choć pewnie wkurzy pasjonata bo mu tak nie zależy. Natomiast ci co poczuli wiatr we włosach i są najmądrzejsi – niech zespół to ogarnie lub zaakceptuje.


Każdy z tych programistów kieruje się innymi wartościami. Ma inne przekonania i różny poziom wiedzy. Nie uważam aby zespół YOLO programistów stworzył coś sensownego, jednak gdyby wrzucić pomiędzy 3 z nich – mędrca oraz PROgrammera, gdyby zadziała się komunikacja i stworzył się TEAM – nic nie stoi na przeszkodzie! Wystarczy że zaczną kierować się wsólnymi wartościami.

Ciężko kierować się zdrowym rozsądkiem kiedy brakuje wiedzy. Doświadczeni programiści mogą już nie sledzić tak nowinek i zwyczajnie pozostają przy tym co znają. Jeden człowiek który jara się tematem może im tą wiedzę dostarczyć. Na seniorach ciąży obowiązek nie wpadania w stagnację i próbowaniu nowych rzeczy, w miejscach w których można sobie pozwolić na ryzyko lub w sposób który można łatwo “odkręcić”. Czasami po prostu należy zaryzykować.

Nie mówię że trzeba się stać programistą nowinek, po prostu trzeba pozostać otwartym na nowe propozycje. Jeśli pojawia się jakiś trend – czemu by tego nie wykorzystać skoro rozwiązuje gro problemów z którymi się borykamy?

Wybór

Wyobraźmy sobie firmę. Firmę która korzysta z różnych technologii.

Ma kilka teamów programistycznych na backendzie. 2x Java, 2x C#, 3xPHP. Trzy grupki ludzi, z różnymi umiejętnościami. Każdy będzie ciągnąć w swoją stronę. Moje jest mojsze niż twojsze! Zakładając nawet że oficjalnie się świetnie dogadują i rozumieją to pod nosem z kolegami się śmieją – ech ci dotnetowcy, metody z wielkiej litery.

Pojawia się projekt A. Dostał go team Java, lecz po jakimś czasie inny projekt B który utrzymują wymaga szczególnej uwagi. Nie będą mieli przez najbliższy rok możliwości rozwoju produktu A. Dostaje go team PHP. Ma już większość funkcjonalności, MVP zostało już z grubsza zrobione, wystarczy poprawić kilka bugów, dodać kilka prostych endpointów, zintegrować się z jakimś serwisem.

Team PHP niespecjalnie zna jave, uważa że PHP jest najlepsze na świecie. Wiecie co zrobią?

Przepiszą

Kilka miesięcy pracy teamu Java poszło na marne. Nikt nie był otwarty, nikt nie chciał zainstalować javy, zwanej też w tamtych kręgach wirusem. Pytanie czy to dobrze? Z jednej strony, skoro zostali zatrudnieni jako programiści PHP to czemu mieli by zacząć pisać w Javie? Nie taka była umowa! Z drugiej… To jeden projekt, większość skończona – dlaczego nie? Bo są zamknięci.

Gdybym miał coś napisać w PHP, jest to jeden z tych przypadków który wolałbym oddelegować byleby się tego nie tykać i jest w tym trochę mojej hipokryzji. Jednak w takich okolicznościach dodałbym ficzera, no nie umrę na zawał – chyba…

Podziały

Piszę o tym wszystkim żeby pokazać jak wielkie podziały może tworzyć framework którego używamy. Jeśli chodzi o mentalność programistów – jest jeszcze wiele rodzajów i chyba niewiele jest tych negatywnych, wiele wynika z braku doświadczenia które można przecież zdobyć. Każdego można by jakoś zabawnie zaszufladkować. Chcę przez to powiedzieć że podział na programistów be i programistów cacy jest nieodpowiedni. Przykład teamów który przytoczyłem pokazał podział ze względu na technologię, pewnego rodzaju technologiczną stagnację, która znacząco zwielokrotniła koszty wytwarzania. Gdyby tylko ktoś miał chęć poznać coś nowego – problem by nie istniał. A firma ma nóż na gardle – nie zwolni przecież programistów PHP, kto będzie rozwijać ich produkty? Przecież nie Javovcy, a nowi wyznawcy PHP będą mieli podobne podejście – więc trzeba przepisać.

Można pójść o krok dalej. Nie ma dobrych i złych technologii – są tylko te źle użyte, albo po prostu stare. Tylko czy stare są złe? Zależy. Sam kiedyś mówiłem że “Java to jest sto lat za C#, Java jest archaiczna itd.” – przyłączyłem się do głupiej wojny pomiędzy dwiema technologiami – głupie to. Nie ma nic złego w specjalizacji, ale nie ma też nic dobrego w trzymaniu się wybranej ścieżki kurczowo i nieodwoalnie.

Apeluję – pozostańmy otwarci, uczmy się dalej, do emerytury. Będzie ciekawiej, oraz wierzę że lepiej. Poza tym czasami o wiele taniej.