Reorganizacja Software House’u: jak zmienić profil technologiczny i wybrać specjalizację na rynku IT?

jak zmienić profil technologiczny i wybrać specjalizację na rynku IT

Każda firma programistyczna ma swój profil technologiczny. Często dla osób technicznych jest on ważniejszy od profilu domenowego firmy. Dzieje się tak dlatego, że developerzy IT raczej postrzegają się przez pryzmat technologii, w której pracują, np. jestem programistą systemów budowanych w C#. Natomiast czy robią oni projekt dla firmy zajmującej się szkoleniami, czy produkcją pudełek ma to drugorzędne znaczenie. Oczywiście wiedza domenowa zawsze przydaje się programistom, ale nie zmienia to ich postrzegania siebie przez wymiar technologiczny – Mówi Robert Marek, CTO i współzałożyciel FINGO.

FINGO to polski software house świadczący usługi programistyczne ponad 20 lat. W 2022 r. organizacja z sukcesem zmieniła swój profil technologiczny. Do oferowanych usług programistycznych w technologiach Java i .NET dodała Node.js oraz zakończyła wszystkie projekty tworzone do tej pory w PHP.

Dlaczego zdecydowano się na taki ruch? Jak wyglądał proces samoorganizującej się zmiany? I jaki był tego rezultat? Dowiesz się, czytając nasz wywiad z Robertem Markiem.

Zanim zaczniemy rozmawiać o samym procesie zmiany profilu technologicznego. Czy możesz opowiedzieć, jak wyglądała firma przed reorganizacją?

Jeśli prześledzić portfolio FINGO z 20 lat, znajdziemy tam projekty dla branż finansowej, nieruchomości, automotive, e-commerce i wielu innych, mniej lub bardziej powiązanych ze sobą. Trochę wynika to z przypadku – na przestrzeni lat pojawiały się takie projekty i to pod nie rozwijaliśmy nasz zespół. Ale na taki stan rzeczy duży wpływ miał właśnie nasz profil technologiczny (Java, .NET, PHP), pod który szukaliśmy kolejnych zleceń.

Czułem jednak, że nie jest to dobre dla naszej firmy. Duży rozstrzał technologiczny ogólnie nie jest dobry dla software house’u wielkości FINGO. Może i łatwiej znaleźć projekt, ale trudniej zapewnić wymienialność ludzi. Przykład. Załóżmy, że do projektu potrzebujesz 5 programistów. Na ławeczce siedzi 6, ale tylko 2 zna wymaganą w projekcie technologię. Taki stan rzeczy sprawia, że dalej bez pracy jest 4 wysoko opłacanych specjalistów, którym musisz zapewnić pracę. A do tego, musisz pozyskać 3 osoby znające wymaganą technologię, aby zapewnić obsadzenie projektu.

Mimo to od wdrożenia zmian powstrzymywał nas komfort wynikający z dobrze działającego biznesu. Mieliśmy projekty, stałych wieloletnich klientów, doświadczonych programistów. W takim otoczeniu trudno jest podjąć decyzję, żeby zacząć coś zmieniać.

Co zatem zadecydowało o zmianie profilu technologicznego w FINGO?

Na początku pandemii rynek zamarł. Firmy nie wiedząc, co będzie dalej, wstrzymywały się z kontynuacją bieżących lub rozpoczęciem nowych projektów IT. Był to czas, kiedy nawet u programistów pojawił się strach związany z możliwością utraty pracy. Zastanawialiśmy się, co zrobić. Nie chcieliśmy zwalniać ludzi, ale z drugiej strony potrzebowaliśmy czegoś, co nas wyróżni.

W okolicach maja 2020 roku, jako właściciele firmy, stwierdziliśmy, że bez podjęcia odważnych decyzji sytuacja może się pogarszać. Najwięcej projektów, a zatem i doświadczania, mieliśmy w sektorze finansowym. Poza tym mamy część produktową, która oferuje oprogramowanie umożliwiające realizację sprawozdawczości obligatoryjnej w sektorze bankowym. Naturalnym wyborem był dla nas sektor finansowy.

W tamtym czasie wydawało mi się, że FinTech i sektor finansowy raczej nie wykorzystują PHP w swoich projektach. Zakładałem więc, że stawiając na ten sektor, odejdziemy od PHP i zostaniemy tylko przy Java i .NET. Z taką informacją wyszliśmy do zespołu na ogólnym spotkaniu firmy.

Czyli to wybuch pandemii zmusił Was do podjęcia decyzji o zmianie technologicznego profilu FINGO?

Tak i nie. Po podzieleniu się informacją o specjalizacji powołaliśmy zespół roboczy składający się z kilku naszych doświadczonych programistów z zacięciem biznesowym. Jego zadaniem było sprawdzenie, jakie są trendy, technologie i popularne rozwiązania w poszczególnych krajach, jeśli chodzi o sektor finansowy. Ich analiza potwierdziła wcześniejsze przypuszczenia – PHP w projektach finansowych był rzadkością. Równocześnie zarekomendowali oni rozwinięcie kompetencji w Node.js, który jest ceniony, chociażby w świecie start-upów.

W naszej firmie pielęgnujemy koncepcję turkusowego zarządzania, gdzie m.in. znaczące dla organizacji projekty otwarcie konsultujemy z całym zespołem. Dzięki temu ludzie czują wpływ na kształtowanie się firmy, ale też współodpowiedzialność za podjęte decyzje.

Zatem inicjatywa przejścia na Node.js, która wyszła oddolnie od zespołu roboczego, musiała być jeszcze zaakceptowana przez resztę zespołu FINGO. Szybko jednak okazało się, że jest silna chęć rozwijania się w tym kierunku. Być może sprzyjał temu szczególny czas, gdzie wszyscy w różnych wymiarach (ekonomicznym, zdrowotnym itp.) baliśmy się o przyszłość. Paradoksalnie zwiększyło to akceptację dla decyzji o podjęciu wyzwania.

Ile osób musiało nabyć nowe kompetencje technologiczne?

W sumie zmiana dotyczyła 15 osób. Musiały one podjąć decyzję, czy chcą się rozwijać jako frontend developerzy, czy pozostać backend developerami i tworzyć rozwiązania w Java, .NET lub Node.js.

Jedną z tych osób był programista full-stack, który już wcześniej deklarował bycie frontend developerem, więc w jego przypadku decyzja była prosta. 2 osoby zdecydowały się na Javę, a pozostałe 10 wybrało Node.js.

W reorganizacji brało także udział 2 testerów, którzy również musieli nauczyć się nowej technologii. Nasza polityka firmy zakłada pisanie testów w tożsamej technologii, co wytwarzany produkt. Gdy tester jest chwilowo niedostępny, takie podejście zapewnia nam poczucie bezpieczeństwa – pisanie testów może chwilowo przejąć programista.

Nie obyło się też bez odejść, ale były to indywidualne decyzje. Jedna osoba dość szybko zrezygnowała z pracy w FINGO, ale wynikało to z faktu rozwijania przez niego społeczności PHP we Wrocławiu. Siłą rzeczy nasze oczekiwania co do współpracy zaczęły się rozmijać. W trakcie trwającego procesu, z różnych przyczyn, odeszły z firmy jeszcze 2 osoby.

Podjęcie decyzji to dopiero początek drogi. Czy firma jakoś pomagała programistom w nabywaniu nowych kompetencji?

Powstał projekt strategiczny, którego celem było wsparcie programistów w przygotowaniu do możliwie szybkiego świadczenia usług w projektach komercyjnych. Na początku poprosiliśmy ich, aby subiektywnie określili, ile czasu potrzebują na zdobycie niezbędnej wiedzy. Takiej, która umożliwi im pewnie podjąć się pracy dla klientów zewnętrznych, zakładając 2 scenariusze. Pierwszy – ze wsparciem bardziej doświadczonego kolegi z zespołu. Drugi – bez takiego wsparcia. W odpowiedzi uzyskaliśmy różne estymacje.

Niektórzy deklarowali, że ze wsparciem doświadczonego programisty Node.js są w stanie nawet po miesiącu dołączyć do projektu komercyjnego. Inni, że dopiero po kilku miesiącach. Wszystko zależało od tego, jakie kto miał wcześniejsze (prywatne lub zawodowe) doświadczenia i jak bardzo czuł w sobie odwagę. Warto też zaznaczyć, że w FINGO też mieliśmy doświadczenia z tym środowiskiem. Mieliśmy zatem jakąś bazę.

Natomiast nie narzucaliśmy im sposobu pozyskiwania wiedzy. Wszyscy ci ludzie to doświadczeni programiści, którzy chcą stale się uczyć. Mają preferowany styl nauki. W ogóle ciągłe nabywanie wiedzy jest wpisane niejako w branżę nowych technologii. Dlatego uznaliśmy, że najrozsądniejszym rozwiązaniem będzie po prostu zapewnienie im środków i czasu na naukę.

Przeorganizowaliśmy też firmę. Powstały samoorganizujące się gildie, gdzie ludzie pracujący w danej technologii, ale niekoniecznie przy tych samych projektach, wymieniają się zdobytą wiedzą. W ramach gildii Node powstał też wewnętrzny projekt, na którym można było testować nowo zdobytą wiedzę. Dla chętnych były organizowane zewnętrzne kursy.

To, co jednak dawało najwięcej, to okazja szybkiego dołączenia do projektów. Najlepszym przykładem było jedno ze realizowanych zleceń, gdzie potrzebowaliśmy rąk do pracy. Po uzyskaniu zgody klienta, do projektu dołączył doświadczony programista PHP, pracujący także w JavaScript, który nie miał jako takiego doświadczenia z samym Node.js. Natomiast w projekcie byli już doświadczeni programiści, potrafiący wesprzeć kolegę i zadbać o jakość kodu.

Porozmawiajmy trochę więcej o klientach. Jak przyjęli decyzję o Waszym odejściu od PHP?

Największy wewnętrzny opór i smutek mieliśmy przy projekcie tworzonym dla klienta od 10 lat. To dość zabawne, bo jeden z naszych programistów pracował przy nim od samego początku.  Siłą rzeczy miał on większą wiedzę na temat systemu niż niejeden menedżer w tamtej firmie. Trudno nam było przedstawić im naszą decyzję. Mimo że mieliśmy miesiąc wypowiedzenia, to chcieliśmy jak najlepiej zadbać o tego klienta. Zgodziliśmy się być dostępni dla nich jeszcze przez pół roku. Co ciekawe, po 3 miesiącach klient sam zakończył współpracę, z powodu wewnętrznej reorganizacji firmy. To też pokazało, że nie należy rozgrzebywać rzeczy zbyt długo. Należy je robić i tyle.

Z innymi projektami poszło łatwiej. Jakby sumą innych zdarzeń, zadziało się to dość naturalnie. Przykładowo, mieliśmy klienta rozwijającego część systemu w Node.js. Umówiliśmy się, że nasi programiści, którzy do tej pory wspierali projekt w technologii PHP, przez pierwsze kilka miesięcy będą świadczyć usługi po niższych stawkach. Niejako miało to zrekompensować zakładaną niższą wydajność zespołu, który niedawno zmienił technologie.

Jak Twoim zdaniem programiści postrzegają tę zmianę teraz?

Wydaje mi się, że są zadowoleni. Ludzie w tej branży lubią się uczyć. W tamtym okresie mieli zapewniony czas i środki finansowe na naukę. Uczyli się w ramach pełnego etatu, dostawali pełne wynagrodzeniem oraz mogli korzystać z dofinansowania na naukę. To na pewno pozytywnie wpłynęło na ich odczucia.

Czy Node.js jest lepszy od PHP? To oczywiście sprawa dyskusyjna. Na pewno ta technologia jest teraz na czasie, więc weszliśmy w okres wznoszącego trendu.

Niektóre osoby na początku czuły żal, gdy opuszczały wieloletni projekt rozwijany w PHP. Ale już po krótkim czasie same przyznały, że wyrwały się z pewnego rodzaju stagnacji. I poczuły ekscytujący powiew nowych wyzwań.

Ogólnie myślę, że dobrze się stało.

Jak długo trwała zmiana?

Cały proces przeciągnął się w czasie. Dość długo trwała weryfikacja rynku. Wypracowanie i przeorganizowanie się firmy i rozstawanie się z klientami też pochłonęło sporo czasu. W sumie od założenia taska w Jira i jego zamknięcia minęły blisko 2 lata.

Warto jednak zauważyć, że najdłuższa przerwa między przejściem programisty z projektu PHP do Node.js zajęła 3 miesiące. Było to związane z jego deklaracją czasu, jaki potrzebuje, aby dołączyć do projektu z bardziej doświadczonymi kolegami.

Co było najtrudniejsze?

Myślę, że samo dochodzenie do decyzji, że czas coś zmienić. Aczkolwiek świadomość, że jeśli nie zmienimy tego teraz to za rok, dwa nie będzie czego zmieniać, znacznie pomogła w szybszym podjęciu decyzji.

Trudnością okazało się też rozstawanie z klientami, kiedy na horyzoncie nie widać było jeszcze wyraźnie alternatywy, a sytuacja ekonomiczna nie była stabilna.

W całym tym procesie zależało nam, aby zadbać o naszych wieloletnich klientów. Sprawić, żeby spokojnie znaleźli alternatywę. Ale też zadbać o siebie. Zadbać o przygotowanie programistów i ich gotowość do szybkiego podjęcia zleceń w nowej technologii.

Gdyby przyszedł do Ciebie CTO innej firmy i powiedział, że również myśli o zmianie profilu technologicznego firmy, jakie dałbyś mu 3 rady?

Miej wizje. Wiedz, dlaczego chcesz to zrobić i jasno powiedz swojemu zespołowi, gdzie i po co idziecie.

Współpracuj z zespołem. Rozmawiaj z ludźmi, dostosowuj działania do tego, co słyszysz i bierz pod uwagę ich możliwości. Wszystko rób z ludźmi.

Działaj konsekwentnie, pomimo momentów zawahania.