Come scalare un team tecnico del 30% in 3 mesi: case study passo dopo passo
Pubblicato: 2022-05-04Al giorno d'oggi, è difficile immaginare che si possa facilmente assumere un team da cinque a dieci sviluppatori interni con le competenze richieste. La feroce lotta per il talento nel mercato e le offerte redditizie dei concorrenti non lo rendono più semplice.
Come mai? Il problema principale risiede nella carenza di talenti IT, che è diventata uno dei colli di bottiglia in rapida crescita che le aziende moderne devono affrontare. Assumere specialisti della tecnologia è ora una vera sfida. E nessuna sorpresa lì. Negli ultimi dieci anni, il numero di aziende SaaS B2B è aumentato di 50 volte e continua a crescere. Ci sono più di 15.000 attività di questo tipo solo negli Stati Uniti. Inoltre, giganti come Google e Amazon continuano a scegliere il mercato del lavoro tecnologico.
Inoltre, la pandemia di COVID-19 ha portato a una dilagante digitalizzazione del business. Pertanto, il proliferare del mercato delle startup si è trasformato in una vera lotta per assumere e trattenere i migliori talenti tecnologici per unirsi a società e startup non IT. Di conseguenza, offrire ai candidati stipendi troppo alti provoca il caos del mercato.
La verità è che anche se la tua startup è riuscita a raccogliere fondi impressionanti, le tue sfide in termini di personale sono ben lungi dall'essere risolte.
Tuttavia, non è un buon motivo per arrendersi. Il mondo è diventato remoto. Le tue opportunità di personale interno non ti limitano più. Inoltre, anche la tua posizione non è un ostacolo.
Qui, condividerò un caso reale in cui la nostra azienda, Aspirity, ha contribuito a ridimensionare il team tecnico nel più breve tempo possibile e ha rivelato l'esperienza acquisita da entrambe le parti.
In casa VS. Remoto vs. Squadre distribuite
Al giorno d'oggi, sono emersi molti nuovi approcci e modelli di personale, che rendono l'accesso al pool di talenti globale una vera prospettiva per chi cerca soluzioni più flessibili ed efficienti.
Diamo un'occhiata ai tipi di team di sviluppo più comuni in termini di posizione.
Team interni: come sono cambiate le cose
Molte aziende considerano i team interni la soluzione più stabile, gestibile e affidabile su cui optare. Ecco gli argomenti più diffusi a favore del modello interno:
- Controllo diretto sul flusso di lavoro.
- Un'opportunità per creare un ambiente d'ufficio affidabile e trasparente.
- Comunicazione faccia a faccia.
- Nessuna differenza di fuso orario e barriere linguistiche.
Tuttavia, durante la pandemia, la mentalità delle persone è cambiata. Oggi, la concentrazione di tutto il lavoro di squadra in un unico ufficio può essere considerata obsoleta. Secondo la ricerca di Gartner, dopo l'epidemia di COVID-19, l'82% dei datori di lavoro lascia che il proprio personale lavori per un po' di tempo da remoto, mentre il 47% dei leader aziendali supporta il lavoro completamente a distanza.
A causa di questi cambiamenti, gli svantaggi dello sviluppo interno superano notevolmente i loro vantaggi. Con un pool di talenti molto più povero, sarà difficile competere con i giganti che assumono tutti i migliori specialisti locali. Pertanto, ridimensionare il tuo team di sviluppo interno e aggiungere le competenze necessarie potrebbe essere troppo impegnativo.
Team a distanza: la nuova realtà
Le soluzioni remote sono un'ottima alternativa allo sviluppo interno. Puoi trovare il talento richiesto con l'accesso al mercato IT globale. Inoltre, puoi scegliere il fuso orario più adatto a te e assumere i professionisti di cui hai bisogno.
Il rischio potenziale di assumere dipendenti da remoto è che potresti avere difficoltà a integrarli rapidamente nel team che sta già lavorando al progetto. Inoltre, alcuni dipendenti remoti potrebbero richiedere più tempo per l'onboarding poiché non si sentiranno immediatamente parte integrante del tuo team interno.
Team distribuiti: una soluzione alternativa
Quindi, cosa può fare un'azienda per assumere abili specialisti a distanza e affrontare le potenziali sfide relative al loro inserimento e coinvolgimento? Sulla base della nostra esperienza, la creazione di un team distribuito è un'ottima soluzione.
Innanzitutto, un team distribuito è composto da professionisti che hanno già una comprensione reciproca e possono interagire efficacemente tra loro. Conoscono i punti di forza e di debolezza reciproci e possono costruire il processo di collaborazione in pochissimo tempo senza richiedere alcuno sforzo da parte tua.
Inoltre, tali team probabilmente dispongono di metodi consolidati e testati per la gestione dei database e non avranno problemi a inserire nuovi dipendenti se è necessario aumentare rapidamente la scalabilità.
Inoltre, quando si assume un team distribuito, si dovrebbe condurre un'integrazione efficiente. È essenziale comunicare l'idea centrale del tuo progetto e far sì che i nuovi membri si sentano appassionati del tuo prodotto.
Naturalmente, il processo di adattamento richiederà del tempo. Un'azienda che si rivolge al modello distribuito dovrebbe considerare la differenza di fuso orario e le specifiche culturali. Tuttavia, se è necessario un ridimensionamento efficace, è improbabile che tutti questi fattori diventino ostacoli. A tal fine, difficilmente troverai un'opzione più orientata ai risultati.
Confronto prezzi
Il costo di sviluppo dipende da molteplici fattori. E il livello di qualificazione degli sviluppatori coinvolti nel progetto non è l'unica cosa che conta. Un altro aspetto importante è la posizione del tuo team di sviluppo. Principalmente, ciò dipende dalle condizioni economiche della regione, dai salari medi, dalle tasse e altro ancora.
Qui confronteremo il costo di particolari servizi di sviluppo in diverse parti del mondo. Ti darà un'idea approssimativa delle tariffe medie degli ingegneri del software se decidi di esternalizzare lo sviluppo del tuo prodotto in un altro paese o di assumere specialisti da solo.
Tieni presente che se assumi lavoratori a distanza, dovrai affrontare molte insidie, come il sistema fiscale in un determinato paese. Nel frattempo, se passi al modello di team distribuito, i fornitori probabilmente affronteranno questi problemi senza il tuo sforzo. Tali fattori influiscono in modo significativo sulla scalabilità e sul budget del progetto.
Nord America | Europa orientale | Sud America | |
Reagire | $ 59,8 | $ 50,9 | $ 49,6 |
Reagire nativo | $ 73,9 | $ 54,6 | $ 53,1 |
JavaScript | $ 78,6 | $ 49,3 | $ 51,0 |
Node.js | $ 63,5 | $ 47,5 | $ 50,3 |
In ufficio vs remoto: la nostra esperienza
La nostra azienda, Aspirity, ha maturato una solida esperienza lavorando in remoto e applicando il modello di team distribuito. Durante la pandemia, i nostri dipendenti si sono adattati alla nuova realtà del lavoro da casa. Quindi ora non più del 10% di loro torna a lavorare in ufficio. Secondo la nostra esperienza, il lavoro a distanza è ancora più produttivo poiché elimina il rumore dell'ufficio e altre distrazioni, consentendo ai dipendenti di immergersi nel processo lavorativo.
Curiosamente, alcuni dei nostri dipendenti hanno deciso di iniziare a lavorare da remoto e di unirsi a team distribuiti anche prima dello scoppio della pandemia. Nell'autunno 2019, una startup della Silicon Valley ci ha contattato per unirsi al loro progetto. A quel tempo, volevano costruire un prodotto innovativo, ma capivano che ci sarebbe voluto molto tempo e risorse che gli mancavano. Quindi il cliente cercava da tre a cinque dipendenti alla volta che avessero le competenze per coprire la parte front-end, compreso il design. E abbiamo deciso di iniziare a lavorare insieme.
Per noi è stata anche una nuova esperienza essere responsabili solo di una parte specifica del progetto. Di conseguenza, abbiamo stabilito il formato di lavoro che ora chiamiamo team distribuito.
Di solito, l'onboarding in un progetto del genere richiede diversi mesi. Tuttavia, il nostro team è riuscito a farlo molto più velocemente. Ora rivelerò ciò che abbiamo imparato lavorando insieme in un team distribuito.
La ricerca di una squadra
La prima domanda che un'azienda o una startup dovrebbe affrontare è come trovare un team distribuito che soddisfi i suoi obiettivi e le sue aspettative. Ecco alcuni fattori chiave da considerare.
- Pool di talenti. Per creare un prodotto eccezionalmente innovativo, probabilmente dovrai accedere ad almeno l'1-2% dei migliori talenti del mondo. Tuttavia, trovare e mantenere abili professionisti negli Stati Uniti è piuttosto impegnativo a causa della carenza di talenti IT. Il modello di team distribuito ti consentirà di accedere ai migliori specialisti in altre regioni come il sud-est asiatico, l'Europa orientale e il Sud America.
- Connessioni personali. Non trascurare il feedback delle persone che conosci e di cui ti fidi. Una buona reputazione spesso precede le squadre migliori, indipendentemente dalla loro posizione.
- Somiglianze culturali. È fondamentale considerare la mentalità e i valori della squadra che assumi. È necessario trovare partner che possano immergersi nelle tue idee di business e diventare parte integrante del tuo progetto. Ti aiuterà a stabilire una migliore comunicazione con il team, senza nemmeno notare la differenza tra gli specialisti in remoto e i tuoi dipendenti interni.
- Impatto del fuso orario. Per molte aziende, le differenze di fuso orario possono sembrare uno svantaggio significativo dell'assunzione di un team distribuito. Tuttavia, puoi trasformarlo in un vantaggio. Ad esempio, quando assumi un fornitore dell'Europa orientale, potresti eseguire processi particolari quasi 24 ore su 24, 7 giorni su 7. Soprattutto, trova il tempo per chiamate e riunioni che sarà conveniente per tutti.
Come convalidare una squadra
Dopo aver trovato una squadra che sembra essere appropriata, è tempo di convalidarne l'affidabilità. Esistono numerosi modi per verificare se il candidato è pertinente alle tue esigenze. I seguenti sono i più comuni:
- Controlla il portafoglio dell'azienda e i casi di studio.
- Leggi le recensioni dei loro clienti.
- Presta attenzione alla valutazione della reputazione dei fornitori su siti Web specializzati come Clutch e GoodFirms.
Inoltre, è meglio non fare affidamento sulle promesse dei candidati di corrispondere agli standard più elevati. Ci sono centinaia di fornitori là fuori e ognuno afferma di offrire i migliori servizi.
Ecco perché un colloquio tecnico è fondamentale. Ti aiuterà a stimare le capacità tecniche, le conoscenze in un campo particolare e la pertinenza delle competenze del team candidato.
Inoltre, è meglio non sopravvalutare la scelta di uno stack tecnologico. Invece, dai la priorità al team con competenze eccellenti in una particolare tecnologia, anche se non è quella che hai considerato. È molto meglio che assumere i cosiddetti yes-men che seguiranno sempre le tue esigenze, indipendentemente da quanto siano giustificate, invece di offrire soluzioni più efficienti.
Soprattutto, assicurati che lo stack tecnologico scelto sia a prova di futuro e abbia una comunità di sviluppatori ragionevolmente ampia.
Un altro fattore critico è l'interazione tra i team di backend e frontend. Nel nostro caso, il cliente aveva già il proprio team di back-end. Quindi hanno dovuto assicurarsi che gli specialisti del frontend capissero alcune specifiche del backend. Stavano cercando specialisti consapevoli delle nozioni di base come lavorare con dati falsi, API, ecc. L'apprendimento di tali elementi essenziali in movimento può ridurre significativamente la produttività e il ritmo di sviluppo.
Diventare una squadra unita
Quando un team distribuito inizia a lavorare insieme, i suoi membri hanno bisogno di tempo per stabilire un flusso di lavoro collaborativo. Nel nostro caso, i membri del team interno del cliente volevano che ci immergessimo nell'essenza del progetto e nelle idee fondamentali prima di iniziare il processo di sviluppo. Quindi, inizialmente, abbiamo esplorato come gestire il progetto tenendo d'occhio le esigenze degli utenti, come dovrebbe essere progettato e quali grafici sono necessari.
A tal fine, abbiamo passato un mese ad analizzare i prodotti della concorrenza. Abbiamo studiato vari dashboard per capire cosa si aspetta un utente da prodotti simili, li abbiamo cercati e testati e abbiamo preso molti screenshot. Infine, abbiamo raccolto e organizzato tutte queste informazioni per farvi riferimento durante il processo di progettazione.
All'inizio, i membri del nostro team non avevano molta esperienza nel campo del progetto del cliente. La ricerca preliminare ci ha permesso di ottenere i riferimenti necessari su cui poter fare affidamento durante la progettazione del prodotto. Inoltre, il processo di indagine ci ha aiutato ad approfondire il progetto stesso. Ed è stato il primo passo essenziale.
Un altro aspetto fondamentale è stata la gestione del progetto che ci ha aiutato a stabilire una comunicazione efficiente tra i team, pianificare le riunioni, organizzare il flusso di lavoro collaborativo ed evitare di creare problemi nel lavoro dell'altro.
Ecco alcune informazioni cruciali che il nostro team distribuito ha acquisito e i metodi che abbiamo escogitato.
- Comunicazione. Anche se abbiamo iniziato con alcuni problemi e incomprensioni, abbiamo raggiunto rapidamente i compromessi necessari e aumentato la nostra efficienza. Ora, il nostro team utilizza diversi canali Slack e chat di gruppo per discussioni istantanee e consegna tempestiva di informazioni importanti. I nostri project manager sono costantemente in contatto e il nostro responsabile tecnico sa sempre come sostituire i lavoratori durante le vacanze o in qualsiasi circostanza imprevista. Questo ci consente di mantenere il ritmo ininterrotto del flusso di lavoro.
- Incontri e chiamate. Il lavoro del team distribuito richiede sessioni online regolari per discutere i risultati, controllare i risultati finali, impostare piani e sprint, condividere i problemi, ecc. Pertanto, abbiamo numerosi incontri regolari per scopi diversi:
- Incontri quotidiani del team front-end con il product owner.
- Incontri settimanali con il leader della squadra di un altro paese.
- Riunioni quotidiane dei membri del nostro team.
- Riunioni retrospettive e tecniche retrospettive ogni due settimane.
- Incontro tecnico settimanale per discutere il nuovo piano tecnologico.
- Riunioni periodiche di gestione.
- Sprint revisioni ogni 2-3 giorni.
Ogni chiamata e riunione ha un obiettivo particolare che aiuta il team a rimanere sulla stessa pagina e a comprendere i progressi e i problemi degli altri. Tuttavia, molte cose vengono discusse nelle chat di gruppo e nei messenger per risparmiare tempo.
- Spazio di lavoro comune. All'inizio, il nostro team utilizzava due diversi spazi di lavoro di Jira:
- La nostra interfaccia utente e l'area di lavoro del team front-end.
- L'area di lavoro del nostro cliente per gestire le attività di interfaccia utente, back-end, API e front-end.
Con un tale approccio, il controllo qualità sul lato client ha segnalato bug dell'interfaccia utente e il nostro controllo qualità ha segnalato bug front-end. Successivamente, siamo passati a un'unica area di lavoro Jira, che ha notevolmente facilitato il processo di gestione del progetto.
Asporto
Supponiamo che tu debba ridimensionare il tuo progetto in modo rapido ed efficiente senza perdere tempo a trovare, assumere e formare tutti gli specialisti interni necessari. In tal caso, il modello del team distribuito è una delle migliori opzioni. Ti fornirà l'accesso al pool di talenti globale e ti consentirà di assumere sviluppatori abili con un'esperienza collaborativa consolidata.
Con le moderne tecnologie e approcci alla gestione dei progetti, costruire e organizzare un flusso di lavoro efficiente è un obiettivo del tutto raggiungibile. L'uso di potenti strumenti per la comunicazione, la collaborazione e la documentazione riduce al minimo i rischi e diventa una base affidabile per un lavoro congiunto trasparente e orientato ai risultati.
Pertanto, tutto ciò che devi fare è trovare un team affidabile con competenze pertinenti e fare del tuo meglio per trasmettere loro la tua passione per il prodotto che stai per costruire.
di: Alexander Efremov (LinkedIn)