Per tutti quelli che sono arrivati su questa pagina voglio spiegare in che cosa consiste il lavoro di programmatore software ed in particolare all´interno del contesto lavorativo nazionale dello stato in cui vivo, cioè l´Italia.
Per prima cosa inizierò spiegando in che cosa consiste l´attività di analista programmatore software.
L´analista programmatore software è colui che con le sue conoscenze riesce ad elaborare L´ analisi e la creazione di programmi software o parte di essi. I programmi che realizza possono variare su qualsiasi argomento e possono coinvolgere sistemi software di vario tipo (diversi sistemi operativi, diversi contesti, diversi argomenti).
Facciamo un esempio pratico, l´impresa edile X mi chiede di realizzare un programma per la gestione dei cantieri edili, oppure l´azienda Y mi può richiedere di creare un programma di e-commerce per la vendita dei loro prodotti online e così via.
Come realizza il programma il nostro programmatore? Tramite strumenti informatici (programmi che servono a generare programmi) che si interfacciano con il programmatore tramite linguaggi di programmazione strutturati (simili al linguaggio naturale ma sempre con idiomi in lingua inglese).
Ogni linguaggio e strumento è specifico per la creazione di parte del programma, che è diviso in più parti.
Il programmatore deve conoscere come costruire le varie parti di un programma, i vari strumenti per la creazione delle parti, i vari linguaggi di programmazione per ogni parte e alla fine assemblare i vari pezzi per creare e mettere in piedi il programma.
Le varie fasi di realizzazione vengono descritte nell´analisi in cui si associa anche una stima delle ore di lavoro per ogni parte. Alla fine si conteggiano le ore totali per avere una stima di massima del costo del programma.
Questo è il lavoro di un analista programmatore Full-stack, cioè un programmatore completo che è capace di creare un programma completo in tutte le sue parti.
I programmatori invece che sono specializzati solo sulla parte di programma di interfaccia utente (tutto ciò che l´utente vede a video, con cui interagisce) sono chiamati programmatori Front-end, i programmatori specializzati solo sulla parte relativa al motore ed intelligenza e gestione dati di un programma sono chiamati
programmatori Back-end.
Quindi quali sono le conoscenze che deve avere un programmatore?
Deve essere portato all´analisi metodologica, deve essere molto capace in analisi logica, deve avere medie capacità matematiche, deve avere una buona base di sintassi e conoscere discretamente la lingua inglese, imparare bene almeno due o tre linguaggi di programmazione ed almeno due o più tools di sviluppo software.
Per acquisire queste conoscenze ci vogliono alcuni elementi: studio approfondito dell´argomento per molte ore e praticare lo studio, grande passione, voglia di imparare sempre giorno dopo giorno, senso pratico e soprattutto molta pazienza e perseveranza.
Pazienza perché le conoscenze di un programmatore sono frutto di anni di studio e pratica, un buon programmatore potrebbe essere tale con 5/10 anni di studi ed almeno 2 o 3 anni di pratica, un buon programmatore full-stack con almeno 5 anni di pratica.
Esempio pratico di cosa crea un programmatore full-stack per chi è un neofita:
qualche anno addietro ho creato un portale web interattivo per un gestore di impianti sportivi.
Ho scritto l´analisi in cui ho inserito le immagini delle videate di come dovrebbero essere strutturate le pagine del portale di tutta la parte visibile agli utenti e della parte a disposizione degli amministratori per la gestione dell´ inserimento dei contenuti sia per quanto riguarda aggiunta menu, nuove pagine, nuove parti del portale
ecc.....
Dopo l´analisi ho iniziato a creare la parte denominata back-end cioè ho creato la struttura in cui memorizzare tutti i dati ed il motore o l´intelligenza dello stesso, tutti i vari flussi per la creazione delle pagine ecc..... Infine ho creato la parte denominata di front-end cioè tutta la parte relativa all´interazione dell´ utente e dell´ amministratore.
Per creare il tutto ho utilizzato 4 linguaggi di programmazione diversi (C#, Transact SQL, Javascript e Html) e 4 tools di sviluppo diversi.
Essendo da solo ho impattato 2 anni di lavoro a tempo perso ( 3/4 ore la settimana).
Adesso che avete più o meno capito cosa fa un programmatore vi posso fare una domanda? Ritenete che questo lavoro sia semplice?
Se non sapete dare una risposta ve la dò io, no, non è una lavoro semplice, è complicato. Non per niente nella maggior parte dei casi il programmatore è visto solamente come una persona che non si capisce cosa faccia di lavoro, se non perdere tempo pigiando tasti a caso sulla tastiera, semplicemente è una questione di ignoranza, di mancata conoscenza di come sia articolato questo mestiere.
Come può essere inquadrato? Semplice, il programmatore è un artigiano, un artigiano che al posto
di creare qualcosa di solido come una barca, un serramento, un muro, costruisce qualcosa di elettronico, qualcosa che sta all´ interno di un computer.
Ma andiamo a vedere come questo lavoro è gestito e come sono considerati i lavoratori dell´ informatica in Itaglia.
Il mercato dell´informatica in Italia viene generato dai grandi e medi players economici, cioè i grandi gruppi finanziari, assicurativi, industriali e dallo stato.
Questi players hanno anche monopolizzato il mercato dell´informatica avendo costituito loro stessi delle grosse major dell´ informatica, mi viene in mente Engineering grosso gruppo informatico del gruppo FCA, Reply ed altre ditte di consulenza informatica a livello globale quali Accenture, Altan, Altran ecc....
I grossi gruppi industriali e lo stato appaltano i loro progetti informatici a questi grossi gruppi di consulenza informatica, preventivano un budget per ogni progetto da sviluppare e lo mettono a gara in bando che viene vinto casualmente da questi grandi gruppi.
A questo punto questo gruppo dopo aver vinto il bando si appoggia ai loro fornitori per il reperimento della manodopera (noi informatici) per procedere con lo sviluppo, di solito piccole ditte che fanno parte di quell´ universo del 95% delle realtà micro con meno di dieci dipendenti su cui si appoggia economicamente l´Italia.
Spesso il subappalto consta di più sotto appaltatori. A me è capitato in passato di lavorare per la ditta 1 che mi aveva venduto alla ditta 2 che mi aveva venduto alla ditta 3 che mi aveva messo a lavorare su un progetto appaltato della ditta 4. Sembra una barzelletta ma queste sono situazioni normalissime.
Quindi il mercato della manodopera degli informatici è gestito come il mercato della manodopera precaria in mano alle società cooperative.
Vediamo come un ragazzo di 25 anni fresco di laurea magistrale in informatica e con qualche mese di esperienza viene inquadrato nel mondo del lavoro.
Viene contattato dalla ditta X che ha avuto il nominativo dall´ università.
Va al colloquio e sicuramente gli ofriranno: contratto a tempo deteminato di un anno, stipendio come apprendista da 900 a massimo 1250 al mese netto, lavoro sempre in sede (deve impratichirsi e lo può fare solo in sede), pc aziendale (che nel 90% dei casi è una ciofeca assurda e quindi è obbligato ad utilizzare il suo personale).
Praticamente pagato peggio di un operaio e con condizioni contrattuali anche peggiori. Ma si deve ritenere fortunato se è maschio, se fosse femmina prima ti fanno il terzo grado chiedendoti se sei fidanzata/convivente/sposata e più che tutto se hai intenzione di avere figli (infatti solo il 4% degli informatici è femmina, ma più avanti vedremo meglio il perchè).
Una volta assunto il nostro baldo giovane ha due strade: viene mandato in consulenza su un progetto di quelli subappaltati da un grande gruppo informatico oppure se è più fortunato lavorerà su uno sviluppo di un progetto interno.
Nel caso di lavoro su progetto in subbalpalto dopo il primo mese di lavoro il subbalpaltatore chiederà al nostro ragazzo la disponibilità di ore straordinarie la sera e nel weekend.
Il ragazzo non si rifiuterà perchè è volenteroso non sapendo che da apprendista non può svolgere ore straordinarie.
Dopo il primo mese in cui avrà lavorato extratime (ore straordinarie) e non gli saranno riconosciute comincerà a capire come funzionano le cose nell´ ambiente informatico. Se si rifiuta essendo in prova lo possono licenziare (in realtà lo possono licenziare lo stesso visto che sono tutte ditte a scatole cinesi con pochi dipendenti per poter licenziare facile).
Se invece dovesse essere inserito su un progetto interno già avviato andrà incontro alle stesse difficoltà che si hanno a lavorare su progetti creati e gestiti in Itaglia quindi non avrà formazione sul progetto, non avrà documentazione poichè la documentazione costa tempo e quindi non viene mai creata, non potrà vagliare l´analisi poichè è stata creata solo verbalmente, gli saranno date delle tempistiche per le eventuali modifiche scritte da un commerciale oppure
da una persona che non ne ha le capacità, per capire come funziona il programma dovrà eseguire il debug del codice sorgente riga per riga e prendere appunti poichè il codice sorgente è sicuramente un´accozzaglia scritta da tanti consulenti diversi che si sono accavallati negli anni con nessuno di loro che scriveva righe di commento al codice.
Quindi sicuramente sforerà con le ore di lavoro preventivate e dovrà fare delle ore extratime (non pagate perchè è apprendista) per poter rientrare nelle ore di lavoro preventivate. Lo stesso discorso fatto prima per quanto riguarda il fatto di non fare le ore extratime, licenziamento.
La stessa fine avrebbe fatto nel caso fosse stato mandato su un progetto già esistente in consulenza.
Se avesse avuto la partita iva sarebbe stato ancora peggio. Se vai su un progetto per una ditta subbalpatrice non solo non ti pagano gli extratime ma neppure le fatture degli ultimi due mesi di lavoro. Nella mia carriera di libero professionista mi è capitato, non era la pratica corrente ma neppure l´eccezione,
sia a me che a miei colleghi con la partita iva. Sono riuscito a recuperare parte dei crediti una settimana prima di andare davanti al giudice dopo svariati mesi.
Quindi il nostro giovane laureato che alternative ha? Se lo mandano in consulenza quando finisce il progetto esiste il rischio di una difficile ricollocazione e quindi rischia sempre il licenziamento. Fortuna che di progetti in consulenza ne esistono molti e quindi può essere riassunto entro poco tempo da un´altra ditta appaltatrice per poter essere licenziato alla fine di quest´altro progetto.
Le femmine invece visto che non si possono permettere degli extratime se hanno famiglia, o non vengono assunte oppure vengono costrette a licenziarsi o per non cadere malate si licenziano.
Non per niente sugli annunci di ricerca di programmatori a volte è scritto ´si richiede resistenza allo stress, proattività (che se guardi il dizionario vuol dire preveggenza), possibilità di trasferte e lavori straordinari. Se non c´è scritto tutto questo nell´ annuncio è sicuramente implicito.
Quindi in Itaglia fare il programmatore è sinonimo di: sfruttamento, stress, precarietà, fame, schiavismo, vita d´inferno.
Fino a 15-20 anni addietro se dicevi che facevi il programmatore tutti ti dicevano: FICO!! Adesso ti guardano e ti dicono che sei uno gran sfigato.
D´altro canto le statistiche di settore parlano chiaro.
Fino a prima della pandemia le iscrizioni alla facoltà di informatica risultavano crollate (-24%), 66 mila programmatori fuggiti all´ estero negli ultimi 4 anni, Milano città peggiore al mondo dove svolgere questa attività (e nella statistica non hanno inserito Torino altrimenti il dato andava fuori scala, il sud Italia invece non pervenuto), il 52% delle aziende non riesce a trovare programmatori software, aggiungo che non lo troverà nemmeno mai alle attuali condizioni.
Eppure gli informatici italiani sono tra i più richiesti all´ estero. Alcuni imprenditori tedeschi ad esempio hanno un filo diretto con le università italiane e contattano i migliori laureandi offrendo loro subito un lavoro dopo la laurea (a tempo indeterminato a 2600 euro netti al mese).
Lo stesso dicasi per alcuni imprenditori indiani, contattano i nostri laureandi delle facoltà di informatica.
La maggior parte di miei ex colleghi stazionano tra Svizzera, Belgio, Malta, Londra, Dublino e Berlino e tutti che mi dicono le stesse cose. Siamo scappati non solo per lo stipendio più alto (in Svizzera è di 5000/6000 euro al mese netto) ma per essere valorizzati. In Italia il lavoro intellettuale è visto anche peggio del lavoro manuale, in Italia i programmatori non danno un valore aggiunto ma sono visti solo come mero costo che non porta nessun vantaggio tangibile. Visti come il soggetto a cui addossare tutte le colpe in caso di mal parata. Il trattamento dell´informazione è visto come una cosa aleatoria e non un´opzione di vantaggio concorrenziale.
Quindi finchè le cose staranno in questo modo (e non vedo cambiamenti nei prossimi 20 anni a meno di un´altra pandemia) credo che non esiste un futuro roseo per noi che svolgiamo questa professione in questo paese, cari giovani pensateci bene prima di iscrivervi a questa facoltà all´università.