Chi è il programmatore oggi? Cosa fa? Che stipendio ha?

A leggere le guide ufficiali sui percorsiprofessionali sembra che la figura dell’informaticopossa trovare impiego pressoché ovunque. Come perl’algebra dei polli inaugurata da Trilussa - che renderagione delle disparità, ma non spiega alla fine chiè il ricco opulento che riporta in media i poveriaffamati – non è del tutto chiaro peròchi (o che cosa) mantenga in vita queste rosee prospettive dilavoro, se la visione ottimistica intrinseca nei processi diinnovazione o il reale valore di figure professionali chesoltanto quaranta anni fa non comparivano neppure nelvocabolario. Proviamo a fare un esercizio, sullo stile diquanto Pietro Izzo ha fatto quest’estate su questo sitocon la Wayback Machine, ma parliamo di professioni,anzi di quella che per eccellenza mette a nudol’informatica: l’attività delprogrammatore. È un mestiere per tutti? Ècambiato negli ultimi anni e come?


 

Tre cose tre

A parte la dinamica di importazione ed esportazione da everso mercati del lavoro meno maturi sotto il profilo delletutele retributive di quello europeo, che riguarda piùil costo del lavoro che le competenze vere e proprie,l’attività del programmatore sembra seguireun’evoluzione a geometria variabile. Mentre siconsolida il cuore dell’attività, sono le areedi margine a mostrare significative variazioni. Da una partela specializzazione verticale diventa una competenzaaggiuntiva per i professional, dall’altra entra nelladefinizione di “programmatore” anche ilcosiddetto power user, l’utente evoluto che magari sirapporta a determinati linguaggi per migliorare contenuti eservizi di cui è diretto responsabile.

Andiamo con ordine e accettiamo qualche spunto diriflessione. «Il mestiere delprogrammatore», sostiene Fabio Santini, diMicrosoft Italia, per anni software evangelist del gruppo diBill Gates in Italia «ha tre elementi tecniciimprescindibili: linguaggio, librerie e ambienti disviluppo». Nel corso degli anni le cose sononotevolmente cambiate in materia di linguaggi e si èpassati a una tipologia di semantica che include i cosiddettioggetti di programmazione. L’uso della logica,ovviamente, non è venuto meno. In questo senso, comeprecisa Giovanni Capone, engagement manager di Rad Hat«pochissimi mettono mano ancora a Fortran oall’Assembler, ma nonostante questo un programmatore fale stesse cose che faceva dieci anni fa. Si è alzatoinvece il livello d’ingresso, soprattutto rispetto aquanto è connesso a problematiche associateall’hardware».


 

Hello (new) world!

Il secondo e il terzo gradino della conoscenza, invece,legati a librerie e alla padronanza degli ambienti disviluppo, hanno assunto una dinamica incrementale, cheavvantaggia molto i professionisti. Grazie al lavoro dellesocietà di sviluppo software da una parte e allavolontà delle community che contribuisconoall’evoluzione delle pratiche open sourcedall’altra, la disponibilità di framework elibrerie è sempre più ampia. I tool di svilupposono giunti a una vera nuova generazione, consegnando questavolta sì alla storia strumenti al tempo rivoluzionaricome il leggendario compilatore di linguaggio C creato daRichard Stallman. L’esplosione di Internet ha resodecisamente più efficace la “programmazionecollaborativa” e la creazione di archivi di buonepratiche o soluzioni minori. «Lo sviluppatore oggiè di gran lunga facilitato nella suaattività», sostiene Capone. A lui fa ecoSantini: «La possibilità di replicareautomaticamente routine ripetitive, la presenza di componentivisuali che facilitano la definizione di aspetti diinterfaccia, la colorazione automatica dello script esoprattutto le funzioni definite ‘intellisense’,che completano parti mancanti o suggeriscono metodi esintassi durante la scrittura, presenti oramai in tutti glieditor, hanno cambiato la vita ai programmatori».


 

Programmare in Excel?

Visual Studio .NET, Eclipse per lo sviluppo in Java e i lorofratelli minori hanno una marcia in più rispetto alpassato. Là dove si devono ottenere elementi visualinessuno più scrive codice a mano. È una realeperdita di conoscenza? «No, in realtà oggi cisono molte più cose da fare e si guarda soprattuttoalla produttività del programmatore»,sostiene Santini. Questa “semplificazione” ha poiuna interessante deriva verso il basso, ovvero in direzionedell’utente stesso degli applicativi. Così laspiega Santini: «Se si pensa alla programmazionecome all’insieme dei tre elementi, linguaggio, libreriee ambiente di sviluppo, anche un traduttore che conoscel’inglese, usa un vocabolario e sfrutta Word potrebbe,in senso logico, essere definito un"programmatore". Se però limitiamo laqualifica soltanto a chi opera nel contesto della produzionedi applicazioni software dove dobbiamo fermarci? Oggi chidefinisce una macro in Excel è un programmatore? Iocredo di sì, a livello semiprofessionale, certo, ma insenso allargato la programmazione oggi si è estesaalla definizione personalizzata di nuove routine applicativein ogni contesto». Una versione cibernetica dellalogica trilussiana, insomma.

È ovvio però che questa tipologia diprogrammatore non sarà mai definita tale secondo uncontratto di lavoro. Potrà soltanto mettere questacapacità a servizio di altre mansioni, una cosa da nonsottovalutare (in termini retributivi, per esempio) e cheventi anni fa era del tutto impensabilenell’informatica o nelle altre professioni. Non sichiedeva cioè al giornalista di conoscerel’Html, al revisore contabile di saper creare una macroo al grafico pubblicitario di definire dei fogli di stile.


 

Lo sviluppo verticale

Rimanendo nel mondo dei professional è vero anche chenegli anni è diventato più facile passare da unambiente all’altro. «Il progresso dellaconoscenza ha aumentato anche la flessibilità dellavoro del programmatore che oggi ha modo di spostarsi conmaggiore facilità», dichiara Capone.È invece sul fronte delle competenze di mercato che sigioca la sfida per gli esperti di informatica. «Lavera creazione di conoscenza è nelle trame stesse delmercato in cui si applica la programmazione. Il vero tris dicompetenze, infatti, comprende certo un linguaggio el’ambiente di sviluppo, ma come terzo polo il mercatodi riferimento». La fortuna professionale edisponibilità di lavoro o, al contrario, lapossibilità stessa di trovarsi su percorsi chiusi dicarriera, dipendono proprio da quale settore si decide diservire.

Questo allargamento di orizzonti trova conferma, per esempio,nelle definizioni dei profili professionali avanzati da Aica, per ilquale il software developer ricopre un«considerevole ruolo tecnico nel design dei sistemiinformativi e nella creazione di servizi con precisespecifiche funzionali». Il programmatore èinformato cioè su metodi, strumenti e standardinformatici e identifica in ognuno di essi vantaggi esvantaggi per la realizzazione di prodotti conformi allenecessità, che siano efficienti, sicuri, economici. Siconfronta cioè con un ambiente in cui l’economiadello sviluppo ha un peso pari alle stesse specifichefunzionali da realizzare. Il programmatore cura cioèl’intero ciclo di vita del software nel contesto in cuitrova forma. Dall’analisi al design, dalla costruzioneal test, dall’implementazione alla migrazione emanutenzione nel tempo: ogni cosa avviene sempre in relazioneal mondo produttivo in cui viene impiegato. Quando ha un buonlivello di seniority il programmatore guida anche unteam di sviluppo.


 

La terza generazione

La grande novità degli ultimi anni nello sviluppo delsoftware, giunto oramai alla cosiddetta terza generazione(che dalla modellazione “strutturata” èpassato alla programmazione “a oggetti”, finoalla recentissima evoluzione verso la programmazioneorientata ai servizi per il business), èl’immersione quasi totale nel settore di riferimento.La finanza non è l’automotive, letelecomunicazioni non sono la grande distribuzione. Questaconnotazione della programmazione anni fa non esisteva. Oggiun programmatore non solo crea applicazioni, ma compone veree proprie soluzioni di business, mettendo insieme i pezzi diquesti processi. La tecnologia ha innalzato cioè ilsuo livello di intervento, non più legato al purosviluppo di codice, ma finalizzato a creare servizi, compostida blocchi di software già programmati e spessoahimè concordati in un sistema molto stretto dilobbing tra poteri forti di settori diversi.

Organizzare, pianificare, personalizzare e avere le giusteintuizioni legate al risultato in termini di servizio erogatosono le nuove competenze richieste da questo tipo diapproccio informatico. Così come la conoscenza diprocessi di business specifici. Sono indispensabili quanto laconoscenza di un sistema operativo, delle regole di sviluppo,dei singoli linguaggi o dei principi di software engineering.Queste capacità sono richieste per lavorare.Soprattutto dalle grandi imprese o dalle aziende partner dimultinazionali che distribuiscono le loro soluzioni sulterritorio. In futuro, saranno sempre più illasciapassare per una professione che inventa sempre meno(affidandosi alle intuizioni e agli sviluppi dei grandicentri di ricerca delle multinazionali del software) e chespesso si deve accontentare di qualche mezzo pollo, in salsaVisual Basic, Java o Php.

---------------------

DarioBanfi, 35 anni, è giornalista professionista efreelance. Appassionato di tecnologia e Web, èspecializzato in Ict business e consumer, mercato del lavoroe pubblica amministrazione. È collaboratore del Sole24 Ore-Job 24 e da anni scrive per periodici e pubblicazionidi editoria specializzata. Consulente editoriale enell´ambito della comunicazione d´impresa, halavorato per società di relazioni pubbliche, grandisocietà del settore informatico, operatoriistituzionali e privati attivi nel mercato del lavoro e nellaconsulenza direzionale d´impresa. Laureato infilosofia, è stato content writer e project managerper agenzie italiane di new media. Per Apogeo ha pubblicatoLiberiprofessionisti digitali.