Ma ne ho davvero bisogno? Abbiamo sempre fatto senza.

Di certo potreste vivere anche senza lavatrice, asciugatrice, lavastoviglie e aspirapolvere, automobile e cellulare. Vorreste farlo?
Ci sono aziende, come la Google dei vecchi tempi, che hanno provato a fare a meno dei manager e, alla fine, li hanno rimessi al loro posto.

Ma capisci il valore di un manager solo quando ne hai sperimentato uno in gamba e che si dedica a fare il manager. Io ho avuto il piacere di avere davvero dei manager, e capire la loro funzione, soltanto nella mia posizione più recente, quando sono entrato in un'azienda relativamente grande (~500 dipendenti) e di respiro internazionale.

Qualche piccolo fastidio

Da sviluppatore, ti è mai capitato qualcosa del genere?

  • Ti arriva un compito da svolgere con la massima priorità, assegnato da qualcuno di rilevante nel tuo team (es. il tech lead). Ma poi arriva qualcun altro (es. il capo del tuo dipartimento) e ti assegna un altro compito con la massima priorità. Poi arriva il direttore commerciale e ti dice che ha bisogno del tuo supporto per concludere un affare con la massima urgenza. Le tre persone, ovviamente, non si parlano, neanche se tu fai loro notare la sovrapposizione di compiti. Cerchi di arrabattarti come puoi, ma alla fine non riesci a portare a termine tutti i lavori, o li porti a termine male, e naturalmente sei tu ad essere il problema perchè non hai compreso le priorità.
  • Stai svolgendo un compito di una certa importanza per il progetto su cui lavori all'interno del tuo team. Un giorno il tech lead ti assegna un altro task di grande importanza. E' nel tuo team, perciò supponi che sappia quel che ti sta chiedendo; interrompi la precedente attività e svolgi quella che ti ha assegnato. Ma, ad un certo punto, quando qualcuno si accorge che il task precedente è fermo e chiede spiegazioni, il tech lead dice che ti ha chiesto di svolgere anche un'altra attività, ma non ti ha mai chiesto di smettere di portare avanti la precedente;
    che non è certo suo compito monitorare l'avanzamento dei lavori di un'altra persona, quindi non si era accorto che l'altro compito si fosse fermato.
  • Ad un certo punto della tua carriera, ti sei rotto le scatole. Sono passati tre anni e sei ancora inquadrato da junior, anche se porti a casa la pagnotta ogni mese producendo un sacco di valore per l'azienda. Vai a chiedere un aumento, parli con il tuo tech lead, che però ti dice che non è sua responsabilità. Vai da un qualche altro manager, ma lui non lavora con te e non può fare niente. Vai da HR, ma loro non sanno come lavori e non possono darti niente. I tuoi colleghi più o meno sanno che cosa stai facendo e come, e sarebbero d'accordo con te, ma non hanno potere. Chiedi al project manager o allo scrum master, ma loro gestiscono il progetto, non le persone; o trovi persone che ti conoscono ma non hanno alcun potere di cambiare la situazione, o persone che avrebbero il potere ma non sanno che cosa fai.
  • Entri in azienda e conosci il tuo manager. Lo vedi o senti un paio di volte al mese in qualche riunione di ampio respiro, perché in linea di massima è sempre impegnato a parlare con altri dirigenti interni / clienti / fornitori.
  • Inizia la giornata, ti chiedono 47 cose diverse senza ordine, finisci la giornata e non hai combinato assolutamente niente sul tuo progetto "ufficiale" e neppure sai dove rendicontare.
  • Sei uno sviluppatore, ma passi la giornata facendo 5-6-7 meeting al giorno, nei quali sei utile forse per 10 minuti.

Ma il product manager?

Se l'azienda fa prodotto, ci sarà probabilmente un product manager o un product owner. L'EM non li sostituisce; generalmente lavorano insieme. Ma la prima preoccupazione del PO o del PM sono rendere ottimo il prodotto; il PO parlerà con i clienti, esplorerà il mercato, penserà a proposte da validare. Ma si interesserà in maniera molto relativa alle priorità interne o personali dei membri del team di sviluppo!

E il project manager?

Il project manager è una figura che, nel tech, si trova spesso in realtà consulenziali; anche qui, come dice il nome del ruolo, il focus è sul progetto, sul monitorare e concludere un'attività che può avere diversi stakeholder. Spesso il project manager non è assegnato ad un team di sviluppo, ma può interfacciarsi con più di un team, e magari anche con consulenti esterni; è una figura che fa da collante e alla fine deve portare a casa un certo risultato. Non è interessato alle persone di un team o alle sue dinamiche interne.

Nota: Mi han fatto notare che nella certificazione PMI-PMP c'è una grossa parte legata alla gestione delle persone. Nella mia esperienza italiana, tuttavia, non ho mai notato un project manager che gestisse le persone in un team di sviluppo. Fatemi sapere le vostre esperienze.

E lo scrum master?

Lo scrum master è una figura dedicata di Scrum che, in alcuni casi, si avvicina all'engineering manager; ma generalmente il suo compito principale è quello di implementare correttamente Scrum.

Ma allora questo engineering manager?

Le caratteristiche fondamentali di un EM possono essere riassunte così:

  • E' una persona che ha le persone del team come focus. Si occupa di far lavorare bene un team e di farlo crescere.
  • E' il responsabile, anche gerarchico, di tale team. Sembra un dettaglio, ma non lo è: l'EM, come si suol dire, ha skin in the game. Se il team non funziona, diventa una sua responsabilità e problema diretti. Se il team funziona, è anche merito suo.

Sarà l'engineering manager a gestire le priorità e tutte le richieste in entrata al team. Sarà suo compito far sì che le persone facciano sempre ciò che serve davvero, e non vengano distratte da richieste esterne non davvero prioritarie. Sarà sempre compito suo far promuovere una persona quando è giunta al livello appropriato. E sarà anche compito suo tenere d'occhio una persona del suo team se non raggiunge le performance adeguate; non dimentichiamo che l'EM è una figura di mediazione tra l'azienda e il team, e deve porsi come rappresentante dell'azienda quand'è necessario e opportuno.

Non sono ancora convinto che serva

Bisogna provare! L'engineering manager è una figura mista tra un allenatore, un segretario, e uno spazzino. Un buon EM può cambiare e plasmare le dinamiche del team e renderlo motivato, attivo e performante.

E' un allenatore perché pensa a come migliorare le persone.

E' un segretario, perché cerca di aiutarle con quei compiti burocratici e di basso valore che fan perdere loro del tempo.

Ed è uno spazzino perché cerca di ripulire intorno a loro da tutto quello che è spazzatura - a volte spazzatura che il team stesso ha buttato.

Prendiamo in considerazione proprio l'esempio sportivo: in tutti gli sport esistono gli allenatori, i mental coach, i preparatori, anche (e soprattutto!) per i massimi livelli; perché? Non stiamo parlando di sportivi al top? Non dovrebbero essere in grado di cavarsela da soli? Eppure queste figure diventano tanto più presenti, numerose e importanti quanto più si sale con il professionismo.

E un team nel mondo del tech non è nient'altro che una squadra con un coach che la porta al massimo delle performance.

Un errore strategico

Un errore strategico comune ma molto pericoloso che osservo spesso nelle aziende italiane è quello di dare una doppia responsabilità, tecnica e del team, alla stessa persona. Può anche essere che una persona sia in gamba su entrambi i fronti, sia chiaro; la stessa persona potrebbe essere uno staff engineer, e qualche tempo dopo potrebbe cambiare e passare al ruolo di EM, seguendo il cosiddetto Engineer/Manager pendulum. Ma sono ruoli da non assumere in contemporanea, perché il risultato sarà quasi sempre deludente, in quanto gli incentivi sono allineati praticamente in maniera opposta; se uno sviluppatore ha qualche problema e non sta lavorando bene, è spesso più veloce (mentalità da sviluppatore) fare anche il suo lavoro che fermarsi a discutere e capire con lui che cosa non va.

Ci sono un sacco di sviluppatori che, una volta raggiunto un certo livello, sono costretti in qualche modo a fare anche i manager, con il risultato che iniziano ad odiare il loro lavoro e limitano comunque al minimo indispensabile le attività con le persone.

Una tipica impostazione per un'azienda tecnologica vede almeno due percorsi di carriera:

Individual Contributor: Engineer -> Staff+ Engineer -> CTO

Manager: Engineering Manager -> Director -> VP of Engineering

Il primo percorso lavora sulla tecnologia. Il secondo percorso organizza la squadra. Alcune aziende hanno anche un terzo percorso, quello di Architect.

Ma quindi dovrei assumere un EM?

Se siete in una PMI con 5 persone, o il reparto tecnologico della vostra azienda ha tre sviluppatori, probabilmente no.

Se state cercando di ingrandire la vostra azienda in particolare nel reparto tech, magari fate prodotto, avete dei team che lavorano in maniera stabile, e avete delle difficoltà a scalare e non capite perché, probabilmente sì: avete bisogno di creare una struttura di management.

Se vi sembra che sia uno spreco, domandatevi quale spreco avrete se non lo introducete, e scegliete il male minore.