Quoto, appoggio e ribadisco il disappunto che ho letto nel post di Andrea che mette alla luce un problema sui cui argomenti mi è capitato più volte di riflettere.
Credo che il problema sia reale e che il software, in quanto a qualità del prodotto, sia paragonabile a prodotti della normale vita di tutti i giorni, nonostante non sia generato da un processo industriale.
Prodotto industriale o artigianale
Prima di tutto voglio chiarire perché ritengo il software un prodotto artigianale. I prodotti industriali sono caratterizzati da fortissimi vincoli per le persone che ci operano sopra: un operaio ha a disposizione solo gli strumenti (cacciaviti, macchinari, etc) per lavorare sulla caratteristica del prodotto a cui deve lavorare. Il prodotto alla fine ha già dei test specifici da superare perché il prototipo che è stato realizzato all'inizio ha messo alla luce con precisione quali sono i punti deboli, i punti di controllo e le caratteristiche che deve avere. La qualità è assolutamente predicibile.
Il software è un prodotto artigianale (anche quelli realizzati da Microsoft, Apple, etc.) perché il singolo sviluppatore può fare la differenza tra un prodotto di successo e un disastro. La figura professionale richiesta è certamente più elevata rispetto ad una produzione industriale.
Nel mondo del software l'industrializzazione è possibile ma con strumenti che oggi sono ancora ostici, parlo dei DSL (Domain Specific Language) (OT ... chissà se Oslo riuscirà a darci DSL 'facili').
Perché penso che il software sia paragonabile, per qualità, a prodotti della vita di tutti i giorni.
Innanzitutto è importante separare la qualità di un prodotto in quella di ogni sua caratteristica: per esempio la qualità di un'auto è separabile in qualità estetica, qualità motoristica, qualità della strumentazione, etc. Per come è la nostra società una estetica mediocre non è accettabile e di conseguenza è la parte più curata. La strumentazione è roba di nicchia ed infatti lascia ancora molto a desiderare.
Noi viviamo nel software e abbiamo uno spirito critico soprattutto nel nostro settore, ma è da un po' di tempo che osservo altri prodotti ritrovando numerosi problemi, bug o inconsistenze nate in fabbrica. Alcuni esempi:
- Lavatrice. In tanti modelli la temperatura dell'asciugatura non è regolabile. Lavi a 30-40 gradi e asciughi a 60-70. Defective by design.
- Vestiti. Le taglie dei vestiti sono spesso non-predicibili e inaffidabili. Il materiale (es: cotone) specificato in etichetta non è rappresentativo della qualità del materiale stesso. Esistono diversi tipi di cotone e lo "skill" dell'utente è determinante per eseguire la scelta.
- Giocattoli. Faccio un esempio per tutte le volte che mi sono capitate scene similari. Apro io stesso la confezione di un giocattolo, viene appoggiato per terra con delicatezza e ... rotto. Il perno di plastica dimensionato per una mosca deve reggere un mostro di plastica alto 20 cm. Impossibile by design.
- Frigorifero. Da quando l'abbiamo comprato molti molti anni or sono non c'è disponibilità delle lampadine di ricambio, nè per potenza nè per tipo di vite.
- Formaggio. Ci sono famosi formaggi italiani che si possono fregiare di una denominazione "doc" garantita da un consorzio. Eppure quando vado a comprare lo stesso prodotto con lo stesso nome e lo stesso marchio nello stesso supermercato ma in due giorni diversi, trovo due prodotti totalmente differenti con gusto neppure paragonabile. Stessa scena applicabile per un prosciutto o per un vino.
E potrei andare avanti con mille altri prodotti.
In sostanza credo che non sia vero che il software sia da meno rispetto a tantissimi altri prodotti di tutti i giorni.
In quanto prodotto artigianale il software ha:
- certamente più "scusanti" ad avere maggiori difetti rispetto ad un prodotto industriale
- il vantaggio di calzare a pennello al cliente che ha deciso i requisiti
Nonostante questo:
- ci sono tantissimi prodotti industriali che offrono minore qualità del software
- la percezione dell'utente del software è di gran lunga più critica e meno accomodante
- il costo spesso è percepito come eccessivo
Sono convinto che la chiave di lettura sia che la percezione della qualità di un prodotto sia proporzionale al livello culturale del consumatore in quel settore. Non pretendo nè spero che "siano tutti tecnici" ma credo che la maggiore diffusione possa solo giovare.