I personally know some developers who are very talented and can create great pieces of software with no or little struggle.
Because of these gifted individuals, our industry is full of high expectations. But the sad truth is: not everyone is a ninja/guru/rockstar developer.
And that's exactly who I am: a mediocre developer.
In this talk I shared some thoughts and tips for surviving in the industry if you are not a genius.
3. Una piccola premessa
* Si tratta della mia esperienza, della mia storia
* Sono tutte o quasi opinioni personali
Mi aspetto che non siate d’accordo, che vi sentiate
annoiati, infastiditi o che pensiate che io sia davvero uno
sfigato…
E va bene così : )
Solo una cortesia: non tenetevelo per voi, parliamone!
@jesuswasrasta #IAD18
4. La mia mediocrità, reale o presunta
La percezione che ho degli altri,
soprattutto “quelli bravi”
Sono due le questioni su cui mi arrovello:
7. Ma comunque si tratta di competenze
* La mancanza di skill tecniche
* La difficoltà nel risolvere i problemi
* Un generale senso di inadeguatezza
@jesuswasrasta #IAD18
10. Eppure un tempo pensavo pure di essere bravo
@jesuswasrasta #IAD18
11. Poi ho cambiato lavoro ed ho capito che non lo ero…
@jesuswasrasta #IAD18
12. L’effetto Dunning-Kruger
Quando sei talmente incompetente che non sai
nemmeno quanto tu sia incompetente.
Wikipedia — Dunning-Kruger effect
@jesuswasrasta #IAD18
17. Quelli bravi per davvero
* 👍 Quelli da accogliere a braccia aperte
intelligenti, preparati, perseveranti, generosi, geniali
* 👎 Quelli da prendere con le pinze
individualisti, impazienti, tossici
Quelli bravi ma solo perché…
* Lavorano nella stessa azienda da decenni
* Impediscono a chiunque di avvicinarsi al loro “castello”
* Si immolano per la causa
* Forse non hanno una vita privata
25. Spesso sono nello stesso posto da anni
* Conoscono il dominio
* Conoscono tutti i segreti, i dettagli
* Custodi gelosi della conoscenza tacita
* Fuori dal loro mondo sono in difficoltà
@jesuswasrasta #IAD18
28. I bravi da contratto
* Analisti, solution architect, ed altre figure mitologiche
imposte da qualcuno
* Umarell
NB: c’è chi ha ruoli di cui
sopra ed è bravo per
davvero, intendiamoci…
Solo ritengo queste
figure una disfunzione
all’interno del team
33. Le 4 categorie della conoscenza
* Cose che so di sapere
* Cose che so di non sapere
* Cose che non so di sapere
* Cose che non so di non sapere
Bonus
* cose che pensi di sapere, ma non è vero…
34. * Dunning-Kruger effect
* Imposter syndrome
How good you really are
How good
you think
you are *
*
*
*
@jesuswasrasta #IAD18
35. Scegli bene come investire le tue risorse
* Non puoi imparare tutto…
* Scegli le cose a più alto valore
* Impara quello che non puoi cercare
facilmente su internet
* Impara i fondamentali
* Keep it simple
@jesuswasrasta #IAD18
36. Cerca di essere una T
«I-shaped»
Expert at one thing
«Generalist»
Capable in a lot of things,
Expert at any
«T-shaped»
Capable in a lot of things,
Expert in one of them
@jesuswasrasta #IAD18
40. Svuota i silos
* Lavora con loro, impara, coinvolgili, svuotali o alla peggio abbattili
* Parlane con chi guida l’azeinda (sono un problema!)
@jesuswasrasta #IAD18
41. Sconfiggi i guardiani
Vedi anche «I terribili “guardiani della codebase” - Paolo D’Incau» https://vimeo.com/259162101
42. Salva gli eroi
* Gli eroi, in genere muoiono in battaglia…
* Se sei sempre in emergenza, niente è più un’emergenza (tranne
quando lo è)
@jesuswasrasta #IAD18
45. E quelli che lavorano più del dovuto?
Vi confido un segreto…
Lavorare più del dovuto
equivale a BARARE
46. Ma se per l’azienda queste persone
non sono un problema…
* Se queste situazioni non vengono percepite ed affrontate
* Se per chi guida l’azienda non sono un problema, anzi,
«meno male che c’è XYZ che ci salva sempre!»
Cambia azienda!
53. Sono un dono, goditeli!
* Lavora con loro, confrontati, cerca di imparare
il più possible
* Fagli tutte le domande che puoi
* Spiega a loro le cose che sai: capirai se le sai
davvero
55. Forse ho capito
perché mi sento mediocre!
Ed ho capito anche
come smettere di sentirmi così!!
56. “Sii il peggior giocatore nella miglior
squadra che accetti di farti giocare”
Grazie :)
@jesuswasrasta #IAD18
Editor's Notes
Vi chiederete: perché questo titolo?Perché questo è quello che mi ritrovo a pensare di tanto in tanto, e non ho ancora capito se è così o no
Questa sessione è per me un modo per verificare
Insomma, ho poche certezze e tanti dubbi: spero oggi di poterne fugare alcuni
Dirò cose magari scontate, e me ne scuso, ma il solo sapere che sono scontate sarebbe per me già una conforto
Questa sessione è fatta per me più che per voi
Parlarne con qualcuno che ha avuto esperienze simili mi può aiutare a capire se sono mediocre per davvero o no
Parlerò di persone e personaggi diversi, sperandodi non offendere nessuno
Chi di voi ricopre un ruolo tipo “Analista, architect, team leader”?Parlerò male di voi, ma cercherò di contestualizzare il più possible
Chi di voi lavora nella stessa azienda da 7-8 anni?Parlerò male anche di voi
Due temi che vanno a braccettoIl confront con gli altri è inevitabile per chi lavora in teamEd inoltre ultimamaente sto diventando masochista, cerco continuamente il confront
Sono costantemeete fuori dalla mia comfort zone, e forse a volte rischio troppoLe persone che incontro confermano o smentiscono la mia ipotesi di mediocrità
E’ un processo costante, una giostra continua con alti e bassi
Vorrei chiarire cosa intend per mediocritàNon mi reputo uno sprovvedutoNon sono certo un genio, ma so di avere delle qualità, di spaere fare qualcosa in amniere decente
Quindi, non prprio così
Il focus comunque è sulle competenze tecniche, quelle che alla fine ti rendono ai toui occhi, o a quelli degli altri, un bravo sviluppatore
Quindi, cosa mi succede?
Mi dimentico le cose più banaliContinuo a cercare informazioni su Internet (StackOverflow Driven Programming)
C’è un sacco di roba che non conosco
Non mi ricordo I comandi LinuxNon saprei enunciare più di 3-4 patternNon saprei descrivere gli algoritmi di ordinamentoDocker, JS, linguaggi, tool…Eppure quando ho iniziato StackOverflow nemmeno esisteva, e me la sono cavata
Ho lavorato parecchio quasi sempre da solo, confrontandomi poco con altriMi davano idee da realizzare, ed io le portavo a termine, in qualche modoLavoravo da solo in una scuola: di mattina assitente di laboratorio, di pomeriggio programamtore, sistemista, tuttofare (devops ante-litteram…)il sito della scuola, registro elettronico, educazione a distanza
Assunto in una vera software house, con programmatori espertiMa ad esempio non sapevo nemmeno esistessero I sistemi di versioanmento, andavo Avanti a zip e copie schedulateScoraggiamento, ostacoli, tante cose da imparare…
Poi ho scoperto che questi stati d’animo hanno un nome
Non sai riconoscere I tuoi errori
Le persone con scarse abilità in un’area specifica sono spesso scarsi anche nel giudicare le loro abilità in quell’area.Questo ti fa prendere cattive decisioni, vicoli ciechi
O peggio ancora ti fa diventare arrogante, supponente
Poi invece c’è l’opposto…
Quando invece hai fin troppa coscienza di te e di quante cose ancora non sai
Non riesci a gioire dei risultati raggiunti
Pensi di essere sopravvalutato
Vivi nel tetrrore che prima o poi qualcuno scopra che sei una pippa
Questa in sostanza la situazione
Prima vi parlavo anche di bravi, riprendiamo il discorso e vediamo cosa intend per “quelli bravi”
Ci sono bravi e bravi…
Tutti posso aiutarti a migliorare, ma anche ad alimentare il senso di mediocrità
Vi racconterò come ho imparato a distinguerli, e come cerco di trarne vantaggio e sopravvivere.
Non questi bravi, questi hanno smesso di darmi noia in 3a suepriore…
Bravi per davvero
Intelligenti
Capacita di risolvere problemi
Veloci nell’elaborazione di una soluzione e nella loro implementazione
Capaci di pensare diversamente dagli altri
Skill tecniche
Hanno più conoscenze
Quindi sì, nella mia testa ci sono bravi e bravi
Per me non sono tutti uguali
Tutti hanno alimentano il mio senso di mediocrità
ora qualcuno ha smesso di farlo
Nell’immediate li ritengo tuti più efficacy di me nel rislvere un problema, una situazione
Credo di aver vestito I panni di tuti questi personggi…
Ogni tipologia può dare qualcosa, sta a te saperli riconoscere e trarne il meglio
Oppure imparare a difenderti o attaccare quando necessario
Questi sono un dono
Bisogna cercarli
C’è qualcno che non li conosce?
Hanno inventato B, C, Unix, le piep, grep, Golang….
Intelligenza superiore
Altamente skillati
Capacità (e volontà) di condividere la conoscenza (Bell Labs)
Esistono, li ho incontrati, ci lavoro insieme tutti I giorni…
La loro capacità è pura, sanno approcciare qualsiasi problema con oggettività
Fatto tante cose, ma era una testa di m***
Poi ci sono quelli bravi con l’asterisco
La loro bravura è drogata da qualche agente esterno
Facciamo qualche esempio
Ci sono diversi tipi di silo:
Silo per reparti
Silo per progetto
Silo per competenze tecnologiche
Focalizziamoci sui sili competenze e dominio
Diverse sono le persone che appartengono o rappresentano un silo
A volte non ne sono consapevoli
A volte lo sono, e ci soffrono
A volte ci godono…
Detengono un progetto, una codebase, un pezzo dell’infrastruttura
Col tempo diventa difficile avvicinarli, chiedere collaborazione
Guai fargli cambiare qualcosa…
Non puoi aiutarli: solo loro sanno mettere mano alle loro cose
Non puoi ficcare il naso nelle loro faccende
Ad esempio quelli che, lavorando nella stessa azienda, allo stesso progetto, o nello stesso contest da anni, hanno il vantaggio di conoscere tutti I trucchi ed I segreti
A volte ne approfittano, a volte sono generosi e condividono
Se tolti dal loro contest però, non sapresbbero cavarsela poi tanto bene
Vediamoli in dettaglio
Bravi o meno, si immolano per la causa
Sono sempre loro a risolvere i problemi
Tendono a sovraccaricarsi
Diventano spesso colli di bottiglia
Prima o poi sbagliano comunque
Workaholic
Bravi o meno, lavorano 26 ore al giorno
Fanno del loro meglio, quasi sempre in buona fede
…
Ruoli in genere impost in grandi aziende
Non sempre meritati…
Figure distaccate dal team, per volontà o per necessità (sono dei PM mascherati)
Proxy di richieste e conoscenze
Non aiutano il team a crescere
Ok, ora che abbiamo definito cosa sia la mediocrità e quali siano I soggetti che più o meno confermano o smentiscono la mia mediocrità, Andiamo a vedere come possiamo affrontarla
Innanzitutto: bisogna imparare a capire quando si è veramente mediocri e quando no
1° punto: riconoscere quando sei davvero mediocre e quando forse non lo sei….
Questa è stata un po’ la molla che mi ha fatto scattare l’idea
Mi sono reso conto che non è una situazione rara quella che sto vivendo
Chi è DHH, David Heinemeier HanssonCreatore di Ruby On Rails, fondatore di BaseCamp, vincitore a Le MansNon che mi voglia paragonare a lui, anzi, se anche lui la pensa così mi sento rincuorato
Anche io come lui non saprei fare un bubble-sort alla lavagna
Se volete approfndire gli algoritmi di ordinamento, ho però la risorsa giusta da segnalare
Compagnia rumena che rappresenta algoritmi di ordinamento con danze folk
Ma torniamo a parlare di mediocrità, o meglio di conoscenza
so di sapere: so guidare un’automobile
Ok, ma non smettere mai di metterle in dubbio
Prova a spiegarle agli altri
Confrontati
Proponi delle sessioni ad una conferenza :)
so di non sapere: non so operare un paziente al cuore
Puoi sempre imparare…
non so di sapere: pensavo che sciare fosse più difficile
Sorpresa! Goditi il momento, ma non adagiarti
non so di non sapere: come ne vengo a conoscenza?
Alla fine continui a passare da uno stato all’altro
Non ci puoi fare nulla, è normale
Puoi solo cercare di capire il prima possible dove ti trovi
Per fare questo, cerca il confronto, fallisci
E comunque tieni presente che hai risorse limitate
Non ti serve sapere tutte le nozioni
Tu devi appendere competenze, non nozioni
Saper come fare a sapere una cosa
Keep it simple: non cercare di strafare, fai cose semplici, ma falle bene
O sai tutto di “niente”, di un argomento molto circoscritto, o tutto di niente..
Più è largo “il fusto” della T, meglio è
La T può essere vista a più livelli
Più tecnica, roguardante le varie tecnologie
Più ad ampio spettro, considerando tutte le comeptenze di una persona
Ricorda valori e princìpi del Manifesto
Spesso I problem si possono risolvere dialogando, comunicando meglio
Cerca il modo per evitare di fare il lavoro, massimizza il lavoro non fatto
Impara a negoziare
Ascolta PO, stakeholders e utenti, non ti fidare degli intermediary
Fai esperienze diverse
Immagina gli skill come quelli dei perosnaggi dei video games, e costruisci la miglior squadra
La T può essere vista a più livelli
Più tecnica, roguardante le varie tecnologie
Più ad ampio spettro, considerando tutte le comeptenze di una persona
Ricorda valori e princìpi del Manifesto
Spesso I problem si possono risolvere dialogando, comunicando meglio
Cerca il modo per evitare di fare il lavoro, massimizza il lavoro non fatto
Impara a negoziare
Ascolta PO, stakeholders e utenti, non ti fidare degli intermediary
Fai esperienze diverse
Immagina gli skill come quelli dei perosnaggi dei video games, e costruisci la miglior squadra
2° punto: non sentirti mediocre nei confronti di queste personeImpara a riconoscere I deiversi tipi di persone che incontrerai per strada, e ad approcciarli nella maniera giustaTUTTI POSSONO DARTI QUALCOSA
Rendili coscienti di cosa rappresentano
Cerca di capire se stanno bene o no nella loro posizione
Se no, aiutali a svuotarsi
Se sì, cerca di farlgi capire perché è un problema
Se non vogliono sentire ragioni, cerca di abbatterli
Hit by the bus: quante persone possono essere investite da un bus prima che l’azienda vada in bancarotta?
Esempi pratici
In un team, chi conosce quell pezzo di codice, quell prgetto, Non ci lavora, ci lavora chi non lo conosce (magari in pair programming)
Anche qui, primo passo è renderli coscienti, magari non ne sono consapevoli
Cerca di entrare nel loro castello
Modifica il codice, intervenire, fai casino se necessario (sempre che tu debba lavorare con loro)
Collective ownership
Se sono un altro team, un altro reparto, etc…
Aiutali a fargli capire che il loro modo di lavorare non è sostenibile
Anche se sei un eroe prima o poi sbaglierai, e certa gente si ricorda meglio gli errori che i successi
Se si p costretti sempre a lavorare in emergenza, poi non si riesce più a distinguere qual è un’emergenza vera, e quale no
Se noti che nella tua azienda viene premiato questo genere di comportamento, scappa…
Programmatori solitari, quelli più bravi degli altri, senza regole
Cowboy coding
No analisti, no architetti, ma solo mebri di un unico team
Anch’io l’ho fatto spesso, e me ne sono pentito
Lo fai con buoni propositi: “sono meno bravo, devo fare di più…” ma non è giusto
E’ scorretto nei confronti di chi non può fare di più e farsi bello alla stessa maniera
Non è sostenibile
Guardati dai capi che premiano questo comportamento
Se non puoi abbattere I silo, sconfiggere I guardiani salvare gli eroi….
se per I capi non è un problema, anzi, li ritengono bravissimi e perfetti, cambia azienda!
Ora torniamo ai bravi, ma quelli tossici
Si parlava prima di programmatori dotati ma con qualche difetto caratteriale, per così dire
I Rockstar developer non esistono, a meno che tu non inteda questo
E nemmeno I ninja, guru, ed altritioli fantasiosi inventati dai recruiter
Individualisti: Anche se sei bravissimo, difficilemnte cambierai il mondo da solo
Blaming
Perfezionisti: sembrano innocui; ossessivi e compulsive, ma buoni
Passano tempi infiniti a rifinire design, perfezionare dettagli, fare analisi, senza arrivare mai a conclusion del progetto
I troll che succhani energia; Evitali, non dargli cibo
Respingili con la gentilezza, li fa incazzare tantissimo
Non coinvlgere (troppo) le emozioni, rimani concentrato sui fatti
Riconosci quanto è troppo, prendi provvedimenti
Il ofcus è comuqnue sul luingo termine…. Decidi se vale la pena
Bravissimi, ma delle teste di cavolo…
Nonfanno squadra, anzi, la distruggono
Aneddoto raccontato da Odifreddi
Fisici e matematici dell’epoca, per capire se avevano capito, andavano da Von Neumann per farsi debuggare le proprie teorie
E lui in pochi secondi trovava eventuali fallacità
Sono mediocre perché mi confront continuamente con gente più in gamba di me
Ma se penso a com’ero un tempo, ho fatto passi da gigante
Alla fine mi sono reso conto di seguire un pattern