Text

Riprogrammare una cultura

Prendo spunto da un vecchio post di Programmatori Dentro: arguto e brillante blog di Giovanni Cuccu. Il post, nello specifico, tratta la situazione dello stipendio del “programmatore italiano”. Ve ne consiglio la lettura.

Il mercato dei programmatori in Italia? Trieste quadretto di sottopagati impiegati d’ufficio. Troppo stringato? Ok, approfondisco.

Se torniamo al concetto già espresso in questo blog, cioè che scrivere software non è ingegneria, allora si deve far valere anche la regola che è terribilmente complesso quantificare il lavoro di uno sviluppatore.

Nel post di Giovanni, e relativi commenti, si evincono stipendi imbarazzanti. Credo però che, ancora una volta, le responsabilità siano da ricondurre alla natura superficiale di questa nostra Italietta, la patria del Null Management.

Null Management
noto come Nil Management ai programmatori Smalltalk e Obj-C ;-)

Il Null Management, questa capacità tutta italiana di dirigere qualcosa di cui non si conosce assolutamente nulla, è in naturale rotta di collisione con il cargo di mestieri “veri”, con i pragmatismi di chi ogni giorno trova le soluzioni: programmatori, designer, tecnici.

Il Management è una cosa seria, lo so, ma lo è solo quando stratificato, compartimentato. Non funziona se il Manager è posizionato al top della filiera e tratta le questioni con i designer e gli sviluppatori. E’ il Project Manager dove sta? E la separazione tra design, sviluppo e testing? Se n’è visti troppi di prodotti dove l’interfaccia è progettata dallo sviluppatore o, ancora peggio, da un top manager.

Meno chiacchiere, più fare, e soprattutto non riversare sull’operativo le carenze manageriali.

Siamo noi

Diciamoci una verità. Il mercato del lavoro nel nostro paese è messo come è messo anche per causa nostra. Alcune dimostrazioni:

  • Una gara per la fornitura di un sito web con prezzi attorno ai 5.000 Euro, ed ecco sbucare l’offerta da 500;
  • La richiesta, da parte di un grossa azienda nazionale, per lo sviluppo di un progetto in out-sourcing. Offerte da 25 Euro/ora, quando la natura del cliente e del progetto chiamerebbero per cifre tra i 70 e i 100 Euro.

Far capire che questo lavoro vale e conseguentemente costa, è questione culturale. Non possiamo spiegare ad un Manager, ad un cliente, i tecnicismi e le complesse meccaniche dietro allo sviluppo software. Se potessimo farlo, non sarebbero poi così complesse. Non possiamo mostrare i sorgenti per far capire quanto vale questo lavoro; è necessario utilizzare l’unico metro di valutazione che queste persone capiscono: il denaro.

Non solo il denaro a dire il vero; c’è anche il tempo. Anche qui si casca nell’errore di chi, in buona fede, vuole trarre beneficio dalle proprie capacità e solo da quelle, senza sotterfugi e furberie.

Se si pensa di impiegare 50 ore, questa è l’esatta quantità che, solitamente, si espone al proprio di datore di lavoro o al proprio cliente. Grave errore. Alle 50 ore è necessario aggiungere il testing, gli imprevisti, la legge di Murphy, le decine di obiezioni del tipo “ma quello lo metterei lì”, “pensavo che potremmo aggiungere…”, “già che ci siamo…”.

Usiamo tranquillamente la regola del 3x. 150 ore quindi.

E’ cultura, non mi stancherò mai di affermarlo. Se continuiamo a concedere alle persone l’espressione “programmino”, sarà lecito pure continuare ad accettare i 1.200 Euro netti. Così come quando risponderemo “si” alla domanda “tanto è facile da fare no?”.

Isoliamo chi distrugge i prezzi, magari solo perché a 25 anni vive ancora con i suoi e non ha problemi di spese, oppure chi lo fa sfornando decine di progetti al mese sottopagati in out-sourcing. Come si possono isolare? Semplice: con la qualità. Lasciate che usino Joomla, lasciateli ai templates, lasciateli alla loro spasmodica ricerca dei componenti anche quando non è il componente che farà la differenza.

Lo sviluppo in proprio

Quelli bravi (e a volte i disperati) tentano la carta della propria software house e il più delle volte falliscono. Falliscono per 101 ragioni e quasi mai riconducibili a loro mancanze:

  • le banche italiane non finanziano progetti, tanto meno quelli software
  • le aziende piccole hanno bisogno di spendere poco inizialmente, anche sul personale, quindi cercano sviluppatori freschi di studio, ma le scuole di questo paese non sfornano programmatori, ma superficiali conoscitori dell’IT
  • ricerca e sviluppo sono sempre messe in secondo piano (anche nelle grosse aziende), benché siano il motore che consente la penetrazione di mercato con prodotti innovativi

In assenza di finanziamenti significativi, quelli che possano garantire uno startup di 18-24 mesi insomma, l’unica strada è la collaborazione. Piccoli network, cooperative mirate su un progetto. Se e quando il prodotto sarà sul mercato, ci sarà il tempo e il modo di dare forma ad una figura aziendale.

Il gruppo

Costruire un gruppo; partorire un progetto in seno al gruppo; elevare il progetto a ruolo di star: il vero protagonista. La devozione del gruppo al progetto. Abnegazione pura. Ognuno nel Team apporta i dettagli originati dalle proprie bravure, idee, ma è il Team il motore.

Anche questo è un limite italiano. Il gruppo manca quasi sempre.

Manca nelle aziende, dove è un assembramento di dipendenti, non un gruppo.

Manca nelle collaborazioni professionali, dove l’interesse è di ogni singolo e per se.

Quindi?

Io non ho ricette. Ho solo la mia esperienza. Trent’anni di sconfinata passione, tra successi, fallimenti, soddisfazioni, delusioni, ma un comune denominatore: fatica.

Fatica nel far capire che i lavoro costa e che non c’è nulla di facile. Fatica nel sopportare la visione dei danni apportati al mio mestiere da chi a volte me ne fa vergognare. Fatica nel trattenere l’istintiva intolleranza per chi chiacchiera e gira sempre attorno al fare, senza mai raggiungerlo. Va da sé che la fatica è sempre stata in quel che ruota attorno a questo mestiere e mai nel lavoro in se. Significa quindi che se qualcosa è da cambiare, è al di fuori.

Apparteniamo a quel privilegiato gruppo di persone che, nelle loro piccole grandi realizzazioni, il mondo lo migliora un po’ tutti i giorni, perché il software è nei gesti quotidiani di tutti ormai, persino di quelli che affermano di odiare i computer, mentre controllano l’appuntamento sul proprio palmare.

A chi inizia ora, non posso consigliare di prendere di petto il mercato e soprattutto i datori di lavoro. E’ possibile però lavorare sull’immagine che questi ultimi hanno del nostro mestiere. Ancora, se pensate che il quibus non valga il vostro valore, cercate le collaborazioni e provate a lasciare la strada vecchia per la nuova, verso nicchie di mercato, nuove tecnologie. Insomma, parlando la nostra lingua, .Net e Java sono solidi roccaforti (mi hanno fatto lavorare tanto e bene), ma distinguersi può far rivivere passioni assopite e soprattutto creare nuovi spazi nel marcato.

Text

La progettazione software non è ingegneria

Jim Reekes:

E’ una contraddizione in termini. L’ingegneria software non è di fatto ingegneria. E’ arte creativa, realizzata da artisti e artigiani, ma decisamente non da ingegneri.

Questa citazione, tratta da un’Intervista fatta a One More Thing, rispecchia totalmente il mio modo di vedere l’argomento dello sviluppo software.

Spesso si associa questa disciplina all’istinto matematico e alla logica, perdendo di vista la natura creativa e ispirazionale dietro alla progettazione e realizzazione di un prodotto software. Ci sono elementi tecnici e nozionistici alla base, certo, così come nella musica ci sono le regole fisiche e convenzionali che la regolano; così come nella pittura ci sono le tecniche che ne consentono la messa in pratica. Stessa cosa per la fotografia, la poesia, la danza.
L’espressione artistica ha sempre un sottosuolo tecnico. Quando però le nozioni sono acquisite, diventano parte di noi e lasciano spazio alla sola arte creativa. Tutti i tecnicismi scompaiono, diventato degli strumenti, il mezzo e mai il fine.

La cultura provinciale di questo Paese da sempre interpreta la laurea come un obbiettivo sociale, talvolta culturale e molto raramente individuale. A questo è da aggiungere un basso profilo in termini programmatici e didattici in termini di software.
Il risultato è, anno dopo anno, sfornate di “dottori” che il più delle volte offendono la natura creativa di questa disciplina. Applicazioni software senza design, interfacce tristi, intrise della loro logica estrema quanto inutile. Oltreoceano, perlomeno, il valore di un designer bravo è quanto quello di un ingegnere bravo, così come quello di un non laureato bravo. La chiave è “bravo”, non “ingegnere”. Il livello del software è alto grazie ai talenti, non alle qualifiche.

L’affermazione di Reekes, che italiano non è, ci riporta però alla natura, universale, del problema; alla necessità cioè di esiliare l’idea che lo sviluppo software è materia di ingegneria.

Un modesto consiglio alle nuove generazioni di sviluppatori software: meno matematica, più filosofia.