Qualche giorno fa, mentre leggevo Peopleware (portate pazienza per la recensione: arriverà) mi sono reso che gestire un “team di sviluppo” non è affatto semplice…
Nel corso del tempo ho accumulato nozioni teoriche/pratiche, esperienza lavorativa (ovviamente anche in team), perfino una certa capacità di spiegare le cose agli altri, ma mi accorgo di non aver mai avuto il piacere di seguire un corso (o qualcosa di simile) su come mettere/tenere in piedi e gestire un gruppo di sviluppo.
Parlo dell’aspetto umano del lavoro, ben diverso da quello tecnico.
Non che mi serva al momento, ma un domani?
“Può un individuo che aspira prima o poi a raggiungere lo status di ‘tecnico professionista‘ accettare serenamente di avere lacune e per giunta in un ambito così “vicino” – per modo di dire – al suo?
Sto notando che nè l’Università nè il mondo del lavoro che ho visto fin qui mi hanno trasmesso nozioni chiare e precise su questo tema. Non imputo colpe a nessuno, ma non mi va l’idea di subire la cosa o, peggio, dover improvvisare qualcosa nel caso servisse.
Non sto parlando di diventare necessariamente un manager o un capo-progetto, ma escluderlo a priori e non prepaparsi affatto secondo me è da folli.
Gestire un team di sviluppo
Da tecnico ho sviluppato naturalmente un senso di appartenenza ad un gruppo, quello dei tecnici appunto.
Per cui – lo ridico per la milionesima volta – mi ritrovo nell’affermazione, contenuta in un post-capolavoro di Spolsky, secondo cui:
“[...] programmers tend to respect programmers a lot more than non-programmers, no matter how smart they are.”
Un corollario implicito è che i tecnici tendono anche ad apprezzare maggiormenti altri tecnici in qualità di loro responsabili, perche li sentono come dei “pari che hanno fatto strada“. Ovviamente questo tipo discorso è estendibile a qualunque altro gruppo o categoria di lavoratori in cui possa esistare un certo livello gerarchico.
Ciò detto, per essere un buon capo di un gruppo tecnico non serve per forza essere un tecnico a propria volta (Peopleware e lo stesso Spolky docent), ci mancherebbe!
Però se si parla di realizzare un prodotto ad un certo punto bisogna entrare nei dettagli tecnici: come minimo serve anche una figura “di collegamento” fra sviluppatori e upper management, che sia in grado di “pilotare” lo sviluppo da questo punto di vista e che non trascuri il lato umano della faccenda. Un primus inter pares è di fatto la scelta più semplice.
Imparare vivendo la situazione?
Per quanto possa imparare e ho imparato “by example” nel corso del tempo osservando, analizzando e studiando chi mi stava sopra in un dato momento, non sono certo di aver appreso compiutamente le basi della “materia”.
Spesso si trattava di persone che, per merito tecnico (onore a loro: un po’ di meritocrazia esiste per fortuna!), sono state promosse di rango, ma un conto è far funzionare le cose ed un conto è far funzionare anche le persone. Esattamente come il fatto di essere bravi nel fare una cosa non implica automaticamente l’essere anche portati a insegnarla e bene a terzi.
Grazie a loro posso dire di aver imparato un’infinità di trucchi e strategie più o meno efficaci per trattare con gli altri, qualcosa che messo insieme costituisce un bel nucleo di esperienza diretta, ma sfortunatamente nulla di esprimibile in un discorso ordinato e compiuto (come lo è spesso imparare solo di e per esperienza: tante piccole illuminazioni in un mare agitato, indefinito e sconosciuto).
C’è chi dice che per comprendere appieno una situazione l’unico modo è trovarvisi dentro in prima persona, quindi si arriva ad un discorso di occasioni afferrate al volo e di punti di vista completamente differenti fra chi vive certe situazioni e chi no. Non basta ragionare per “se io fossi al posto di $TIZIO“, per capire come vanno davvero le cose, come esso le vive.
Ciò nonostante, non mi piace nè intendo accettare di imparare solo “a vista” o solo “per riflesso” dell’esperienza altrui..
Mi serve qualcosa di specifico e preciso per imparare…
Una proposta modesta
Dal momento che nonostante la miriade di esami sostenuti all’Università non ho trovato quello che cercavo (e/o non ci ho fatto troppo caso), personalmente sarei favorevole ad aggiungere almeno un corso di “team management fortemente tecnico” nelle facoltà come quella che ho seguito io, anche solo come esame complementare.
Non un corso di sociologia o psicologia del lavoro, per altro già esistenti, ma uno incentrato sul “gruppo di lavoro tecnico” visto in ottica sia di “soldato semplice” che di “generale“.
All’estero esistono da tempo corsi per creare “team efficienti” (es: questo, della Loyola University) e sarei curioso di sapere se esistono anche in Italia e in quale facoltà tecnica.
Quello che mi piacerebbe è appunto un corso multidisciplinare, tecnico e per tecnici, di “infarinatura” e di livello universitario, che tratti ad esempio questioni che osservo abitualmente come:
- gestire in modo ottimale e prolungato gruppi numerosi di sviluppatori (10+);
- operare una corretta ripartizione delle mansioni fra più persone;
- suddividere ed organizzare le responsabilità nei progetti;
- integrare e gestire al meglio le “nuove leve” in progetti nuovi o già avviati (senza inficiare lo sviluppo dei progetti stessi);
- gestire i turnover;
- ottenere il massimo da una persona senza soffocarla;
- scegliere ed applicare le metodologie di sviluppo adeguate;
- scegliere e promuovere l’utilizzo dei tool migliori;
- favorire la formazione continua tecnica;
- reagire all’impatto di cambiamenti di specifica;
- determinare se e quando è il momento per “promuovere” una persona da mansioni “junior” a “senior“;
- fare da schermo fra “upper management” e sviluppatori “sottoposti”;
- imporre le best practices da seguire;
- ricomporre le dispute tecniche;
- imporre una direzione di sviluppo in ottica di una “visione d’insieme”;
- capacita` di delegare (gentilmente suggerito da Larsen)
Questi punti mischiano insieme tecnica e aspetto umano. O, se preferite, trattano di sviluppo in un contesto allargato e “umanamente scalabile“, che poi sono i gruppi di lavoro tecnici.
Potrei andare avanti per ore ad aggiungerne altri e sono certo che qualunque sviluppatore che abbia sulla groppa qualche anno di esperienza potrebbe fare altrettanto.
Ecco, io vorrei organizzare i piccoli trucchetti che si imparano per “esperienza collettiva” o “guardando i capi” e trarne un qualcosa che aiuti seriamente a far parte ed eventualmente dirigere un gruppo di sviluppatori.
Conclusioni
Il senso del post era ovviamente provocatorio ma in un’ottica professionale non esistono solo le nozioni e il “know how“: spero di aver reso l’idea.
Che ne pensate?
Tocchi un punto che mi sta molto a cuore, e che in scala per il momento ridotta sto vivendo.
Sei stato bravo ad elencare i problemi che si affrontano in un ruolo di questo genere (andrebbe pero` fatta menzione esplicita per “capacita` di delegare”), ma sono critico e dubbioso riguardo all’opportunita` di istituire corsi universitari come quello che proponi: ritengo che all’universita` non si abbia ancora la maturita` e l’esperienza per essere “terreno fertile” per questo genere di insegnamenti. Sono troppo pessimista?
Non sei pessimista, probabilmente sei solo troppo realista circa la situazione italiana.
Resto dell’idea che un corso del genere serva davvero, anche solo come l’(ennesima) giustificazione al seguire un’Università tecnica invece di buttarsi direttamente nel mondo del lavoro appena possibile.
O, se preferisci, questo sarebbe un corso che vedrei benissimo in una facoltà tecnica di tipo vocational, categoria quasi del tutto assente (almeno in via ufficiale) in Italia.
L’idea che sull’argomento ci siano svariati libri utili ma zero o pochi corsi mi pare abbastanza fastidiosa, non trovi?
PS: ho aggiunto il tuo punto perchè lo ritengo fondamentale. Grazie per avermelo ricordato (e per essere passato).
come al solito bel post ma data l’attuale situazione di “ignoranza” delle nostre università, con programmi vecchi ed insegnanti ancor di più, non penso che il corso sia una cosa utile o che trovi (come è stato detto) “terreno fertile”.
sicuramente è utile, come tu stesso hai analizzato, ma molto (dal mio punto di vista) lo fa anche l’esperienza personale di “chiacchiericcio” che una persona acquista nel suo cammino formativo (scolastico e non), quindi ben venga il corso ma non bisogna mai scordarsi della “persona”.
concordo sul fatto che in ogni ambito ci sia il rapportarsi con i propri simili, ma questo se vogliamo è una regola di vita
fortunatamente come hai analizzato, in alcuni ambiti esiste ancora la meritocrazia ed è giusto che venga applicata, ma non dobbiamo scordarci che in Italia oltre alla meritocrazia esiste l’invidia che di comune accordo con l’ignoranza, fa si che non si cresce, anzi si retrocede.
molte volte mi son sentito dire: “tu prendi tot euro al mese per stare su internet” ma nessuno si chiede io cosa faccia su internet, perchè internet = svago = scemerie ma mai lavoro
Mia mamma, sia che studiassi, sia che lavorassi con il computer, ha sempre pensato che io in realtà stessi giocando e me lo ha detto spesso. Per cui capisco bene cosa intendi.
Il senso del mio post non è fare carta straccia dell’esperienza accumulata in un certo ruolo quanto offrire uno spunto su come integrarla.
A differenza tua non nutro particolare fiducia nella sola esperienza individuale perchè sfortunatamente non basta. Per non parlare del fatto che le cose sconosciute tendono a spaventare l’uomo.
Esempio canonico: cambi lavoro e ti trovi con persone nuove, molto diverse dai tipi di persone con cui hai sempre lavorato. In altre parole non puoi ragionare negli stessi termini di quello che hai provato in precedenza sulla tua pelle perchè semplicemente non basta nè può bastare.
Ecco quindi il succo del mio discorso: sia che tu sia un soldato semplice o un “capo”, avere qualche base teorico-pratica per poter vivere in modo ottimale in un gruppo non mi pare una richiesta folle. Tanto meglio se qualcuno ti spiega come sfruttare al meglio l’appartenenza ad un “team”.
Perdona la franchezza, ma un “team” per me non è solo insieme di persone che lavorano nello stesso ufficio, se no tanto vale costruire dei muri fra di loro.
Io individuo nell’Università uno dei luoghi preposti per spiegare il “come” e suggerisco la forma dell’esame complementare, ossia qualcosa di non obbligatorio ma almeno disponibile (anche se io lo riterrei fondamentale).
Ovviamente sei, anzi siete liberi di non essere d’accordo come me, ci mancherebbe!
Ciao & grazie di essere passato!
PS: sarà che ho qualche anno di età sulle spalle, ma credo di avere qualche idea per “svecchiare” le facoltà tecniche senza renderle troppo terra-terra nè troppo orientate all’industria. E come me, credo molte (molte) altre persone.
mi son lasciato fraintendere
per esperienza personale intendevo “esperienza di rapportarti all’altro”, fare amicizia è logico che alla base deve esserci sempre qualcosa di “tecnico” altrimenti se si è tutti allo stesso livello non si riesce ad organizzare nulla
sorry per l’incomprensione
Tranquillo, avevo ben inteso a dire il vero. Diciamo che ne ho approfittato per spiegare meglio quello che intendevo.
Grazie ancora. ^^
Nota a margine. Ho controllato su Amazon “Peopleware”: a parte che non sapevo di conoscerlo gia` (in altri libri vedevo sempre citare “il DeMarco” e scioccamente non ho mai controllato il titolo del volume), come caspita fa a costare cosi` tanto?! @JP dimmi che non hai speso 350$ per comprarlo
Mi sa che è un errore il prezzo che hai letto: non è che c’è finito uno zero in fondo in più? Costa al massimo una cinquantina di dollari in certi posti, usato molto meno…