Reorganizacja Software House'u: jak zmienić jego profil technologiczny i wybrać specjalizację na rynku IT?
Opublikowany: 2023-03-06Każda firma programistyczna ma swój własny profil technologiczny. Często jest tak, że dla osób technicznych jest to ważniejsze niż profil domeny firmy. Dzieje się tak dlatego, że programiści IT raczej patrzą na siebie przez pryzmat technologii, w której pracują, np. jestem programistą systemów budowanych w C#. Jednak to, czy robią projekt dla firmy zajmującej się szkoleniami, czy produkcją pudełek, ma drugorzędne znaczenie. Oczywiście wiedza dziedzinowa jest zawsze przydatna programistom, ale nie zmienia ich postrzegania siebie przez wymiar technologiczny – mówi Robert Marek, Co-founder & CTO w FINGO.
FINGO to polski software house, który od ponad 20 lat świadczy usługi programistyczne. W 2022 roku organizacja z powodzeniem zmieniła swój profil technologiczny. Oprócz oferowanych usług programistycznych w technologiach Java i .NET dodał Node.js oraz zrealizował wszystkie projekty stworzone do tej pory w PHP.
Dlaczego wykonano ten ruch? Jak wygląda proces samoorganizującej się zmiany? A jaki był wynik? Dowiecie się czytając nasz wywiad z Robertem Markiem.
Zanim zaczniemy mówić o samym procesie zmiany profilu technologicznego, czy mógłbyś nam powiedzieć, jak wyglądała firma przed jej reorganizacją?
Jeśli śledzisz 20-letnie portfolio FINGO, znajdziesz projekty dla branży finansowej, nieruchomości, motoryzacyjnej, e-commerce i wielu innych, mniej lub bardziej powiązanych ze sobą branż. To trochę przypadek – na przestrzeni lat pojawiały się takie projekty, a my rozwijaliśmy nasz zespół. Ale na taki stan rzeczy duży wpływ miał nasz profil technologiczny (Java, .NET, PHP), w ramach którego szukaliśmy kolejnych zleceń.
Czułem jednak, że nie jest to dobre dla naszej firmy. Duży rozrzut technologiczny generalnie nie jest dobry dla software house'u wielkości FINGO. Może być łatwiej znaleźć projekt, ale trudniej zapewnić wymienność ludzi. Dam ci przykład. Załóżmy, że potrzebujesz 5 programistów do swojego projektu. Na ławce siedzi 6 osób, ale tylko 2 znają technologię wymaganą w projekcie. Taki stan rzeczy sprawia, że bez pracy pozostaje jeszcze 4 wysoko opłacanych specjalistów, którym trzeba zapewnić pracę. Ponadto musisz zapoznać 3 osoby z wymaganą technologią, aby zapewnić obsadę projektu.
Jednak komfort dobrze funkcjonującego biznesu nie pozwolił nam na wprowadzenie zmian. Mieliśmy projekty, stałych, wieloletnich klientów i doświadczonych programistów. W takim środowisku trudno jest podjąć decyzję, aby zacząć coś zmieniać.
Co zatem skłoniło Cię do zmiany profilu technologicznego w FINGO?
Na początku pandemii rynek zamarł. Firmy, nie wiedząc, co będzie dalej, wstrzymywały się z kontynuowaniem obecnych projektów lub rozpoczynaniem nowych. To był czas, kiedy nawet programiści bali się utraty pracy. Zastanawialiśmy się, co robić. Nie chcieliśmy zwalniać ludzi, ale z drugiej strony potrzebowaliśmy czegoś, co wyróżni nas z tłumu.
W okolicach maja 2020 jako właściciele firmy stwierdziliśmy, że bez odważnych decyzji sytuacja może się pogorszyć. Najwięcej projektów, a co za tym idzie doświadczenia, mieliśmy w sektorze finansowym. Dodatkowo dysponowaliśmy częścią produktową oferującą oprogramowanie umożliwiające wdrożenie obowiązkowej sprawozdawczości w sektorze bankowym. Sektor finansowy był dla nas naturalnym wyborem.
Wtedy wydawało mi się, że FinTech i sektor finansowy raczej nie będą wykorzystywać PHP w swoich projektach. Założyłem więc, że skupiając się na tym sektorze odejdziemy od PHP i pozostaniemy tylko przy Javie i .NET. Z tą informacją udaliśmy się do zespołu na walne zgromadzenie spółki.
Czyli to wybuch pandemii zmusił Was do podjęcia decyzji o zmianie profilu technologicznego FINGO?
Tak i nie. Po podzieleniu się informacjami o specjalizacji powołaliśmy zespół roboczy składający się z kilku doświadczonych programistów z zacięciem do biznesu. 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 moje wcześniejsze przypuszczenia, że PHP było rzadkością w projektach finansowych. Jednocześnie zalecili rozwijanie kompetencji w Node.js, co jest cenione nawet w świecie start-upów.
W naszej firmie pielęgnujemy koncepcję turkusowego zarządzania, gdzie między innymi otwarcie konsultujemy z całym zespołem projekty istotne dla organizacji. Dzięki temu ludzie odczuwają wpływ na rozwój firmy, ale też współodpowiedzialność za podejmowane decyzje.
Dlatego inicjatywa przejścia na Node.js, która wyszła oddolnie, musiała jeszcze zostać zaakceptowana przez resztę zespołu FINGO. Szybko jednak okazało się, że jest silna chęć rozwoju w tym kierunku. Być może był to szczególny czas, kiedy wszyscy baliśmy się przyszłości w różnych wymiarach (aspekty ekonomiczne, zdrowotne itp.). Paradoksalnie zwiększyło to akceptację decyzji o podjęciu wyzwania.
Ile osób musiało zdobyć nowe kompetencje technologiczne?
W sumie zmiana objęła 15 osób. Musieli zdecydować, czy chcą rozwijać się jako frontend developerzy, czy pozostać backend developerami i tworzyć rozwiązania w Javie, .NET czy Node.js.
Jedna z tych osób była full-stack developerem, który zadeklarował się już jako frontend developer, więc w jego przypadku decyzja była łatwa. W rezultacie 2 osoby wybrały Javę, a pozostałych 10 wybrało Node.js.
W reorganizacji wzięło również udział dwóch testerów, którzy również musieli nauczyć się nowej technologii. Polityką naszej firmy jest pisanie testów w tej samej technologii co wytwarzany produkt. Gdy tester jest chwilowo niedostępny, takie podejście daje nam poczucie bezpieczeństwa; pisanie testów może być czasowo przejęte przez programistę.
Były też odejścia, ale były to decyzje indywidualne. Jedna osoba dość szybko zrezygnowała z FINGO, ale było to spowodowane tym, że rozwijał społeczność PHP we Wrocławiu. Naturalnym było, że nasze oczekiwania co do współpracy zaczęły się różnić. W trakcie trwającego procesu z różnych przyczyn z firmy odeszły kolejne 2 osoby.
Podjęcie decyzji to dopiero początek drogi.Czy firma w jakiś sposób pomogła programistom zdobyć nowe kompetencje?
Powstał strategiczny projekt, który ma wspierać deweloperów w przygotowaniach do jak najszybszego świadczenia usług w projektach komercyjnych. Na początku poprosiliśmy ich o subiektywne określenie, ile czasu potrzebowaliby na zdobycie niezbędnej wiedzy, która pozwoliłaby im śmiało podjąć się pracy dla klientów zewnętrznych, zakładając 2 scenariusze. Pierwsza z nich była ze wsparciem bardziej doświadczonego kolegi, druga bez takiego wsparcia. W odpowiedzi otrzymaliśmy różne szacunki.
Niektórzy deklarowali, że przy wsparciu doświadczonego programisty Node.js będą mogli dołączyć do komercyjnego projektu już po miesiącu, a inni dopiero po kilku miesiącach. Wszystko zależało od tego, jakie miałeś wcześniejsze (prywatne lub zawodowe) doświadczenia i ile miałeś w sobie odwagi. Warto również dodać, że w FINGO również mieliśmy doświadczenie z tym środowiskiem. Mieliśmy więc podstawę.
Nie narzucaliśmy im jednak sposobu zdobywania wiedzy. Wszyscy ci ludzie to doświadczeni programiści, którzy chcą się ciągle uczyć. Mają swoje preferowane style uczenia się. Generalnie ciągłe zdobywanie wiedzy jest niejako wpisane w branżę nowych technologii. Dlatego uznaliśmy, że najrozsądniejszym rozwiązaniem będzie po prostu zapewnienie im środków i czasu na naukę.
Zreorganizowaliśmy również firmę. Powstały samoorganizujące się gildie, w których ludzie pracujący w danej technologii, ale niekoniecznie nad tymi samymi projektami, wymieniają zdobytą wiedzę. W ramach gildii Node powstał również wewnętrzny projekt, w którym można było przetestować nowo zdobytą wiedzę. Zorganizowano kursy zewnętrzne dla wolontariuszy.
Jednak to, co dawało najwięcej, to możliwość szybkiego dołączania do projektów. Najlepszym tego przykładem było jedno ze zleceń, nad którym pracowaliśmy, gdzie potrzebowaliśmy wszystkich możliwych rąk. Po uzyskaniu zgody klienta do projektu dołączył doświadczony programista PHP, pracujący również w JavaScript, który nie miał doświadczenia z samym Node.js. Jednak w projekcie byli już doświadczeni programiści, którzy potrafili wesprzeć kolegę i zadbać o jakość kodu.
Porozmawiajmy trochę więcej o Twoich klientach.Jak zareagowali na Twoją decyzję o odejściu od PHP?
Największy wewnętrzny opór i smutek mieliśmy przy projekcie stworzonym dla klienta z 10 letnim stażem. To dość zabawne, bo jeden z naszych programistów pracował nad tym od samego początku. Oczywiście wiedział o systemie więcej niż wielu menedżerów w tej firmie. Trudno było nam wytłumaczyć im naszą decyzję. Mimo, że mieliśmy miesięczny okres wypowiedzenia, chcieliśmy dobrze zaopiekować się tą klientką. Umówiliśmy się, że będziemy dla nich dostępni przez kolejne sześć miesięcy. Co ciekawe, po 3 miesiącach klient sam zakończył współpracę, w związku z wewnętrzną reorganizacją firmy. Pokazało to również, że nie należy rozwodzić się nad rzeczami zbyt długo. Mają być zrobione i tyle.
Z innymi projektami było łatwiej. Podobnie jak inne wydarzenia, stało się to całkiem naturalnie. Na przykład mieliśmy klienta, który rozwijał część systemu w Node.js. Umówiliśmy się, że nasi programiści, którzy wcześniej wspierali projekt w technologii PHP, przez pierwsze miesiące będą świadczyć swoje usługi po niższych stawkach. Była to poniekąd rekompensata za zakładaną niższą efektywność zespołu, który niedawno zmienił technologie.
Jak myślisz, jak programiści postrzegają teraz tę zmianę?
Myślę, że są szczęśliwi. Ludzie w tej branży lubią się uczyć. Mieli wtedy czas i pieniądze na naukę. Studiowali w pełnym wymiarze godzin, otrzymywali pełne wynagrodzenie i mogli korzystać ze stypendiów naukowych. To z pewnością pozytywnie wpłynęło na ich uczucia.
Czy Node.js jest lepszy od PHP? Jest to oczywiście dyskusyjne. Z pewnością ta technologia jest teraz popularna, więc weszliśmy w okres trendu wzrostowego.
Niektórzy początkowo żałowali, że opuścili długoterminowy projekt PHP. Ale po krótkim czasie przyznali, że wyrwali się z pewnego rodzaju zastoju. I poczuli ekscytujący powiew nowych wyzwań. Ogólnie myślę, że poszło dobrze.
Jak długo trwała zmiana?
Cały proces rozciągnął się w czasie. Weryfikacja rynku trwała dość długo. Praca nad reorganizacją firmy i rozstaniem z klientami również zajęła dużo czasu. W sumie od powstania zadania w Jirze i jego zamknięcia minęły prawie 2 lata.
Warto jednak zaznaczyć, że najdłuższa przerwa pomiędzy deweloperem przechodzącym z projektu PHP na Node.js wyniosła zaledwie 3 miesiące. Wiązało się to z jego deklaracją czasu, który czuł, że potrzebuje, aby dołączyć do projektu z bardziej doświadczonymi kolegami.
Co było najtrudniejsze?
Myślę, że właśnie dochodząc do decyzji, że nadszedł czas, aby coś zmienić. Jednak świadomość, że jak nie zmienimy teraz, to za rok czy dwa nie będzie co zmieniać, znacząco pomogła w szybszym podjęciu decyzji.
Trudno było też rozstać się z klientami, gdy na horyzoncie nie było widać żadnej alternatywy, a sytuacja gospodarcza nie była stabilna.
Przez cały ten proces chcieliśmy zadbać o naszych stałych klientów, aby spokojnie znaleźli alternatywę, ale też zadbali o siebie. Zadbaj o przygotowanie programistów i ich gotowość do szybkiego przyjmowania zleceń w nowej technologii.
Gdyby CTO innej firmy przyszedł do Ciebie i powiedział, że też myśli o zmianie profilu technologicznego firmy, jakie 3 rady byś mu dał?
Miej wizję. Dowiedz się, dlaczego chcesz to zrobić, i wyjaśnij swojemu zespołowi, dokąd zmierzasz i dlaczego.
Współpracuj ze swoim zespołem. Rozmawiaj z ludźmi, dostosowuj swoje działania do tego, co słyszysz i bierz pod uwagę ich możliwości. Rób wszystko z ludźmi.
Rób wszystko konsekwentnie, pomimo chwil wahania.