“L’accento sulla Qualità del prodotto è uno dei Valori portanti del nostro gruppo.”
“Facciamo Software e lo facciamo bene.”
Che cos'è la qualità del software?
In ambito informatico ad ogni possibile esigenza si può dare un numero praticamente infinito di risposte differenti, ognuna con caratteristiche peculiari.
Produrre software inoltre è un processo molto differente da
quelli standard manifatturieri, ad esempio costruire case:
L’uomo costruisce case da più di 3000 anni, mentre produce software
da meno di 30. Inoltre i fabbricati si basano su varianti
nell'assemblaggio di moduli sempre uguali tra loro, modellati e
raffinati per secoli o millenni. Ogni progetto software affronta un
problema con caratteristiche uniche, che andranno analizzate una
per una, trovando risposte da assemblare in una unica soluzione mai
prodotta prima.
La prima conseguenza è che la qualità del software si misura diversamente per ogni prodotto, anche se in generale possono essere valutati alcuni valori comuni tra i diversi software.
Al fine di ottenere un software di qualità, è necessario disporre consapevolmente di metriche e criteri di valutazione per i propri risultati: Prima, durante e dopo lo sviluppo del software.
La qualità del software valuta tutto il comportamento di un software durante la (eventuale) realizzazione dei compiti per i quali viene usato.
“Quello che facciamo non soltanto sembra funzionare: Funziona veramente.”
A seconda di quali siano questi compiti la qualità si misura dando importanza diversa a diversi fattori:
La stabilità è la capacità di un programma di gestire
gli imprevisti e i malfunzionamenti senza bloccarsi o compromettere
i dati.
La stabilità del software si garantisce creando programmi
predisposti per affrontare situazioni anomale.
“Nel fare software essere ottimisti è da incompetenti.”
La sicurezza di un software evita accessi indesiderati ai dati e
alle funzioni del programma. Questa caratteristica assume molta
importanza nella gestione di dati sensibili, ad esempio dati
contabili o personali.
La sicurezza si garantisce utilizzando utenti, permessi e opportune
procedure di verifica.
“Un danno economico al cliente è la cosa peggiore che avremmo potuto fare in assoluto.”
L’ usabilità si riferisce alla facilità, velocità e intuitività
d’uso del programma. L’ usabilità è fondamentale se il software
deve essere usato da utenti senza apposita formazione, ad esempio
operatori manuali o il pubblico di un sito web.
Per ottenere un programma usabile esistono opportuni criteri e
verifiche da applicare alle interfacce utente.
“Il nostro software deve poter essere usato da operatori con la terza media.”
“Inutile avere il miglior software del mondo, se poi non lo riesci a usare.”
L’efficienza del software misura la velocità con cui il
programma esegue i suoi calcoli producendo i risultati attesi.
L’efficienza è una caratteristica richiesta in casi di elaborazione
spinta dei dati, ad esempio nella ricerca genetica, in caso di
programmi con esigenze di risposta istantanea, ad esempio di
controllo di attuatori ad alta velocità, o di manipolazione di una
grande quantità di dati, ad esempio su server che raccolgano
dati da tutta la nazione.
L’efficienza di un software dipende da come si codificano i dati,
da come si salvano e da come si manipolano, quindi per garantire
alta efficienza del software è essenziale poter contare su un alto
profilo tecnico degli sviluppatori.
“Non servono macchine più veloci, servono programmi fatti meglio.”