C’è una cosa che mi frulla in testa da tanto tempo, ed è tracciare la definizione del “Programmatore Ideale”, quello che tutti vorrebbero come collega e/o come dipendente.
In questi giorni (mesi) anche noi, come tante altre Aziende, stiamo cercando di stilare una lista di caratteristiche che possano definire questa figura, purtroppo, secondo il mio modesto parere, con scarso successo.
Personalmente amo definirmi un “Geek Zoppo”, poiché nutro una passione sfrenata per la tecnologia (in particolare per il software) con poco (pochissimo) tempo (una moglie, un figlio di 9 mesi ed un lavoro particolarmente impegnativo ne assorbono a dismisura...) per studiarla.
Non mi sono mai posto limiti e il desiderio di imparare e sperimentare cose nuove mi ha sempre spinto a cercare e studiare alle ore più impensabili del giorno e della notte. Forse è questo l’aspetto che più mi differenzia dai miei colleghi. E forse è proprio per questo che ci siamo trovati in così forte disaccordo nella realizzazione di queste schede.
In pratica si tratta di redarre una scheda suddivisa in sezioni. All’interno di ogni sezione compaiono “n” voci, per ognuna delle quali devono essere assegnati due punteggi (in una scala da 0 a 9) :
· Livello Richiesto
· Livello Posseduto
Il punteggio “richiesto” è il livello di confidenza che l’Azienda vorrebbe che i dipendenti avessero della voce in oggetto. Il punteggio “posseduto” è ciò che l’individuo possiede effettivamente. Qui bisognerebbe aprire una parentesi sulla valutazione poiché, mi chiedo, chi sarà mai in grado di valutarmi sulle tecnologie che conosco solo io in Azienda ? (Un esempio triste ? XML e XSLT : l’abbiamo usato abbondantemente per un paio di applicazioni, ma io sono l’unico – giuro – che lo conosce...).
Questa non deve essere vista come una pura e semplice valutazione del singol, piuttosto deve essere considerata come un’indagine aziendale, attraverso la quale si può arrivare all’ottimizzazione delle risorse, tramite cambiamenti di mansione e/o corsi di formazione (anche se, onestamente, non credo che l’Azienda presso cui lavoro punterà a tanto...).
Il nocciolo della questione, ovvero il seme della discordia, è : quali voci inserire nella sezione “Conoscenze Specialistiche” ?
Dal mio punto di vista, strettamente tecnico, ho pensato alle seguenti :
1) Propensione all’evoluzione tecnologica – Se dovessi trovare un sinonimo penserei a “quanto sei Geek in una scala da 0 a 9 ?”. Oggettivamente, non saprei che farmene di un ottimo programmatore fermo ai concetti del COBOL con nessuna propensione all’evoluzione (tecnologica) personale.
2) Linguaggi conosciuti – Ovviamente con dettaglio degli stessi (ad esclusione di quelli “morti” che tutti abbiamo usato in passato – p.e. BASIC). Non tanto per fare una gara adolescenziale “a chi ne conosce di più”, quanto piuttosto per sapere quali sono le effettive conoscenze che rappresentano il patrimonio dell’Azienda.
3) Conoscenza della Lingua Inglese – Sembra una banalità, ma Vi garantisco che non lo è...
4) Database conosciuti – A meno che non ci si voglia limitare a scrivere “Hello, World!” in tutti i linguaggi possibili ed immaginabili, la conoscenza, più o meno approfondita, di almeno un DB è importantissima. La mia esperienza diretta mia ha portato a conoscere sia Oracle che SQLServer, entrambi dal punto di vista delle interrogazioni SQL come da quello della programmazione “avanzata” (Triggers e Procedures in PL/SQL e/o TSQL). Non da meno è la conoscenza dei concetti che stanno alla base di un DB relazionale.
5) Sistemi Operativi – La conoscenza dei sistemi su cui girano i nostri applicativi non dovrebbe essere prerogativa della sola area sistemistica di un’Azienda. Il “sapersi muovere” agilmente (copia di files, creazione di directories, navigazione della rete, utilizzo di FTP/Telnet, etc...) dovrebbe essere una caratteristica comune a tutti. Invece, e questo è solo un esempio, il Registro Eventi (Event Viewer) di Windows, sembra essere un’applicazione sconosciuta, che un programma tore non ha bisogno di conoscere !!!!!!
Queste sono alcune caratteristiche che, personalmente, cercherei in un programmatore. E’ forse pretendere troppo ? Secondo molti miei colleghi, si !
Forse è una questione di carattere o forse, molto più banalmente, è una questione di passione. Chissà. Resta il fatto che questo confronto “interno” mi ha pietrificato (per carità, non è successo nulla che non sospettassi ampiamente, ma sono comunque rimasto basito).
Concludendo, visto che il Blog è principalmente terra di confronto, ho ritenuto interessante condividere questi pensieri con la community. Magari, qualcuno di Voi è già stato sottoposto a questo genere di valutazione o se ne è interessato... Che dite ? Sono “allineato e coperto”, oppure hanno ragione i miei colleghi, che tendono a tracciare un profilo più basso ?