La chiave per uno sviluppo software efficace è la collaborazione.
Nessun gruppo di individui può realizzare tanto quanto una squadra che è in grado di lavorare veramente insieme.
Ciò significa imparare a navigare diversi tipi di personalità, capire i propri punti di forza (e di debolezza) personali e mettere da parte i disaccordi per lavorare verso un obiettivo comune.
Ma per farlo, è necessario avere alcune informazioni sui tipi di persone che si lavora a fianco. Hai bisogno di empatia per le loro esperienze-e la conoscenza pratica di come si inseriscono nella dinamica complessiva del team.
Nel mondo dello sviluppo software, ci sono alcuni tipi comuni di sviluppatori che si è quasi certi di imbattersi in (se non l’hai già fatto). Mentre nessun individuo è una caricatura in realtà, avere una comprensione dei pensieri e delle motivazioni di quelli della tua squadra può aiutarti a imparare come lavorare insieme in modo più efficace.
Per i manager di ingegneria, è anche fondamentale identificare i punti di forza, le abilità e le tendenze relative dei membri del team. Ciò consente di gestire in modo più efficace gli individui e anche pensare strategicamente su come mettere le persone in grado di avere successo.
Diamo un’occhiata ad alcuni dei tipi più comuni di ingegneri e quali ruoli sono più adatti a svolgere come parte del tuo team.
Scavando in ciascuno di questi archetipi di sviluppatori, possiamo ottenere una forte comprensione per il ruolo che sono più adatti a svolgere all’interno del team.
Il Wizard–o il veterano esperto del team–è probabilmente più adatto per condurre progetti di base e fornire indicazioni agli sviluppatori più giovani. Anche se di solito sono molto talentuosi e ben informati, i loro anni di esperienza sono suscettibili di portarli a default a pratiche di lunga data ed evitare il cambiamento o “innovazione”.
Dall’altra parte dello spettro, è probabile che l’Ottimizzatore infinito sia alla costante ricerca del modo più nuovo e migliore per fare le cose. Queste scoperte possono aiutare il team a diventare più efficiente ed efficace, ma la spinta al miglioramento continuo può renderli meno affidabili nel frattempo.
La maggior parte del team di sviluppo è probabilmente composta da Programmatori diligenti. Questi ingegneri sono affidabili e coerenti, ma è improbabile che introducano nuove idee o facciano il possibile per assicurarsi che il progetto sia un successo.
Gli sviluppatori conosciuti come I Supereroi contrastano con i Programmatori Diligenti in quanto sono caratterizzati da intense esplosioni di produttività. Sfortunatamente, nessuno può sostenere indefinitamente l’output a livello di supereroe, il che significa che è importante gestire il proprio tempo ed energia. La chiave è quella di implementare le loro tendenze estreme solo in un punto critico quando è più necessario e meno probabile che metta a repentaglio la qualità e la coerenza del lavoro di squadra.
Alcuni sviluppatori funzionano meglio in isolamento e senza molta supervisione o gestione. Consideriamo questi sviluppatori come Gli artisti isolati. Sono spesso associati alla maestria a livello di genio, ma possono pensare troppo o complicare progetti che non richiedono un pensiero intenso e mirato.
La maggior parte dei team si affida a determinati sviluppatori che hanno una straordinaria capacità di trovare la soluzione perfetta e esattamente il momento giusto: La frizione. Questi sviluppatori tendono ad essere incredibilmente affidabili al momento della crisi, ma possono davvero prosperare solo sotto un alto livello di pressione. Come i supereroi, è fondamentale che siano coinvolti nei progetti in cui possono portare il massimo valore.
Infine, abbiamo sviluppatori che sono considerati Il mal di testa. Questi sono solitamente ingegneri junior che a volte possono commettere errori o rallentare i progetti. Ma non tutto è perduto. Con la giusta gestione e guida, gli sviluppatori che iniziano come problematici possono spesso migliorare e crescere fino a diventare membri critici e affidabili del team.
Nessuno di questi archetipi è necessariamente “migliore”. In effetti, la maggior parte delle squadre sarà–e probabilmente dovrebbe–consistere in un mix abbastanza uniforme su tutta la linea. Ciò significa che i team avranno sviluppatori che offrono una serie di punti di forza e di debolezza gratuiti che possono essere messi insieme da una leadership efficace.
La chiave è capire gli stili e le abitudini individuali di ogni sviluppatore in modo che i loro contributi possano essere massimizzati e il team–nel suo complesso–possa fare il miglior lavoro possibile.
I migliori manager lo sanno e lo capiscono.
Piuttosto che imporre rigide aspettative unilaterali su ogni tipo di sviluppatore, un grande leader valuterà ogni persona come individuo per determinare quali condizioni hanno bisogno per prosperare.
Con le persone giuste nei ruoli giusti, tutti saranno in grado di eseguire meglio.