-
-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Capitolo Leadership #231
base: main
Are you sure you want to change the base?
Capitolo Leadership #231
Changes from all commits
22be980
459b5c6
2381eb1
de414c6
74420b3
e11fc84
922ea86
021f67d
747595a
8fae9e6
40a93b1
e776364
ace474c
020f42a
cfde4ae
7d6e931
c025515
264aecd
1670392
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,112 @@ | ||||||||||
# TecnoLeadership | ||||||||||
|
||||||||||
## LA GRATIFICAZIONE RITARDATA | ||||||||||
|
||||||||||
Forse avete giocato a FIFA. Oppure a PES, o ad un altro gioco di calcio. Se questo è il vostro caso, conoscete _quella sensazione_. Sapete cosa si prova quando fate gol, soprattutto se farlo è stato difficile, ha richiesto tanto impegno, se la squadra avversaria era forte e vi siete dovuti mettere alla prova con tutte le vostre forze. | ||||||||||
|
||||||||||
Le/I developer provano una sensazione simile ogni volta che risolvono un problema, ogni volta che il loro codice _funziona come vogliono_. Per quanto i sistemi informatici siano complessi, per quanto anche un singolo programma possa esserlo, se qualcosa non funziona, chi sviluppa sa che _il computer ha ragione_. Magari non riesce subito a capire perché, ma sa che sta facendo qualcosa di sbagliato. Ha un feedback immediato, e può rimettersi al lavoro per comprendere cosa non sta girando e perché, e sistemarlo. | ||||||||||
|
||||||||||
Ecco, questa dal punto di vista di chi scrive è la più grande differenza tra un mestiere come quello del/della developer e quello di un/una manager. | ||||||||||
|
||||||||||
Quando decidiamo di passare ad un ruolo manageriale, entriamo in contatto con dei sistemi ancora più complessi da prevedere: le Persone e le Organizzazioni di Persone. Improvvisamente, il feedback smette di essere immediato, e i risultati delle nostre azioni li vediamo ad una distanza di tempo enormemente più grande (certo, se insulto deliberatamente un collega probabilmente avrò subito un feedback negativo circa la mia azione, ma converrete che si tratta di un caso limite - ed anche in quel caso potremmo sorprenderci circa l’imprevedibilità delle reazioni umane). | ||||||||||
|
||||||||||
Quella sensazione del “gol”, del momento liberatorio, quella voglia di urlare di soddisfazione, quel meccanismo di ricompensa, nel mestiere del manager semplicemente non esiste. È rimandata nel tempo, e questo è il primo aspetto su cui tendo a mettere in guardia una persona che da un ruolo tecnico vuole passare a quello manageriale. | ||||||||||
|
||||||||||
Potreste esclamare: “Ma ci sono dei momenti tremendamente esaltanti nella carriera manageriale, soprattutto quando le cose vanno bene!”, ed è certamente vero, ma è comunque una sensazione diversa. Quando, durante la prima esperienza di fundraising io e il team con cui lavoravo siamo arrivati a chiudere l’accordo con i finanziatori, la nostra idea era di festeggiare in stile “Champions League appena vinta”. In realtà, eravamo talmente stanchi dopo le lunghe ore dal notaio, e talmente perplessi circa i documenti complessi che avevamo dovuto studiare ed apprendere in tempi brevi, che la sensazione fu sì di grande soddisfazione, ma comunque non “esplosiva”. | ||||||||||
|
||||||||||
A livello neurologico, questo meccanismo è ben documentato: quando completiamo un task con successo, il nostro cervello rilascia dopamina, il neurotrasmettitore responsabile di quella sensazione di realizzazione e piacere. Non a caso, i game designer più bravi usano con caparbietà questa dinamica cerebrale nella creazione dei loro videogiochi, per tenerci agganciati e spingerci a continuare a giocare. | ||||||||||
|
||||||||||
Primo avvertimento quindi: il feedback non è immediato, né quando è positivo né quando è negativo. | ||||||||||
|
||||||||||
Prendete una decisione oggi, e non sapete di preciso quando e che risultati otterrete. | ||||||||||
|
||||||||||
## Diversi tipi di leader tech | ||||||||||
|
||||||||||
Altro punto da chiarire: cos’è, ma soprattutto cosa fa un “leader” in ambito tecnologico? Se proviamo a ragionare con le etichette e i job title, è matematicamente certo che ne usciremo più confusi di prima. CTO, Engineering Manager, VP of Engineering, Head of, Tech Leader, Staff Engineer, Principal Engineer - aggiungete a piacere ed attribuite a ciascuno un significato piuttosto arbitrario. | ||||||||||
|
||||||||||
Fatto questo, traslate lo stesso ruolo in un’altra azienda, e vi renderete conto di dover ricominciare da capo. | ||||||||||
|
||||||||||
Due criteri che chi scrive ritiene più utile adottare per definire meglio la tipologia di “tech leadership” sono: | ||||||||||
|
||||||||||
1. Il livello di astrazione rispetto alla materia prima, cioè ai dettagli implementativi ed operativi necessari per rendere concrete le idee da realizzare | ||||||||||
|
||||||||||
2. La trasversalità ed ampiezza degli argomenti da toccare | ||||||||||
|
||||||||||
**Nota bene**: no, il “numero di persone a riporto” non lo metto tra i parametri. Sia perché detesto il termine “riporti” (ricorda uno stile manageriale che sicuramente funzionava bene nei film di Fantozzi ma non nel nostro contesto), sia perché la quantità di persone di un team dovrebbe essere frutto di un ragionamento molto ampio che complicherebbe inutilmente la descrizione. | ||||||||||
|
||||||||||
Partendo dai due concetti espressi si può arrivare ad un’altra distinzione chiave tra un ruolo tecnico ed uno manageriale: | ||||||||||
|
||||||||||
- Un/a developer in un contesto sano dovrebbe mantenersi in uno stato di flow più lungo possibile concentrandosi unicamente sul codice per lunghi periodi di tempo, e magari su una stessa regione del dominio applicativo (sì, lo so, nella pratica accade di rado - ma stiamo considerando un _contesto sano_, no?) | ||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Sai che questo va contro la linea di pensiero della maggior parte dei grandi nomi del settore? Per dirne una: https://nunoalexandre.com/2016/01/06/the-zone-and-interruptions Bada bene, il mio è un commento puramente soggettivo, e la flow zone può far più male che bene. Ma poi, come in tutto, dipende... |
||||||||||
|
||||||||||
- Una persona con un ruolo manageriale non può adottare lo stesso approccio, ma dovrebbe accettare sia un context switching frequente tra compiti anche molto diversi che una visione più ampia a livello di domini ed ambiti di azione | ||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Questa frase non mi è chiarissima... Il context switch "aiuta" ad avere una visione più ampia? O è una condizione in cui il/la manager si trova di frequente? |
||||||||||
|
||||||||||
Qui urge un disclaimer: “visione più ampia”, non equivale a “meglio”, e non equivale a “persona di livello più importante”. Ritengo che per garantire un approccio costruttivo nel mondo tecnologico sia necessario uscire da questi stereotipi o bias inconsci. Ne parlerò meglio nella sottosezione relativa al Dual Ladder. | ||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||
|
||||||||||
Visione più ampia significa livello di zoom diverso, guardare le cose dall’alto. Questo non è necessariamente più semplice, e non è necessariamente più difficile. | ||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||
|
||||||||||
Immaginiamo di essere su un elicottero. Un buon leader dovrebbe sapersi muovere su più “aree geografiche” assicurandosi che ciascuna di esse si mostri armoniosa ed in buone condizioni. In alcuni casi è necessario scendere di quota e osservare più da vicino - e raramente l’elicottero dovrebbe atterrare. Quando se ne presenta il bisogno, l’intento non deve essere solo quello di “risolvere un problema”, ma soprattutto gettare le basi affinché tale intervento non sia più necessario in futuro. | ||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Mi sembra più sensata una virgola. Ma non sono solito usare trattini quindi il mio vuole essere solo un commento di confronto. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Questa metafora è bellissima, complimenti |
||||||||||
|
||||||||||
Vediamo come classificare dei possibili “ruoli” di leadership in relazione ai diversi livelli di astrazione e trasversalità - ma ricordiamoci che non sono regole o dogmi, anche se un pò di standardizzazione potrebbe aiutare in fase di recruiting e comprensione tra aziende diverse: | ||||||||||
|
||||||||||
### Tech Leader | ||||||||||
|
||||||||||
- È uno/a sviluppatore di elevata seniority e capacità tecnica - la sua astrazione dal codice e dall’operatività non è totale, il suo ambito e trasversalità riguardano l’intero dominio applicativo del team in cui lavora. | ||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||
|
||||||||||
- Il suo ruolo è quello di garantire la qualità del codice e delle scelte tecnologiche del suo team, in particolare nel processo di scrittura, durante il quale si scelgono gli algoritmi e le strutture dati pertinenti. Inoltre, deve assicurarsi che le altre persone del team facciano tutto questo nel migliore dei modi. | ||||||||||
|
||||||||||
- Non ha persone formalmente a riporto, ma deve indubbiamente guadagnarsi il rispetto e la fiducia dei suoi compagni di squadra grazie alla sua autorevolezza. Rispetto ad un Senior Developer, in ogni caso, il suo ruolo gli conferisce anche l’autorità per prendere delle decisioni (limitatamente all’ambito tecnico) nel momento in cui il team non dovesse riuscire a farlo in autonomia. | ||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||
|
||||||||||
- E' una figura di riferimento: nel caso in cui gli altri membri del team dovessero avere bisogno di supporto, dovrebbe essere la prima figura nel gruppo a fornire degli spunti affinché si possa risolvere un problema nel modo migliore e nel breve tempo possibile. | ||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||
|
||||||||||
### Engineering Manager | ||||||||||
|
||||||||||
- È una figura manageriale - anche se in alcuni contesti gli Engineering Manager scrivono ancora codice, chi scrive ritiene che non dovrebbe essere il caso in un team del tutto funzionale; il focus di questi ruoli dovrebbe essere sulle Soft Skill | ||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||
|
||||||||||
- La trasversalità è più ampia di quella di un Tech Lead o di un developer, in quanto la conoscenza deve estendersi sugli ambiti di dominio di tutti i team gestiti | ||||||||||
|
||||||||||
- Il suo ruolo è quello di People Manager degli sviluppatori di uno o più team - è inevitabile che debba conoscere le tematiche tecnologiche, soprattutto in ottica di comprensione delle complessità che i tecnici affrontano nel day-by-day, ma la sua missione principale è assicurarsi che le dinamiche nei suoi team siano positive. Imperativi in questo senso sono i 1:1 (momenti di incontro e confronto individuali tra il manager ed ogni singola persona del Team) nonché un forte allineamento con Tech Lead e - qualora ci siano - Product manager | ||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||
|
||||||||||
- Da organigramma, le persone dei team che gestisce sono formalmente a suo riporto | ||||||||||
|
||||||||||
### VP (o Head) of Engineering | ||||||||||
|
||||||||||
- Il livello di astrazione aumenta; un tipo di figura di questo tipo non dovrebbe essere coinvolta nella scrittura o nella revisione diretta di codice | ||||||||||
|
||||||||||
- La trasversalità è ampia: tendenzialmente questa figura deve avere una vista sull’intero dominio ingegneristico aziendale | ||||||||||
|
||||||||||
- Questo tipo di figura ha senso quando l’organizzazione diventa complessa, e ci sono diversi Engineering Manager con tanti team di sviluppo, ciascuno dei quali ha un prodotto (o una fetta di prodotto) da gestire e portare avanti | ||||||||||
|
||||||||||
- Nelle aziende più grosse e volutamente più strutturate, l'Head of Engineering assume un ruolo intermedio fra gli engineering manager e il o i VP of Engineering. Non vi sono particolari differenze fra i due ruoli se non l'introduzione di un ulteriore livello di astrazione, che potrebbe avere senso se si vuole logicamente differenziare più business unit aziendali teoricamente indipendenti fra loro. | ||||||||||
|
||||||||||
- Nelle aziende più grosse e volutamente più strutturate, l'Head of Engineering assume un ruolo intermedio fra gli engineering manager e il o i VP of Engineering. Non vi sono particolari differenze fra i due ruoli se non l'introduzione di un ulteriore livello di astrazione, che potrebbe avere senso se si vuole logicamente differenziare più business unit aziendali teoricamente indipendenti fra loro. | ||||||||||
|
||||||||||
Ho volutamente tenuto fuori il CTO (o CIO o chiamatelo come preferite), perché dal mio punto di vista questa figura è ancora diversa e non legata esclusivamente alla parte di Engineering. Questo è un altro bias molto frequente. In questo caso il livello di astrazione è ancora più alto e la trasversalità si estende ai processi dell’intera azienda, sia per quanto riguarda la cosiddetta “digitalizzazione” dell’organizzazione che anche per tutte le qustioni finanziarie ed amministrative, nonché gli allineamenti con gli executive ed il board o, in caso di aziende che richiedono finanziamenti, coinvolgimento in fase di fundraising. | ||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Prima di questo punto non mi pare si parli di altri bias. Si potrebbe rimuovere "altro" secondo me. Che ne pensi? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||
|
||||||||||
## Dual Ladder | ||||||||||
|
||||||||||
Nel paragrafo precedente ho esplicitato come il tema della “visione più ampia” che generalmente un manager ha o dovrebbe avere non debba essere visto come una sorta di “aumento di livello di competenza”. | ||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||
|
||||||||||
Per reiterare l’importanza di questo concetto colgo l'occasione per tornare a parlare di un punto molto caro al sottoscritto: il principio del dual ladder. In ambito tecnologico fatico a vedere un approccio diverso che possa avere successo. Partiamo da tre concetti chiave da tenere a mente: | ||||||||||
|
||||||||||
- Il software engineering ricade nell’ambito di _knowledge work_, in cui le competenze specialistiche sono estremamente variegate e complesse. | ||||||||||
|
||||||||||
- Un manager non potrà mai essere un _superset_ delle conoscenze di tutto il suo Team, e qualora ciò dovesse accadere allora la prima domanda da porsi sarebbe “quali sono le carenze del Team?” | ||||||||||
EMCestari marked this conversation as resolved.
Show resolved
Hide resolved
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Un piccolo dettaglio: con la virgola mi sembra la frase scorra meglio. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||
|
||||||||||
- Le skill manageriali sono notevolmente diverse da quelle richieste ad un tecnico (di nuovo, non più o meno complesse - _diverse_) ed il tempo per formarsi è limitato per tutti, ergo bisogna scegliere. | ||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||
|
||||||||||
Tradizionalmente, in molte aziende si sono visti schemi di crescita lineari o piramidali, in cui “prima si parte dal lavoro operativo, poi si diventa bravi a farlo e allora si può diventare manager di altri”. | ||||||||||
|
||||||||||
Questo approccio può funzionare in alcuni casi, soprattutto quando il lavoro operativo è sufficientemente semplice e ripetibile da essere “insegnato” da un singolo esperto ad un team più junior, che a quel punto può essere coordinato. | ||||||||||
|
||||||||||
Ma nell’ambito tecnologico, a causa dei tre principi visti prima, questo approccio non scala. | ||||||||||
Il Command and Control (dire alle persone che sviluppano come fare le cose) porta nella maggior parte dei casi a disfunzionalità, calo di motivazione, deresponsabilizzazione e anche a far perdere valore all'azienda, in quanto le competenze pregiate degli individui non vengono utilizzate nel processo decisionale. | ||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||
|
||||||||||
Peggio ancora, si dovesse ricadere nel meccanismo del micromanagement. Un manager con l'ossessione del controllo a tutti i costi ha il potere di rovinare un team in poco tempo. | ||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||
|
||||||||||
Quello che un buon manager dovrebbe fare è creare un ambiente in cui le competenze specialistiche possano brillare, generare valore ed evolvere insieme alle Persone che le coltivano. | ||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||
|
||||||||||
Alcuni tecnici _non_ vogliono diventare manager, e fanno bene a perseguire il loro sogno di carriera: diventare sempre più bravi nella loro area di competenza! | ||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||
|
||||||||||
Da un punto di vista aziendale, se si crede in questi presupposti, è importante creare un sistema incentivante anche per chi non vuole crescere in un percorso manageriale. Le figure tecniche devono sentire riconosciuto e premiato il loro continuo perfezionamento, a prescindere dal fatto che rimangano _individual contributor_. Quando parlo di sistema incentivante intendo ovviamente un percorso di carriera, che possa portare alle stesse soddisfazioni (anche a livello retributivo) di un manager di pari livello; sono sempre le competenze e il valore portato all’azienda che dovrebbero fungere da discriminante, non il _job title_. | ||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||
|
||||||||||
Il Dual Ladder è una buona soluzione a questo punto, in quanto prevede dei “livelli” di crescita sia per le figure tecniche che per quelle manageriali; molti partono da una base comune ed operativa e poi si biforcano, il che è comunque sensato perché anche un manager di persone Tech deve conoscere la lingua ed il modo di lavorare di quel tipo di Team - guai a mettere un manager generalista in un ruolo di Engineering Manager. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.