domenica 14 novembre 2010

Perchè vince?

Qualche anno fa andai a parlare con l’assessore all’Istruzione della mia città. Ero andato lì semplicemente perchè avevo scoperto che, secondo il regolamento in vigore, i dipendenti a tempo indeterminato avevano priorità rispetto ai cocopro, alle partite IVA individuali e, infine, ai praticanti negli studi professionali. La priorità era a prescindere dal reddito, ma era determinata esclusivamente dalla classe di appartenenza.

L’assessore mi ricevette senza grandi problemi: era una signora sui cinquanta, cinquantacinque anni, molto gentile e molto disponibile. Ricordo che ci volle molto tempo – molto tempo – a convincerla che quel regolamento era completamente sballato. Alla fine le feci un esempio banale: “Un ragazzo con un contratto di 800 euro da cocopro, assunto dal Comune, ha meno diritto all’asilo nido per suo figlio del direttore amministrativo che prende 5.000 euro al mese”. Ricordo molto bene lo stupore della persona di fronte all’osservazione; semplicemente non si era mai posto il problema in questi termini.

La cosa buffa era che si trattava del periodo in cui tutta la sinistra parlava dei cocopro e dei precari, del fatto che i giovani erano penalizzati (era l’epoca dei mutui per i precari, se qualcuno se la ricorda). In pratica, a fronte di tante parole, quando si trattava di andare al sodo – ossia di decidere a chi permettere di accedere a un servizio pubblico, e chi lasciare fuori – si tornava al normale modo di ragionare della sinistra: i dipendenti sono buoni e giusti, gli altri sono cattivi evasori fiscali che non meritano nulla.


Perchè vince? Mentre pensate a una risposta diversa dal “perchè ha le tv”, andiamo avanti.

Alcuni anni fa un certo signore emiliano divenne presidente del consiglio. Una delle riforme che propose fu quella di allegerire il cosidetto “cuneo fiscale”, in pratica la differenza fra quello che il lavoratore dipendente si mette in tasca e quello che tira fuori l’azienda – oggi il rapporto è circa 6 a 10.

In effetti il signore emiliano divenne presidente del consiglio, e in effetti attuò la riduzione del cuneo fiscale; alla fine dell’anno in cui fu varata la riforma, una mia collega rinnovò il suo contratto di cocopro, ma dovette accettare una riduzione dello stipendio, perchè “erano aumentati i contributi”.

Che cosa era successo?

La riduzione del cuneo fiscale voleva dire che lo stato, nell’immediato, non avrebbe incassato dei soldi; la teoria era che la riduzione avrebbe favorito un’occupazione più stabile, e la stabilizzazione dei precari. Questo avrebbe potuto comportare un aumento del gettito fiscale, in grado di migliorare i conti dello stato e quindi compensarli della misura stessa.


In pratica, i conti dello stato italiano sono cosa delicata, e quindi se tiri fuori subito X, devi avere un posto che ti dia subito X per compensarlo. Quindi il signore emiliano fece quanto segue:


  • le aziende che avevano lavoratori dipendenti videro ridurre del 3% i costi dei lavoratori dipendenti;

  • i dipendenti delle stesse videro ridurre del 2% le trattenute in buste paga;

  • furono aumentati del 2% i contributi a carico dei cocopro

  • furono aumentati del 3% i contributi a carico delle aziende che assumevano i cocopro.

La giustificazione era che si intendeva ridurre la convenienza dei cocopro rispetto ai lavoratori dipendenti, favorendo quindi la loro assunzione a tempo indeterminato. Questa era la teoria. La fisica del sistema, come sempre, è un’altra cosa, e il signore emiliano – che era fra l’altro un notissimo economista – non poteva ignorarla.

Le aziende che assumono cocopro non assumono cocopro per pura cattiveria – non tutte almeno – ma semplicemente perchè il mercato in Italia è fatto così. La differenza di costo fra un cocopro e un dipendente è tale da non poter essere veramente toccata da una riduzione tutto sommato così piccola.

In compenso, però, le aziende non vogliono vedere aumentare i costi del personale, dato che spesso lavorano su gare e su progetti a budget determinato. Quindi non hanno fatto altro che scaricare sui loro cocopro il costo extra che avrebbero dovuto pagare.

Ora vediamo i dipendenti a tempo indeterminato. Loro un piccolo beneficio l’hanno avuto, ma il vero, grande beneficio l’hanno avuto le imprese con moltissimi dipendenti. Queste si sono viste riconoscere un credito di imposta molto ampio, in proporzione al numero dei loro dipendenti. E’ vero che originariamente erano state escluse alcune tipologie di aziende già “ricche”, come banche e assicurazioni, ma stranamente la legge non era fatta molto bene, e con un ricorso le imprese escluse riuscirono ad ottenere di essere riammesse al beneficio.

Quindi, riassumiamo brevemente:

  • i cocopro hanno, di fatto, visto una decurtazione del 5%;

  • le aziende che assumevano cocopro sono andata a pari;

  • i dipendenti hanno avuto un piccolo beneficio del 2%;

  • le grandi imprese hanno avuto un grande beneficio in forma di credito di imposta.

Ossia, se ragionate come ragiono io, i cocopro hanno finanziato le grandi imprese, a costo zero per lo stato.

Allora, rifaccio la domanda: perchè vince?

La risposta è semplice: perchè c’è una generazione di persone che lo vota. E lo vota perchè l’alternativa è fatta di persone che, AD OGGI, non riescono ANCORA a vedere lo schifo che fa un regolamento per l’assegnazione dei posti negli asili nido in cui conta la classe e non il reddito.

Vince perchè sa che, al di là delle belle parole, per loro – per noi – dall’altra parte non c’è nulla.

Vince perchè da un messaggio forse non entusiasmante, ma sincero.

"Arrangiatevi"

domenica 7 novembre 2010

Il mestiere più bello del mondo

Il codice è lì che ti aspetta, devi aggiungere una nuova funzione al sistema di catalogazione.

Devi montarla dentro una struttura esistente. Puoi prendere il pezzo di codice e attaccarlo come una palla di fango a tutto il resto del sistema; è una cosa che si può fare; si fa anche quando si è di corsa. Ma oggi hai un po’ più di tempo. Puoi guardare con un minimo di calma in giro, e capire cosa c’è davvero da fare.

Guardi dove devo creare la nuova funzione. Il codice funziona, ma non è recentissimo – ha un anno, più o meno.

Esamini i test che ne verificano il funzionamento; ce ne sono una decina. Sono confusi, esprimono male quello che vogliono fare. Cominci piano a correggerli, a renderli più chiari ed espliciti. Ne aggiungi altri. Ora i test sono chiari. E’ chiaro cosa stai provando – in questo caso, la finestra del programma a cui dovrà essere collegata la nuova funzione. Hai rinforzato le fondamenta su cui lavorare. Ora devi andare sopra, e cominciare a costruire.

Guardi il codice che gestisce la finestra. Non è male, ma ovviamente va rivisto. Va rifattorizzato. Questa è la parte che ti piace del tuo mestiere – stranamente, non aggiungere cose nuove ai sistemi. Rivedere il codice esistente e cercare di capire come potrebbero essere scritti meglio; rendere i programmi diventano più stabili, più flessibili e più facili da comprendere e da modificare.

E’ una sfida intellettuale continua. E’ una via di mezzo fra capire una dimostrazione matematica, e riparare una vecchia motocicletta che dovrebbe partire e non lo fa.

Hai davanti un sistema che fa alcune cose utili, altrimenti non saresti lì a guardarlo; al suo interno è contenuta conoscenza importante – quella che noi chiamiamo conoscenza del dominio applicativo. Questa conoscenza è ben nascosta nel profondo delle righe del codice, in cicli annidati, in classi dai nomi incomprensibili, in righe e righe di codice.

Comincia ad esaminare il sistema. Procedi con calma. Scrivi un test – un programma che verifica un altro programma - prima di fare modifiche. Poi fai un piccolo cambiamento: modifichi il nome di una variabile qui, il nome di un metodo la. Trovi un piccolo pezzo di codice che può essere semplificato; trovi una classe che era nascosta, e che può essere resa esplicita – un concetto che era espresso implicitamente, e che assume vita propria.

Il lavoro è lento, paziente, costante. Non si finisce in un’ora. Neppure in un giorno. Smonti un pezzetto alla volta, sperando di andare nella direzione giusta. Definisci concetti nuovi e li leghi assieme. Poi, lentamente, acquisti forza. I concetti si strutturano in ragionamenti, i ragionamenti in teorie. Il tuo sistema non parla più di oggetti binari, tratta informazioni complesse. Puoi leggere il codice del tuo programma e vedere quello che vuol fare e non semplicemente cosa sta facendo.

Poi, all’improvviso cade un diaframma. Sono momenti particolari. Hai lavorato una settimana, un mese a semplificare e riscrivere il codice, magari mentre facevi altro. Poi rimuovi un frammento, e ti accorgi che una gran parte del tuo sistema si è semplificato. E’ diventato migliore – ti da conforto guardarlo. Lo provi, e funziona perfettamente. E’ la bellezza del codice: riesce ad essere elegante e robusto insieme.

Ti accorgi che è tardi e stai facendo un lavoro che il tuo capo non ti pagherà mai. Sei rimasto solo a tu a guardare il tuo codice. Ma a te non importa. Il codice è codice, e scriverlo e rifattorizzarlo è il mestiere più bello del mondo.

martedì 2 novembre 2010

Una rosa è una rosa è una rosa

Nel post precedente ho accennato alle opportunità che esistono per gli umanisti al di fuori del mondo accademico e della ricerca. Qui di seguito riporto alcune possibili opzioni.

E’ importante però ricordare che non esiste l’Eldorado, e non esiste il pasto gratis; queste opportunità non sono facili e non sono immediate, ed è probabile che la formazione dell’umanista medio sia largamente insufficiente. Come dicevo prima, abbiamo un culturista che deve diventare uno sportivo: c’è molto lavoro da fare per imparare a fare un buon uso dei muscoli che possiede.

Semplificando molto, esistono due capacità umanistiche che il resto del mondo può trovare interessanti – e per le quali può quindi essere disposto a sganciare moneta:

  • La capacità di organizzare, secondo strutture semantiche raffinate, grandi quantità di informazioni complesse e strutturate.
  • La disponibilità grandi quantità di contenuti di carattere storico, artistico e letterario.

La prima capacità è la forse la meno considerata, ma è un bisogno di cui si sta rapidamente sentendo e affermando la necessità; lo sviluppo dei sistemi informatici sta semplicemente facendo esplodere la quantità di informazioni che un’organizzazione deve trattare. Per una piccola azienda come la mia si parla di codice sorgente, mail da e verso clienti, partner e fornitori, documentazione tecnica di riferimento, proposte di progetto e moltissimo altro ancora.

La capacità di strutturare contenuti a più livelli, che è propria degli umanisti, è quella di cui si avrebbe bisogno.

Il primo livello è quello “tecnico”, del singolo documento. Io faccio il progettista software in una piccola realtà, e passo metà del tempo a scrivere proposte tecniche, rapporti, progetti esecutivi e quant’altro; la capacità di organizzare un documento in forma chiara e intellegibile, nonché la necessità di leggere documenti tecnici e comprenderne le lacune concettuali è quello di cui si sente enormemente il bisogno. Se avete mai corretto una tesi di laurea di ingegneria, sapete di cosa sto parlando; e una tesi è tipicamente scritta molto meglio di una risposta a un bando di gara.

Il secondo livello è quello dell’organizzazione della documentazione. Come dicevo prima, oggi le informazioni di un’azienda sono spesso organizzate in modo assolutamente causale, privo di struttura e di criteri che ne permettano la rapidità di reperimento. Qui è fondamentale la capacità che è propria degli archivisti e dei bibliotecari di strutturare informazioni secondo categorie multilivello; se fate vedere un sistema di knowledge management a qualcuno che si è occupato di fare assoggettazione, si metterà a ridere per la semplicità degli strumenti utilizzati.

Il terzo livello è quello legato alla strutturazione dei concetti. Oggi i sistemi informatici cercano di fornire risposte più sensate, cercano di darvi quello che volete e non quello che avete chiesto, interpretando le vostre richieste e cercando di contestualizzarle; per esempio, un motore di ricerca potrebbe farvi apparire una scheda su Galileo se voi cercate “storia dell’astronomia”. Si tratta di un collegamento semantico fra due concetti diversi, non correlati in modo puramente letterario. In questo caso si parla di utilizzare ontologie , ossia insiemi di concetti collegati tramite relazioni. I filosofi su questo dovrebbero ritrovarsi.

Se invece parliamo di contenuti veri e propri, il riferimento è legato piuttosto all’uso dei contenuti per scopi di intrattenimento. Altri scopi – tipicamente l’educazione – sono ovviamente già esauriti dal mondo accademico e scolastico, di cui purtroppo si riconoscono i limiti.

In questo caso, gli utilizzi sono legati a tutti coloro che usano il contenuto per creare prodotti di intrattenimento. Di seguito faccio una breve rassegna.

  • Giochi di ruolo. Sono sempre alla ricerca di nuovi spunti per ambientazioni e background.
  • Giochi per computer. In questo caso si va da simulazioni strategiche tipo Europa Universalis III a giochi di azione tipo Assassin Creed. L’ultima puntata di Assassin Creed è ambientata nell’Italia rinascimentale – periodo storico che ha enorme interesse per tutto il mondo dell’intrattenimento.
  • Produzioni cinematografiche, romanzi e racconti, eccetera

Ovviamente, questi sono solo esempi per far capire dove vado a parare: dovete capire a chi può piacere quello che fate, e perché; dovete capire perché dovrebbe darvi dei soldi; dovete domandarvi se ve li darà oggi, e domani non più.

In pratica dovete capire come diventare utili per gli altri, e quindi lasciare che siano gli altri a interpretare le vostre capacità e le vostre conoscenze. E' una cosa poco divertente e poco simpatica - tipicamente io scopro di sapere un sacco di cose inutili, e che me ne mancano moltissime che io detesto ma che servono al mio cliente.

E' quello che si chiama far parte di una società: gli altri dicono cosa è utile che tu faccia.