Come viene calcolata la qualità del codice sorgente di LibreOffice ?

LibreOffice è il primo grande progetto di software libero a calcolare i “difetti” ogni 100.000 righe di codice sorgente grazie al lavoro che gli sviluppatori hanno compiuto negli ultimi due anni sulla base delle evidenze portate alla luce da Coverity Scan, un servizio gratuito che Coverity mette a disposizione dei progetti open source.

Tanto per dare un’idea di dove si posizionano gli altri progetti, Mozilla Thunderbird ha 8,9 difetti ogni 10.000 righe di codice, Apache HTTPD 7,4 difetti ogni 10.000 righe di codice (il migliore tra i progetti di Apache Software Foundation, e l’unico con meno di un difetto ogni 1.000 righe di codice), Mozilla Firefox 7 difetti ogni 10.000 righe di codice, Linux Kernel 5,2 difetti ogni 10.000 righe di codice, Samba 5,1 difetti ogni 10.000 righe di codice, e LibreOffice 8 difetti ogni 100.000 righe di codice (ovvero, 0,8 ogni 10.000 righe di codice, ovvero 0,08 ogni 1.000 righe di codice).

Questo, ovviamente, alla faccia di tutti coloro che sostengono che LibreOffice è un progetto “sperimentale” dove si guarda più al rilascio di funzionalità che alla qualità del codice sorgente. In particolare, tutti i sostenitori di Apache Software Foundation e della “predatoria” Apache License, che tanto si riempiono la bocca della “Apache Way” come se fosse l’unica metodologia di gestione dei progetti open source, farebbero meglio a guardare un po’ di più la qualità del loro codice sorgente e un po’ meno quella del codice sorgente di LibreOffice.

I “difetti” del codice sorgente non sono da confondere con i bug e le regressioni, che sono intrinseci dello sviluppo di qualsiasi software (sono gli errori umani degli sviluppatori). Ovviamente, più si “lavora” sul codice sorgente per aggiungere funzionalità più si rischia di creare bug e regressioni. Peraltro, più è basso il numero dei difetti del codice sorgente più sono ridotte le probabilità che i bug e le regressioni dipendano dal codice sorgente stesso (tanto che Coverity Scan mette in rapporto la qualità del codice sorgente e il tempo necessario per lo sviluppo delle funzionalità).

LibreOffice ha iniziato ad avvalersi del servizio Coverity Scan nell’ottobre del 2012, e la prima analisi ha rilevato un numero di difetti pari a 1,1 ogni 1.000 righe di codice sorgente (superiore sia alla media del software proprietario, che è di 7,1 difetti ogni 10.000 righe di codice, sia alla media del software open source, che è di 6,5 difetti ogni 10.000 righe di codice). Nel giro di due anni, gli sviluppatori LibreOffice sono riusciti a risolvere oltre 6.000 difetti (una descrizione più accurata si trova nel report che è possibile scaricare, previa registrazione, da questa pagina) e portare il “conto” a 8 difetti per 100.000 righe di codice (con un risparmio, stimato, di 43.000 ore di sviluppo).