📝

The IT HR’s handbook

La guida pratica alla scrittura di annunci di lavoro per professionisti IT

 
Sei un recruiter, può capitare che quando si inizia una ricerca ti venga data una lista della spesa 📋. Ti viene fornita una seniority molto indicativa del tipo “boh vediamoli tutti a colloquio e poi scegliamo“ 🤷‍♂️. Le soft skill? Massì dai, mettiamole tutte 🤷‍♀️. Abbondiamo! 🙌
 
Con il (lento ma inesorabile) miglioramento del mercato del lavoro anche in Italia, sempre più professionisti evitano di candidarsi per ruoli dove l’annuncio di lavoro non è specificato nella maniera corretta e/o non contiene le informazioni che davvero interessano al candidato 🤦‍♀️. La situazione diventa ancora più grave nel caso di figure con una seniority molto alta 🤯.
 
Per questo motivo abbiamo deciso di scrivere questo vademecum 📚. All’interno troverai alcuni concetti che i professionisti del mondo IT conoscono bene ma che sembrano magia nera a tutti i comuni mortali 🧙‍♂️.

Prima di iniziare

Anche se vogliamo evitarti gli errori più comuni, la nostra raccomandazione è di far fare una revisione dell’annuncio a una figura tecnica prima della pubblicazione.
In questo modo potrai ricevere consigli su come rendere più appetibile l’annuncio e/o sulla correzione di errori banali.

Gli errori più comuni

Evita la “lista della spesa”

notion image
 
Solitamente su un progetto le tecnologie principali con cui si lavora sono 2/3. Se nei must have leggo più di 3 tecnologie è già una red flag.
Esempio:
  • Angular
  • React
  • Nodejs
  • Docker
  • Kubernetes
  • AWS
  • HTML
  • CSS
  • Javascript
  • Java
 
Ecco un esempio corretto:
  • React
  • Nodejs
  • GraphQL
Essendo React una libreria frontend, viene nel 100% dei casi utilizzata con HTML (non proprio ma stiamo semplificando), CSS e Javascript. Si possono aggiungere nell’annuncio per ridondanza, non è un problema. Ma è importante sapere che la conoscenza di React ha come requisito la conoscenza pregressa di HTML, CSS, Javascript.
 
Nei “must have” bisogna inserire solo le tecnologie cardine del progetto. Per questo motivo al posto di chiedere “mi elenchi gli strumenti che usate?” è meglio chiedere “quali sono le 2/3 tecnologie su cui lavorate l’80% del tempo?” e poi “Bene, ora mi fai una lista degli altri strumenti?”. La lista degli altri strumenti la si mette nei nice-to-have.
 
Da candidato non mi candiderei mai per un lavoro se nei must have è presente Java (nel caso in cui io non sia uno sviluppatore Java). Vederlo nei nice-to-have mi rassicura e mi fa pensare che magari nel progetto ci sono pezzi di codice legacy a cui andranno fatte modifiche minime o nessuna modifica in generale.
 
Che faccio se mi faccio inviare le tecnologie richieste dal team tecnico e mi mandano la “lista della spesa”?
Alla domanda “Quali tecnologie si usano su questo progetto?” anche io farei una lista della spesa con decine di tecnologie. Il trucco è farsi mandare la lista ordinata per priorità e magari si può chiedere al team tecnico di assegnare un punteggio rispetto a quando è importante quella tecnologia su quel progetto.
 
In questo modo, partendo dalla lista della spesa fornita si riesce a scrivere un articolo dove le cose importanti sono già chiare.
 

Attenzione ai nomi simili

Anche se “Java” è simile a “Javascript” e “Spring” è simile a “Spring Boot” sono cose differenti.
Gli informatici non sono persone particolarmente creative, con i nomi facciamo un po’ di casini ogni tanto…
 
Assicurati sempre di scrivere le tecnologie corrette. Un errore di questo genere potrebbe farti perdere ottimi candidati
 

Attenzione agli errori nel naming

Ogni volta che in un annuncio viene scritto “Java script” oppure “GIT Lab” un software engineer si converte e va a coltivare patate negli altopiani in Perù.
Gli sviluppatori sentono dolore fisico nel leggere nomi di tool/processi scritti in maniera del tutto errata.
Al contempo alcuni shorthand sono comunque validi, ad esempio si può scrivere “Node” per indicare “Nodejs”
 

Strumenti diversi richiedono conoscenze diverse

In alcuni casi negli annunci si trovano frasi del tipo “Conoscenza di almeno uno dei maggiori cloud provider: AWS, GCP, Azure”.
Sebbene questi Cloud provider risolvono gli stessi problemi, funzionano in maniera differente ed è necessario che il professionista conosca bene lo strumento per utilizzarlo al meglio.
Quando vedi una richiesta del genere prova ad indagare con chi ti ha fornito i requisiti. Magari basta anche solo una “Conoscenza teorica delle basi del cloud computing e dei sistemi distribuiti”.
 

Gli anni di esperienza sono importanti!

notion image
 
L’ideale all’interno di un annuncio è inserire gli anni d’esperienza richiesti sulla base della mansione, non della tecnologia in sè. Ad esempio:
  • Cerchiamo un frontend developer con almeno 3 anni di esperienza che ha queste conoscenze…
è molto meglio rispetto a:
  • 2 anni di esperienza con HTML
  • 2 anni di esperienza con CSS
  • 3 anni di esperienza con Javascript
 
Allo stesso tempo è importante ricordarsi che la relazione anni di esperienza = livello di competenze non è sempre vero. Ovviamente esiste una relazione tra le due cose, ma potresti perdere l’opportunità di intervistare ottimi candidati se esageri con l’esperienza teorica richiesta.
 

Tecnologia per babbani

In questo paragrafo faremo una lista delle tecnologie più famose e le descriveremo in una singola riga per darti un’infarinatura generale.
 
💡
Sei un addetto ai lavori? Leggere queste descrizioni ti farà probabilmente venire un infarto. Stiamo semplificando all’osso per i nostri cari amici recruiter. Non vogliateci male. Del resto facciamo i programmatori, siamo abituati a soffrire leggendo inesattezze 🥲
 
notion image
 
  • Backend: Il codice dove risiede la logica dell’applicazione. Il backend si connette ai database e comunica con frontend attravero delle API (REST, SOAP o GraphQL)
  • Frontend: le interfacce con cui l’utente interagisce. Le pagine web che l’utente può vedere e/o le app con cui si interfaccia.
  • Java: Un linguaggio di programmazione, ci si possono fare app Android e backend
    • Spring: uno dei framework (un framework è un'architettura logica di supporto, costruita “sopra” un linguaggio di programmazione per facilitarne l’utilizzo) più utilizzati nell’ambito backend. Attenti a specificare però, se dite soltanto “Spring” manca un suffisso. Altre keyword correlate: Spring MVC / Spring Boot
  • Javascript: Un linguaggio di programmazione nato in ambito frontend ma molto versatile
    • React: Una libreria per creare pagine web
    • Angular: Un framework per creare pagine web
    • Vue: Un framework per creare pagine web
    • Nodejs: L’ambiente che permette di creare applicazioni backend con Javascript
      • Express: Un framework per creare web server (backend) con node
  • HTML: Un linguaggio di markup che serve a definire gli elementi in una pagina (ad esempio la presenza di un bottone e un titolo)
  • CSS: Consente di aggiungere stile agli elementi HTML, ad esempio il colore di un pulsante o la grandezza del titolo
  • Docker: Serve per creare delle scatole virtuali dove far girare il codice. Queste scatole possono essere poi trasportate facilmente su altri computer
  • Kubernetes (K8s): Gestisce tanti container per lavorare insieme
  • Cloud provider: un fornitore di servizi in cloud. I servizi sono molto variegati e spaziano dai database, alla connettività, allo storage, alle macchine virtuali
    • AWS (Amazon Web Services): Il cloud provider di Amazon
    • GCP (Google Cloud Platform): Il cloud provider di Google
    • Azure: Il cloud provider di Microsoft
  • Python: Un linguaggio di programmazione usato spesso per l’analisi dei dati e il machine learning. Si può utilizzare anche per creare applicazioni web
    • Django: Un framework per realizzare applicazioni web
  • PHP: Un linguaggio di programmazione utilizzato principalmente per realizzare backend
    • Laravel: Un framework basato su PHP per realizzare applicazioni web
  • API: Un modo di comunicare tra frontend, backend oppure tra diversi servizi backend
    • REST
    • GraphQL
    • SOAP
  • Database: Un luogo dove salvare informazioni
    • Relazionali: Si basano su relazioni tra diverse entità
      • SQL (Structured Query Language): Il linguaggio usato per chiedere qualcosa a un database relazionale
    • Non relazionali: Database non basati su relazioni ma su documenti
      • MongoDB: Uno dei database non relazionali più utilizzati
  • Mobile
    • Swift: Un linguaggio di programmazione per realizzare app iOS
    • Kotlin: Un linguaggio che può essere utilizzato per realizzare app Android (anche Java può essere utilizzato per realizzare app Android)
    • React Native: La versione di React che consente di creare app ibride per Android e iOS
    • Flutter: Un framework per realizzare app ibride per Android e iOS
  • Blockchain: Un registro distribuito dove non si possono cancellare i dati che si inseriscono
    • Solidity: Un linguaggio per programmare “smart contract”, ovvero programmi che usano la blockchain
  • Versioning: un sistema per avere traccia delle modifiche nel codice col passare del tempo
    • Git: Lo standard de facto per il versioning odierno
    • SVN: Uno strumento di versioning molto utilizzato fino a circa 10 anni fa, ancora utilizzato su progetti legacy
    • Github: Un servizio che consente di salvare il proprio codice presente in git sul cloud per poter collaborare con altre persone
    • Gitlab: un competitor di Github
    •  
      Ti è piaciuta questa lista della spesa? Sappi che se metti tutte queste cose in un solo annuncio ti vengo a cercare 😀
       

      Ma sti programmatori rompiscatole… che vogliono davvero?

      Ecco una lista minimale di tutte le cose che uno sviluppatore vorrebbe trovare all’interno dell’annuncio di lavoro!
      notion image

      Career path

      All’interno dell’azienda c’è un percorso di crescita strutturato? Se si, come funziona? Ci sono delle performance review? Come si tiene traccia dell’impatto che lo sviluppatore apporta all’azienda con il proprio lavoro?
       
      Come funzionano le promozioni? Bisogna candidarsi? Il proprio manager può fare da sponsor per andare a promozione? Ci sono delle ladder prestabilite?
      Il fatto che il processo sia più grezzo rispetto a un processo più strutturato non è un problema, basta saperlo prima.
       

      Benefit aziendali

      Mettiamolo in chiaro: pc aziendale, smartphone aziendale, acqua e caffè in ufficio NON sono benefit. Sono strumenti necessari al lavoratore per svolgere il proprio lavoro.
       
      Ecco alcuni benefit molto apprezzati:
    • Training budget
    • Possibilità di certificarsi
    • Abbonamenti a servizi di fitness
    • Buoni pasto
    • Assicurazione sanitaria
    •  

      Full-remote | Hybrid | On-site - Come orientarsi?

      Telelavoro e smart working sono due cose completamente distinte. I professionisti del settore dovrebbero conoscere la differenza eppure fin troppo spesso “smart working” viene utilizzato in maniera inappropriata.
       
      Diamo una definizione una volta per tutte: “Lo smart working è quella modalità di lavoro dove il lavoratore ha il completo controllo sul proprio metodo di lavoro. Può scegliere quando eseguirlo, come e dove. L’importante non è il mezzo o il processo che viene utilizzato ma l’outcome.”
       
      Questo vuol dire che non si timbra il cartellino, non si lavora 9/18 e soprattutto non ci si aspetta una risposta in mezzo secondo a una mail. Ovviamente sono previsti momenti di allineamento con il team e (per coordinarsi) è buona norma avere sul proprio calendar quando si sta lavorando e quando si è off così che i colleghi possano vedere quando poter inviare un messaggio e/o fissare una call.
       

      L’ambiente lavorativo

      “Un ambiente lavorativo giovane e stimolante”: quante volte l’abbiamo sentito scritto in un annuncio? Quante volte non sono stati portati esempi e spiegazioni del perchè dovrebbe essere “giovane e stimolante”?
       
      Stimolante vuol dire che ci sono deadline impossibili? Giovane è perchè si prendono solo ragazzi appena usciti dall’università per pagarli poco?
       
      Per quanto riguarda le metodologie di lavoro: i progetti vengono realizzati in Agile? Waterfall? Anche in questo caso, non c’è una risposta unica. Spesso le commesse “a corpo” si realizzano in Waterfall e non ha senso pensare di applicare Agile in questi contesti.
      Anche in questo caso l’importante è saperlo prima ed essere trasparenti. In azienda si utilizzano più approcci dipendentemente dal progetto? Perfetto, l’importante è scriverlo chiaramente.
       
      Quali e quanti sono i momenti di confronto con i propri superiori? Ci sono meeting 1:1 a cadenza regolare? Come funziona la comunicazione con il proprio manager?
       
      Anche se probabilmente possono sembrare informazioni non pertinenti al 100% con l’annuncio di lavoro, queste informazioni dicono davvero molto su come lavora l’azienda e quali sono i valori aziendali.
       

      E la RAL?

      Tranquilli cari amici recruiter, non vi facciamo il pippone sulla RAL. Sappiamo che spesso sono rotture di scatole anche per voi… Però il meme lo lascio comunque. Se fate un po’ di pressione sull’azienda per pubblicare la fascia di RAL disponibile avrete sicuramente application di qualità maggiore con gente più in target, e risulterete più simpatici a noi sviluppatori 😃
       
      notion image

      What’s next?

      Speriamo che con questo breve articolo siamo riusciti ad aiutarti a capire cosa vorrebbero gli sviluppatori. Se vuoi aggiungere qualcosa a questo articolo, farci domande oppure mandarci a quel paese perchè “Eh siete voi che volete troppo bla bla bla bla” contattateci in privato, saremo felici di chiacchierare!