Successfully reported this slideshow.
Your SlideShare is downloading. ×

I'm a mediocre developer

I'm a mediocre developer

Download to read offline

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.

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.

I'm a mediocre developer

  1. 1. Sono Ferdinando Santacroce E sono qui per condividere qualche riflessione personale. Mi potete trovare sul Tuitter @jesuswasrasta #IAD18 Ciao!
  2. 2. I’m a mediocre developer
  3. 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. 4. La mia mediocrità, reale o presunta La percezione che ho degli altri, soprattutto “quelli bravi” Sono due le questioni su cui mi arrovello:
  5. 5. Cosa intendo per mediocrità
  6. 6. Non proprio a questo livello… @jesuswasrasta #IAD18
  7. 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
  8. 8. @jesuswasrasta #IAD18
  9. 9. @jesuswasrasta #IAD18
  10. 10. Eppure un tempo pensavo pure di essere bravo @jesuswasrasta #IAD18
  11. 11. Poi ho cambiato lavoro ed ho capito che non lo ero… @jesuswasrasta #IAD18
  12. 12. L’effetto Dunning-Kruger Quando sei talmente incompetente che non sai nemmeno quanto tu sia incompetente. Wikipedia — Dunning-Kruger effect @jesuswasrasta #IAD18
  13. 13. La sindrome dell’impostore @jesuswasrasta #IAD18
  14. 14. * Dunning-Kruger effect * Imposter syndrome How good you really are How good you think you are @jesuswasrasta #IAD18
  15. 15. Cosa intendo per quelli bravi
  16. 16. “Fate i bravi!” Don Rodrigo
  17. 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
  18. 18. Non sono tutti uguali
  19. 19. Ci sono quelli bravi per davvero
  20. 20. Ken Thompson and Dennis Ritchie
  21. 21. Ken Thompson and Dennis Ritchie
  22. 22. E quelli bravi*
  23. 23. I silos @jesuswasrasta #IAD18
  24. 24. I guardiani @jesuswasrasta #IAD18
  25. 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
  26. 26. Gli eroi @jesuswasrasta #IAD18
  27. 27. Gli stakanovisti @jesuswasrasta #IAD18
  28. 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
  29. 29. Bene! E quindi?
  30. 30. Affrontare la mediocrità
  31. 31. Ma va, anche tu come me?! https://twitter.com/dhh/status/834146806594433025
  32. 32. Bubble-sort with Hungarian ("Csángó") folk dance, Algorithmics https://youtu.be/lyZQPjUT5B4
  33. 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. 34. * Dunning-Kruger effect * Imposter syndrome How good you really are How good you think you are * * * * @jesuswasrasta #IAD18
  35. 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. 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
  37. 37. ReactDocker Kotlin Java
  38. 38. Non contano solo le skill tecniche… Soft skillsKung-fu Banjo playing Softwaredevelopment @jesuswasrasta #IAD18
  39. 39. Non sentirti mediocre nei confronti di queste persone, aiutale
  40. 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. 41. Sconfiggi i guardiani Vedi anche «I terribili “guardiani della codebase” - Paolo D’Incau» https://vimeo.com/259162101
  42. 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
  43. 43. Spara ai senza legge @jesuswasrasta #IAD18
  44. 44. Rifiuta i falsi titoli @jesuswasrasta #IAD18
  45. 45. E quelli che lavorano più del dovuto? Vi confido un segreto… Lavorare più del dovuto equivale a BARARE
  46. 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!
  47. 47. Guardati dai 10x…
  48. 48. I “rockstar developer” https://github.com/dylanbeattie/rockstar
  49. 49. Rockstar FizzBuzz https://github.com/dylanbeattie/rockstar
  50. 50. Evita le persone tossiche * Gli individualisti * Chi non rispetta gli altri * I perfezionisti
  51. 51. Ken Thompson and Dennis Ritchie
  52. 52. Ma quando incontri quelli bravi davvero…
  53. 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
  54. 54. John Von Neumann
  55. 55. Forse ho capito perché mi sento mediocre! Ed ho capito anche come smettere di sentirmi così!!
  56. 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 braccetto Il confront con gli altri è inevitabile per chi lavora in team Ed inoltre ultimamaente sto diventando masochista, cerco continuamente il confront
    Sono costantemeete fuori dalla mia comfort zone, e forse a volte rischio troppo Le 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 sprovveduto Non 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ù banali Continuo a cercare informazioni su Internet (StackOverflow Driven Programming)
  • C’è un sacco di roba che non conosco
    Non mi ricordo I comandi Linux Non saprei enunciare più di 3-4 pattern Non saprei descrivere gli algoritmi di ordinamento Docker, 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 altri Mi davano idee da realizzare, ed io le portavo a termine, in qualche modo Lavoravo 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 esperti Ma ad esempio non sapevo nemmeno esistessero I sistemi di versioanmento, andavo Avanti a zip e copie schedulate Scoraggiamento, 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 Hansson Creatore di Ruby On Rails, fondatore di BaseCamp, vincitore a Le Mans Non 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 persone Impara a riconoscere I deiversi tipi di persone che incontrerai per strada, e ad approcciarli nella maniera giusta TUTTI 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
  • Questo pattern…

×