Reorganizarea unei case de software: cum să-i schimbi profilul tehnologic și să alegi o specializare pe piața IT?

Publicat: 2023-03-06

Fiecare companie de software are propriul profil tehnologic. Se întâmplă adesea ca pentru oamenii tehnici acest lucru să fie mai important decât profilul de domeniu al companiei. Acest lucru se datorează faptului că dezvoltatorii IT se văd mai degrabă prin prisma tehnologiei în care lucrează, de exemplu, eu sunt un programator de sisteme construite în C#. Cu toate acestea, dacă fac un proiect pentru o companie care se ocupă cu instruire sau produc cutii este de importanță secundară. Desigur, cunoștințele de domeniu sunt întotdeauna utile programatorilor, dar nu schimbă percepția lor despre ei înșiși prin dimensiunea tehnologică – spune Robert Marek, Co-fondator și CTO la FINGO.

FINGO este o casă de software poloneză care furnizează servicii de programare de peste 20 de ani. În 2022, organizația și-a schimbat cu succes profilul tehnologic. Pe lângă serviciile de programare oferite în tehnologiile Java și .NET, a adăugat Node.js și a finalizat toate proiectele create până acum în PHP.

De ce a fost făcută această mișcare? Cum arată procesul de schimbare de auto-organizare? Și care a fost rezultatul? Aflați citind interviul nostru cu Robert Marek.

Înainte de a începe să vorbim despre procesul de schimbare a profilului tehnologic în sine, ați putea să ne spuneți cum arăta compania înainte de reorganizare?

Dacă urmați portofoliul de 20 de ani al FINGO, veți găsi proiecte pentru sectorul financiar, imobiliar, auto, comerț electronic și multe alte sectoare, care sunt mai mult sau mai puțin legate între ele. Este un pic o coincidență – de-a lungul anilor au apărut astfel de proiecte și ne-am dezvoltat echipa. Dar această stare de lucruri a fost influențată în mare măsură de profilul nostru tehnologic (Java, .NET, PHP), sub care căutam noi comenzi.

Totuși, am simțit că nu este bine pentru afacerea noastră. O răspândire tehnologică mare nu este în general bună pentru o casă de software de dimensiunea FINGO. Poate fi mai ușor să găsiți un proiect, dar mai dificil să asigurați schimbul de oameni. Vă dau un exemplu. Să presupunem că aveți nevoie de 5 dezvoltatori pentru proiectul dvs. Pe bancă stau 6 persoane, dar doar 2 cunosc tehnologia necesară în proiect. Această stare de fapt înseamnă că mai sunt 4 specialişti bine plătiţi fără muncă, pentru care trebuie să le oferi de lucru. În plus, trebuie să familiarizați 3 oameni cu tehnologia necesară pentru a vă asigura că proiectul are personal.

Cu toate acestea, confortul de a avea o afacere care funcționează bine ne-a împiedicat să implementăm schimbările. Aveam proiecte, clienți obișnuiți pe termen lung și programatori experimentați. Într-un astfel de mediu, este dificil să iei decizia de a începe să schimbi ceva.

Deci, ce te-a determinat să schimbi profilul tehnologic la FINGO?

La începutul pandemiei, piața a înghețat. Companiile, neștiind ce avea să se întâmple în continuare, s-au abținut să continue proiectele curente sau să înceapă altele noi. Era o perioadă în care până și programatorii se temeau să-și piardă locul de muncă. Ne-am întrebat ce să facem. Nu am vrut să concediem oameni, dar pe de altă parte, aveam nevoie de ceva care să ne facă să ieșim din mulțime.

În jurul lunii mai 2020, în calitate de proprietari ai companiei, am constatat că, fără a lua decizii îndrăznețe, situația se poate deteriora. Am avut cele mai multe proiecte și, prin urmare, experiență, în sectorul financiar. În plus, aveam o parte de produs care oferea software care permitea implementarea raportării obligatorii în sectorul bancar. Sectorul financiar a fost o alegere firească pentru noi.

La acea vreme, mi se părea că FinTech și sectorul financiar erau puțin probabil să folosească PHP în proiectele lor. Așa că am presupus că, concentrându-ne pe acest sector, ne vom îndepărta de PHP și vom rămâne doar cu Java și .NET. Cu aceste informații, am ieșit la echipă la adunarea generală a companiei.

Deci, izbucnirea pandemiei a fost cea care te-a forțat să decizi să schimbi profilul tehnologic al FINGO?

Da și nu. După ce am împărtășit informații despre specializare, am desemnat o echipă de lucru formată din mai mulți programatori cu experiență, cu un talent pentru afaceri. Sarcina sa a fost să verifice care sunt tendințele, tehnologiile și soluțiile populare în țările individuale când vine vorba de sectorul financiar. Analiza lor a confirmat presupunerile mele anterioare, că PHP era o raritate în proiectele financiare. În același timp, ei au recomandat dezvoltarea competențelor în Node.js, ceea ce este apreciat, chiar și în lumea start-up-urilor.

În compania noastră, prețuim conceptul de management turcoaz, unde, printre altele, consultăm deschis proiectele care sunt semnificative pentru organizație cu întreaga echipă. Datorită acestui fapt, oamenii simt impactul asupra dezvoltării companiei, dar simt și o coresponsabilitate pentru deciziile luate.

Prin urmare, inițiativa trecerii la Node.js, care a venit de jos în sus, trebuia încă aprobată de restul echipei FINGO. Cu toate acestea, s-a dovedit curând că a existat o dorință puternică de a se dezvolta în această direcție. Poate a fost un moment special în care cu toții ne era frică de viitor în diverse dimensiuni (aspecte economice și de sănătate etc.). În mod paradoxal, această acceptare sporită a deciziei de a accepta provocarea.

Câți oameni au trebuit să dobândească noi competențe tehnologice?

În total, schimbarea a implicat 15 persoane. Au trebuit să decidă dacă doreau să se dezvolte ca dezvoltatori frontend sau să rămână dezvoltatori backend și să creeze soluții în Java, .NET sau Node.js.

Unul dintre acești oameni era un dezvoltator full-stack care se declarase deja dezvoltator frontend, așa că în cazul lui decizia a fost ușoară. În consecință, 2 persoane au ales Java, iar restul de 10 au ales Node.js.

La reorganizare au luat parte și doi testeri și au fost nevoiți să învețe noua tehnologie. Politica firmei noastre este de a scrie teste în aceeași tehnologie ca și produsul fabricat. Când testerul este temporar indisponibil, această abordare ne oferă un sentiment de securitate; testele de scriere pot fi preluate temporar de programator.

Au fost și plecări, dar acestea au fost decizii individuale. O persoană și-a dat demisia de la FINGO destul de repede, dar s-a datorat faptului că dezvolta comunitatea PHP din Wroclaw. Era firesc ca așteptările noastre pentru cooperare au început să diverge. Pe parcursul procesului în derulare, din diverse motive, încă 2 persoane au părăsit compania.

Luarea unei decizii este doar începutul drumului.Compania a ajutat cumva programatorii să dobândească noi competențe?

A fost creat un proiect strategic pentru a sprijini dezvoltatorii în pregătirea pentru furnizarea cât mai rapidă a serviciilor în proiecte comerciale. La început, le-am cerut să stabilească subiectiv cât timp ar avea nevoie pentru a dobândi cunoștințele necesare, astfel încât să le permită să lucreze cu încredere pentru clienți externi, presupunând 2 scenarii. Prima dintre acestea a fost cu sprijinul unui coleg mai experimentat, a doua a fost fără un astfel de sprijin. Ca răspuns, am obținut diverse estimări.

Unii au declarat că, cu sprijinul unui dezvoltator experimentat Node.js, vor putea să se alăture unui proiect comercial chiar și după doar o lună, iar alții doar după câteva luni. Totul depindea de ce experiență anterioară (privată sau profesională) ai avut și de cât curaj ai avut în tine. De remarcat, de asemenea, am avut experiență cu acest mediu la FINGO. Deci aveam o bază.

Cu toate acestea, nu le-am impus o modalitate de a dobândi cunoștințe. Toți acești oameni sunt programatori experimentați care doresc să învețe constant. Ei au propriile lor stiluri de învățare preferate. În general, dobândirea continuă de cunoștințe se înscrie cumva în industria noilor tehnologii. Prin urmare, am decis că soluția cea mai rezonabilă ar fi să le oferim pur și simplu resursele și timpul necesar pentru a învăța.

Am reorganizat și compania. Au fost create bresle auto-organizate, în care oamenii care lucrează într-o anumită tehnologie, dar nu neapărat pe aceleași proiecte, fac schimb de cunoștințe dobândite. Ca parte a breslei Node, a fost creat și un proiect intern, în care se putea testa cunoștințele nou dobândite. Au fost organizate cursuri externe pentru voluntari.

Totuși, ceea ce a oferit cel mai mult a fost oportunitatea de a se alătura rapid proiectelor. Cel mai bun exemplu în acest sens a fost unul dintre comenzile la care lucram, unde aveam nevoie de toate mâinile posibile. După obținerea consimțământului clientului, un dezvoltator PHP cu experiență s-a alăturat proiectului, lucrând tot în JavaScript, care nu avea experiență cu Node.js în sine. Cu toate acestea, în proiect existau deja programatori cu experiență, care au putut să sprijine un coleg și să asigure calitatea codului.

Să vorbim mai mult despre clienții tăi.Cum au reacționat la decizia ta de a te îndepărta de PHP?

Cea mai mare rezistență internă și tristețe pe care am avut-o a fost cu un proiect creat pentru un client de 10 ani. Este destul de amuzant, pentru că unul dintre programatorii noștri lucrase la el încă de la început. Desigur, el știa mai multe despre sistem decât mulți manageri din acea companie. Ne-a fost greu să le explicăm decizia noastră. Chiar dacă aveam un preaviz de o lună, am vrut să avem grijă de acest client. Am fost de acord să le fim la dispoziție pentru încă șase luni. Interesant este că după 3 luni, clientul a încheiat el însuși cooperarea, din cauza unei reorganizări interne a companiei. Acest lucru a arătat, de asemenea, că nu ar trebui să stai prea mult timp asupra lucrurilor. Ar trebui făcute și atât.

Cu alte proiecte a fost mai ușor. Ca și alte evenimente, s-a întâmplat destul de firesc. De exemplu, am avut un client care dezvolta o parte a sistemului în Node.js. Am convenit ca programatorii noștri, care au susținut anterior proiectul în tehnologia PHP, să-și ofere serviciile la tarife mai mici în primele câteva luni. Într-un fel, aceasta a fost o compensare pentru eficiența mai scăzută asumată a echipei care schimbase recent tehnologiile.

Cum credeți că văd dezvoltatorii această schimbare acum?

Cred că sunt fericiți. Oamenilor din această industrie le place să învețe. La acea vreme, aveau timp și bani să studieze. Au studiat cu normă întreagă, au primit un salariu integral și puteau beneficia de burse de studii. Acest lucru a avut cu siguranță un efect pozitiv asupra sentimentelor lor.

Este Node.js mai bun decât PHP? Acest lucru este desigur discutabil. Cu siguranță, această tehnologie este populară acum, așa că am intrat într-o perioadă de trend ascendent.

Unii oameni au simțit inițial regret când au părăsit un proiect PHP pe termen lung. Dar, după scurt timp, au recunoscut că au izbucnit dintr-un anumit fel de stagnare. Și au simțit briza incitantă a noilor provocări. Per total cred ca a mers bine.

Cât a durat schimbarea?

Întregul proces a durat în timp. Verificarea pieței a durat destul de mult. Lucrul la reorganizarea companiei și despărțirea companiei de clienți a durat, de asemenea, mult timp. În total, au trecut aproape 2 ani de la crearea sarcinii în Jira și închiderea acesteia.

De remarcat, totuși, cel mai lung decalaj dintre un dezvoltator care trece de la un proiect PHP la Node.js a fost de doar 3 luni. Acest lucru a fost legat de declarația lui despre momentul în care a simțit că trebuie să se alăture proiectului cu colegi mai experimentați.

Care a fost cel mai dificil aspect?

Cred că tocmai am ajuns la decizia că era timpul să schimbăm ceva. Totuși, conștientizarea că, dacă nu ne schimbăm acum, și peste un an sau doi nu va fi nimic de schimbat, a ajutat semnificativ la luarea deciziei mai rapid.

De asemenea, a fost dificil să te despărțim de clienți atunci când nicio alternativă nu era vizibilă clar la orizont și situația economică nu era stabilă.

Pe tot parcursul acestui proces ne-am dorit să avem grijă de clienții noștri de lungă durată, să-i facem să găsească cu calm o alternativă, dar să avem grijă și de noi. Asigurați pregătirea programatorilor și pregătirea acestora pentru a prelua rapid comenzi în noua tehnologie.

Daca ar veni la tine CTO al altei companii si ar spune ca se gandeste si el sa schimbe profilul tehnologic al companiei, ce 3 sfaturi i-ai da?

Ai o viziune. Aflați de ce doriți să faceți acest lucru și clarificați echipei dvs. unde mergeți și de ce.

Cooperați cu echipa dvs. Vorbește cu oamenii, adaptează-ți acțiunile la ceea ce auzi și ține cont de capacitățile lor. Fă totul cu oamenii.

Fă totul consecvent, în ciuda momentelor de ezitare.