Riorganizzare una Software House: come cambiarne il profilo tecnologico e scegliere una specializzazione nel mercato IT?
Pubblicato: 2023-03-06Ogni azienda di software ha il proprio profilo tecnologico. Spesso accade che per i tecnici questo sia più importante del profilo di dominio dell'azienda. Questo perché gli sviluppatori IT preferiscono vedere se stessi attraverso il prisma della tecnologia in cui lavorano, ad esempio io sono un programmatore di sistemi costruiti in C#. Tuttavia, che stiano realizzando un progetto per un'azienda che si occupa di formazione o che produca scatole è di secondaria importanza. Certo, la conoscenza del dominio è sempre utile ai programmatori, ma non cambia la loro percezione di se stessi attraverso la dimensione tecnologica – afferma Robert Marek, co-fondatore e CTO di FINGO.
FINGO è una software house polacca che fornisce servizi di programmazione da oltre 20 anni. Nel 2022, l'organizzazione ha cambiato con successo il proprio profilo tecnologico. Oltre ai servizi di programmazione offerti in tecnologie Java e .NET, ha aggiunto Node.js e ha portato a termine tutti i progetti realizzati finora in PHP.
Perché è stata fatta questa mossa? Che aspetto ha il processo di cambiamento auto-organizzante? E qual è stato il risultato? Scoprilo leggendo la nostra intervista a Robert Marek.
Prima di iniziare a parlare del processo di cambiamento del profilo tecnologico stesso, potrebbe dirci com'era l'azienda prima della sua riorganizzazione?
Se segui il portfolio ventennale di FINGO, troverai progetti per il settore finanziario, immobiliare, automobilistico, e-commerce e molti altri, più o meno correlati tra loro. È un po' una coincidenza: nel corso degli anni sono apparsi progetti del genere e abbiamo sviluppato il nostro team. Ma questo stato di cose è stato largamente influenzato dal nostro profilo tecnologico (Java, .NET, PHP), sotto il quale cercavamo ulteriori commesse.
Tuttavia, sentivo che non andava bene per la nostra attività. Una grande diffusione tecnologica generalmente non va bene per una software house delle dimensioni di FINGO. Può essere più facile trovare un progetto, ma più difficile garantire l'intercambiabilità delle persone. Ti faccio un esempio. Supponiamo che tu abbia bisogno di 5 sviluppatori per il tuo progetto. Ci sono 6 persone sedute sulla panchina, ma solo 2 conoscono la tecnologia richiesta dal progetto. Questo stato di cose significa che ci sono ancora 4 specialisti ben pagati senza lavoro, per i quali è necessario fornire lavoro. Inoltre, è necessario far conoscere a 3 persone la tecnologia richiesta per garantire che il progetto abbia personale.
Tuttavia, la comodità di avere un'attività ben funzionante ci ha impedito di implementare i cambiamenti. Avevamo progetti, clienti regolari a lungo termine e programmatori esperti. In un tale ambiente, è difficile prendere la decisione di iniziare a cambiare qualcosa.
Quindi cosa ti ha fatto decidere di cambiare il profilo tecnologico di FINGO?
All'inizio della pandemia, il mercato si è bloccato. Le aziende, non sapendo cosa sarebbe successo dopo, si sono astenuti dal continuare i progetti in corso o avviarne di nuovi. Era un'epoca in cui anche i programmatori temevano di perdere il lavoro. Ci siamo chiesti cosa fare. Non volevamo licenziare le persone, ma d'altra parte avevamo bisogno di qualcosa che ci distinguesse dalla massa.
Intorno a maggio 2020, come proprietari dell'azienda, abbiamo scoperto che senza prendere decisioni coraggiose, la situazione potrebbe deteriorarsi. Avevamo il maggior numero di progetti, e quindi di esperienza, nel settore finanziario. Inoltre, avevamo una parte del prodotto che offriva un software che consentiva l'implementazione della rendicontazione obbligatoria nel settore bancario. Il settore finanziario è stata una scelta naturale per noi.
A quel tempo, mi sembrava improbabile che FinTech e il settore finanziario utilizzassero PHP nei loro progetti. Quindi ho pensato che concentrandoci su questo settore, ci saremmo allontanati da PHP e saremmo rimasti solo con Java e .NET. Con queste informazioni, siamo andati al team durante l'assemblea generale dell'azienda.
Quindi è stato lo scoppio della pandemia a costringervi a decidere di cambiare il profilo tecnologico di FINGO?
Sì e no. Dopo aver condiviso le informazioni sulla specializzazione, abbiamo nominato un gruppo di lavoro composto da diversi programmatori esperti con un fiuto per gli affari. Il suo compito era verificare quali sono le tendenze, le tecnologie e le soluzioni popolari nei singoli paesi quando si tratta del settore finanziario. La loro analisi ha confermato le mie ipotesi precedenti, che PHP era una rarità nei progetti finanziari. Allo stesso tempo, hanno raccomandato di sviluppare competenze in Node.js, che è apprezzato, anche nel mondo delle start-up.
Nella nostra azienda, abbiamo a cuore il concetto di gestione turchese, dove, tra le altre cose, consultiamo apertamente progetti significativi per l'organizzazione con l'intero team. Grazie a questo, le persone sentono l'impatto sullo sviluppo dell'azienda, ma sentono anche una corresponsabilità per le decisioni prese.
Pertanto, l'iniziativa di passare a Node.js, che proveniva dal basso verso l'alto, doveva ancora essere approvata dal resto del team FINGO. Tuttavia, si è presto scoperto che c'era un forte desiderio di svilupparsi in questa direzione. Forse era un momento particolare in cui tutti avevamo paura del futuro in varie dimensioni (aspetti economici, sanitari, ecc.). Paradossalmente, questa maggiore accettazione della decisione di raccogliere la sfida.
Quante persone hanno dovuto acquisire nuove competenze tecnologiche?
In totale, il cambiamento ha coinvolto 15 persone. Dovevano decidere se sviluppare come sviluppatori frontend o rimanere sviluppatori backend e creare soluzioni in Java, .NET o Node.js.
Una di queste persone era uno sviluppatore full-stack che si era già dichiarato uno sviluppatore frontend, quindi nel suo caso la decisione è stata facile. Di conseguenza, 2 persone hanno scelto Java e le restanti 10 hanno scelto Node.js.
Alla riorganizzazione hanno preso parte anche due collaudatori, che hanno anche dovuto apprendere la nuova tecnologia. La politica della nostra azienda è quella di scrivere test con la stessa tecnologia del prodotto fabbricato. Quando il tester è temporaneamente non disponibile, questo approccio ci dà un senso di sicurezza; i test di scrittura possono essere temporaneamente rilevati dal programmatore.
Ci sono state anche partenze, ma si trattava di decisioni individuali. Una persona si è dimessa da FINGO abbastanza velocemente, ma era dovuto al fatto che stava sviluppando la comunità PHP a Wroclaw. Era naturale che le nostre aspettative di cooperazione iniziassero a divergere. Durante il processo in corso, per vari motivi, altre 2 persone hanno lasciato l'azienda.
Prendere una decisione è solo l'inizio della strada.L'azienda ha in qualche modo aiutato i programmatori ad acquisire nuove competenze?
È stato creato un progetto strategico per supportare gli sviluppatori nella preparazione della fornitura di servizi più rapida possibile nei progetti commerciali. All'inizio, abbiamo chiesto loro di determinare soggettivamente quanto tempo avrebbero avuto bisogno per acquisire le conoscenze necessarie, tali da consentire loro di intraprendere con sicurezza lavori per clienti esterni, ipotizzando 2 scenari. Il primo di questi era con il supporto di un collega più esperto, il secondo era senza tale supporto. In risposta, abbiamo ottenuto varie stime.
Alcuni hanno dichiarato che con il supporto di uno sviluppatore Node.js esperto, sarebbero stati in grado di partecipare a un progetto commerciale anche dopo solo un mese, altri solo dopo pochi mesi. Tutto dipendeva da quale esperienza precedente (privata o professionale) avevi fatto e da quanto coraggio avevi in te stesso. Vale anche la pena notare che anche noi di FINGO abbiamo avuto esperienza con questo ambiente. Quindi avevamo una base.
Tuttavia, non abbiamo imposto loro un modo per acquisire conoscenza. Tutte queste persone sono programmatori esperti che vogliono imparare costantemente. Hanno i loro stili di apprendimento preferiti. In generale, la continua acquisizione di conoscenza è in qualche modo inscritta nell'industria delle nuove tecnologie. Pertanto, abbiamo deciso che la soluzione più ragionevole sarebbe semplicemente fornire loro le risorse e il tempo per imparare.
Abbiamo anche riorganizzato l'azienda. Sono state create corporazioni auto-organizzate, in cui le persone che lavorano in una data tecnologia, ma non necessariamente sugli stessi progetti, si scambiano le conoscenze acquisite. Come parte della gilda Node, è stato anche creato un progetto interno, dove si potevano testare le nuove conoscenze acquisite. Sono stati organizzati corsi esterni per i volontari.
Tuttavia, ciò che ha dato di più è stata l'opportunità di aderire rapidamente ai progetti. Il miglior esempio di ciò è stato uno degli ordini su cui stavamo lavorando, dove avevamo bisogno di tutte le mani possibili. Dopo aver ottenuto il consenso del cliente, si è unito al progetto uno sviluppatore PHP esperto, che lavora anche in JavaScript, che non aveva alcuna esperienza con Node.js stesso. Tuttavia, nel progetto c'erano già programmatori esperti che erano in grado di supportare un collega e garantire la qualità del codice.
Parliamo un po' di più dei tuoi clienti.Come hanno reagito alla tua decisione di allontanarti da PHP?
La più grande resistenza interna e tristezza che abbiamo avuto è stata con un progetto creato per un cliente di 10 anni. È abbastanza divertente, perché uno dei nostri programmatori ci ha lavorato fin dall'inizio. Naturalmente, sapeva di più sul sistema di molti dirigenti di quella società. È stato difficile per noi spiegare loro la nostra decisione. Anche se avevamo un mese di preavviso, volevamo prenderci cura di questo cliente. Abbiamo accettato di essere a loro disposizione per altri sei mesi. È interessante notare che, dopo 3 mesi, il cliente stesso ha concluso la collaborazione, a causa di una riorganizzazione interna dell'azienda. Ciò ha anche dimostrato che non dovresti soffermarti troppo a lungo sulle cose. Dovrebbero essere fatti e basta.
È stato più facile con altri progetti. Come altri eventi, è successo in modo del tutto naturale. Ad esempio, avevamo un cliente che sviluppava parte del sistema in Node.js. Abbiamo concordato che i nostri programmatori, che in precedenza avevano supportato il progetto in tecnologia PHP, avrebbero fornito i loro servizi a tariffe inferiori per i primi mesi. In un certo senso, questa era una compensazione per la presunta minore efficienza del team che aveva recentemente cambiato tecnologia.
Come pensi che gli sviluppatori vedano questo cambiamento ora?
Penso che siano felici. Le persone in questo settore amano imparare. All'epoca avevano tempo e denaro per studiare. Studiavano a tempo pieno, percepivano uno stipendio pieno e potevano beneficiare di borse di studio. Questo ha certamente avuto un effetto positivo sui loro sentimenti.
Node.js è migliore di PHP? Questo è ovviamente discutibile. Certamente, questa tecnologia è popolare ora, quindi siamo entrati in un periodo di tendenza al rialzo.
Alcune persone inizialmente si sono pentite di aver lasciato un progetto PHP a lungo termine. Ma dopo poco tempo hanno ammesso di essere usciti da un certo tipo di stagnazione. E hanno sentito la brezza eccitante di nuove sfide. Nel complesso penso che sia andata bene.
Quanto è durato il cambiamento?
L'intero processo si è trascinato nel tempo. La verifica del mercato ha richiesto molto tempo. Anche il lavoro di riorganizzazione dell'azienda e la separazione della società dai clienti hanno richiesto molto tempo. In totale, sono trascorsi quasi 2 anni dalla creazione dell'attività in Jira e dalla sua chiusura.
Vale la pena notare, tuttavia, che il divario più lungo tra uno sviluppatore che passa da un progetto PHP a Node.js è stato di soli 3 mesi. Ciò era legato alla sua dichiarazione del tempo che sentiva di aver bisogno per unirsi al progetto con colleghi più esperti.
Qual è stato l'aspetto più difficile?
Penso che sia appena arrivato alla decisione che era ora di cambiare qualcosa. Tuttavia, la consapevolezza che se non cambiamo ora, e tra un anno o due non ci sarà nulla da cambiare, ha contribuito in modo significativo a prendere la decisione più rapidamente.
Era anche difficile separarsi dai clienti quando nessuna alternativa era chiaramente visibile all'orizzonte e la situazione economica non era stabile.
Durante tutto questo processo, abbiamo voluto prenderci cura dei nostri clienti a lungo termine, per far loro trovare con calma un'alternativa, ma anche prenderci cura di noi stessi. Garantire la preparazione dei programmatori e la loro disponibilità a prendere rapidamente ordini nella nuova tecnologia.
Se il CTO di un'altra azienda venisse da te e ti dicesse che anche lui sta pensando di cambiare il profilo tecnologico dell'azienda, quali 3 consigli gli daresti?
Avere una visione. Scopri perché vuoi farlo e chiarisci al tuo team dove stai andando e perché.
Collabora con la tua squadra. Parla con le persone, adatta le tue azioni a ciò che senti e tieni conto delle loro capacità. Fai tutto con le persone.
Fai tutto in modo coerente, nonostante i momenti di esitazione.