Parliamo di...

Come costruire un grande team di ingegneri del software

#19Febbraio  #Designamp;amp;Dev  #HouseofTalent 

Contenuto originale di The Next Web
.cult di Honeypot è una piattaforma comunitaria per sviluppatori con sede a Berlino. Scriviamo di tutto ciò che riguarda la carriera, realizziamo documentari originali (mostra tutto) .cult di Honeypot è una piattaforma comunitaria per sviluppatori con sede a Berlino. Scriviamo di tutto ciò che riguarda la carriera, realizziamo documentari originali e condividiamo un sacco di altre storie non raccontate di sviluppatori da tutto il mondo.
Questo articolo è stato originariamente pubblicato su .cult da Chameera Dulanga. .cult è una piattaforma comunitaria per sviluppatori con sede a Berlino. Scriviamo di tutto ciò che riguarda la carriera, realizziamo documentari originali e condividiamo un sacco di altre storie non raccontate di sviluppatori da tutto il mondo.
Lo sviluppo del software è un lavoro di squadra e avere una buona struttura di squadra è vitale per il suo successo. Ma anche un piccolo disallineamento potrebbe influire negativamente sul rendimento dei nostri team. Ecco perché dovremmo stare molto attenti quando mettiamo insieme una squadra.
In questo articolo, discuterò alcuni fattori importanti che devi considerare quando crei un team di ingegneri del software per la tua azienda.
Perché la struttura del team è importante?
Quando crei un team di ingegneri del software, osserva le varie cose che influenzano la produttività e l'efficacia del team.
Nei moderni team agili, difficilmente misuriamo l'efficacia dalle righe di codice prodotte. Invece, diamo più risalto alla qualità e ai continui miglioramenti. E il team dovrebbe essere in grado di produrre il "risultato desiderato".
Quindi dobbiamo rispondere alle seguenti domande:
Disponiamo delle giuste competenze?
Abilità tecniche
Esperienza
Competenze morbide
2. Abbiamo l'ambiente giusto per farli collaborare?
Ruoli e responsabilità chiari
Sono disponibili strumenti di comunicazione
3. La squadra conosce i propri obiettivi?
Comunicazione chiara dall'alto verso il basso in modo che il team conosca le aspettative
Requisiti precisi che riducono le rilavorazioni
4. Il team è autorizzato a produrre risultati di migliore qualità?
Processi in atto
Leadership che fornisce la guida adeguata
Retribuzione corretta
Una cultura che apprezza e celebra vince
5. Il team può produrre un risultato migliore di ogni individuo?
Sinergia di squadra
Miglioramento continuo
Team autogestiti e autorigeneranti
Dobbiamo anche tenere conto del budget. Dovresti sempre avere un limite massimo per trovare il giusto equilibrio per una struttura di squadra ottimale.
Ma la domanda è: "Come dovremmo decidere la struttura perfetta del team?"
Decidere la migliore struttura della squadra
Come puoi vedere, ci sono molti fattori che dobbiamo considerare quando assembliamo una squadra. E alcuni di loro li identificherai solo dopo che la squadra avrà iniziato a esibirsi.
Tuttavia, trovare persone con una comprovata esperienza, soprattutto per il livello di leadership, ti aiuterà a ridurre i rischi.
Concentriamoci sui fattori chiave su cui abbiamo il controllo quando scegliamo le persone per una squadra;
Il numero dei membri del team
2. Livello di esperienza degli ingegneri
3. Costi di gestione del team (retribuzioni e altre spese)
1. Numero di membri del team
Di solito decidiamo il numero di persone in un team in base alle stime del progetto e alle pietre miliari di consegna. Una cosa che non dovresti fare è eseguire il progetto con meno sviluppatori del necessario, anche se hanno molto talento. Correrai il rischio di sacrificare la qualità e causare più problemi a lungo termine.
Le cose però si complicano quando bisogna decidere la struttura della squadra. Poiché non tutti gli individui hanno lo stesso ruolo, dobbiamo iniziare a pensare alla composizione del team individuando ruoli diversi.
Chi guida il team e gestisce il progetto?
Abbiamo bisogno di entrare in sotto-team? (il che potrebbe significare più leader...)
Chi si appropria dell'architettura?
2. Livello di esperienza
Il livello di esperienza degli ingegneri influisce direttamente sulla qualità e sulla produttività. Ma questo non significa che abbiamo bisogno di un team pieno di persone di grande esperienza. Ricorda, abbiamo parlato di sinergia di squadra.
Dobbiamo pensare ai diversi livelli di esperienza disponibili nella squadra. Dal momento che le persone lavorano insieme, possono imparare gli uni dagli altri e produrre il risultato desiderato.
Perché i livelli di esperienza influenzano la qualità e la produttività
La qualità non può essere costruita in un giorno o due. Arriva con l'esperienza.
Ad esempio, supponi di avviare un nuovo progetto Java e di cercare uno sviluppatore. Se utilizzi sviluppatori che non conoscono la tecnologia, avranno bisogno di tempo per imparare, il che significa che il progetto sarà più lento.
Inoltre, non avranno l'esperienza necessaria sulle migliori pratiche, con conseguente maggiore sforzo di rielaborazione. Quindi in questo caso vai con uno sviluppatore esperto di Java. Facile!
Tuttavia, se hai bisogno di più di uno sviluppatore per lavorare su un progetto, puoi riconsiderare diversi livelli di esperienza. Puoi fare in modo che gli sviluppatori esperti guidino il team verso l'obiettivo senza che la tua produttività ne risenta. Significa anche che, dal punto di vista delle assunzioni, puoi considerare un pool più ampio di sviluppatori che possono unirsi al tuo team.
Avere un team pieno di persone esperte diventa impegnativo
Prima di tutto, influisce sul tuo budget, gli sviluppatori più esperti ovviamente chiederanno una paga più alta!
Inoltre, si aspetteranno migliori opportunità come ricoprire ruoli di leadership, e questo non sarà sempre disponibile. Tutta questa esperienza può creare un collo di bottiglia se gli obiettivi e le ambizioni dei team non sono allineati.
Avere un equilibrio tra membri junior e senior sarà migliore e aumenterà anche la fidelizzazione degli sviluppatori perché le aspettative e la crescita possono essere gestite meglio.
3. Costo di gestione della squadra
I team di ingegneria del software sono significativamente diversi dai team di altre professioni. Possono lavorare da postazioni remote, avere orari di lavoro flessibili e affinare le loro conoscenze con l'apprendimento continuo.
Quindi, se possiamo utilizzare questi fattori, possiamo cercare di ottimizzare i costi coinvolti.
L'esperienza ha un costo
Come abbiamo discusso in precedenza, trovare persone esperte su una particolare tecnologia o dominio ha un costo. E poiché non è una decisione binaria avere tutti o nessuno con esperienza, possiamo bilanciare i livelli di esperienza considerando anche la struttura dei costi.
Posti di lavoro multipli
Questa è anche un'altra dimensione a cui pensare quando si gestiscono i costi dei team di sviluppo software.
Se hai più di un posto di lavoro, dovrai pagare le bollette, la manutenzione per ogni posto di lavoro e, senza dubbio, aumenterà i costi delle utenze.
Ma, il lato positivo è che possiamo cercare luoghi per attrarre più talenti o avere agevolazioni fiscali. Inoltre, se riesci a organizzare un posto di lavoro in un paese in cui le spese di soggiorno sono basse, puoi ridurre efficacemente i costi.
Lavoratori a distanza e outsourcing
Quindi, se guardi alle altre opzioni disponibili, puoi esternalizzare il tuo lavoro a un lavoratore remoto o a un'azienda in cui i costi sono bassi.
Tuttavia, ci sono poche altre sfide che dovresti affrontare quando rendi efficace il tuo team distribuito.
Aumenta la sovrapposizione
Se il tuo team lavora in fusi orari diversi, è bene avere una ragionevole sovrapposizione quando possibile. Ciò potrebbe essere ottenuto spostando l'orario di lavoro o prevedendo un tempo designato per la collaborazione.
2. Bilanciare le competenze e dividere il lavoro
Inoltre, è necessario bilanciare l'esperienza dei singoli e suddividere il lavoro, riducendo le dipendenze tra fusi orari.
3. Processori semplificati
È necessario un set adeguato di processori quando si lavora con team remoti o in outsourcing (ad esempio, processori agili come Scrum, Kanban). Aiuterà ad allineare tutti i membri del team verso l'obiettivo finale.
Come puoi vedere, ci sono vari modi per ridurre i costi massimizzando il risultato.
Riepilogo
Questo articolo ha discusso diversi fattori da considerare quando si decide la struttura del team per team di ingegneria del software efficaci.
Alcune di queste decisioni dovrai prenderle in anticipo, quindi non saprai cosa deve essere aggiustato fino a quando la squadra non inizierà a girare. Dopo un po' di tempo, sarà più facile identificare dove è necessario apportare modifiche, che si tratti di costi o collaborazione.


RSS - Mastodon