Valutare un programma open source

11 maggio 2010

La selezione di programmi open source inizia con la creazione di un elenco di candidati, che poi occorre valutare puntualmente.

ArrigoniA scatola chiusa compro solo Arrigoni.

Molti progetti open source nascono e si sviluppano utilizzando sistemi pubblici per il controllo della versione quali Bazaar, CVS, Fossil, Git, Mercurial o SVN, utilizzano sistemi di collaboration come blog, forum, canali IRC, mailing-list e wiki e si avvalgono di sistemi di bug tracking come bugzilla, GNATS, OTRS o trac. Sebbene “navigare” all’interno di queste risorse possa essere oneroso, tali sistemi costituiscono la fonte primaria di informazione per saperne di più su un determinato progetto open source.

Repository open source come SourceForge, Google Code o Codeplex, costituiscono ambienti di sviluppo collaborativo all-in-one, mentre altri come GitHub o Codehaus sono focalizzati esclusivamente sulla produzione di codice, e le comunicazioni tra sviluppatori avvengono attraverso altri canali.

Software metricsMetriche relative al software.

Metriche relative a Processi, Prodotti e Risorse sono tutte ugualmente importanti, ed i metodi per misurare alcune metriche relative al codice – come ad esempio quelle che indicano come analizzare 10-mila righe di codice in un’ora – non sono sufficienti a qualificare completamente un progetto open source. Infatti al di là del codice, occorre analizzare anche le metriche relative alle attività di sviluppo – come il tempo medio per risolvere un baco o quante persone contribuiscono al progetto  – e quelle relative alle risorse (quante persone sono coinvolte, etc).

Al di là del codice, sono importanti anche le metriche relative alle attività di sviluppo – ad esempio il tempo medio per risolvere un baco – e le metriche relative alle risorse, ad esempio le risorse umane coinvolte). Alcuni repository open source forniscono strumenti e statistiche per aiutare gli sviluppatori a conoscere meglio la ‘produzione sociale‘: GitHub utilizza Network Graph Analyzer per rendere graficamente i contributi dei diversi sviluppatori, anche se questi contributi avvengono su repository diversi.

Ohloh mette a disposizione utili informazioni su molti progetti open source, anche via API. Ohloh per ogni progetto riporta un sommario, alcune semplici metriche relative al codice, nomi dei contributori e loro contributi, una lista dettagliata dei commit e informazioni relative al licensing. E’ possibile anche comparare progetti fino ad un massimo di tre progetti, ma il confronto è limitato alla base di codice disponibile, l’attività ed il numero di contributori. Per chi volesse costruirsi un proprio sistema per la valutazione di software open source ohloh mette a disposizione anche tool open source come Ohcount, ohloh_scm e ohdb.

Melquiades rende disponibili dati relativi ad oltre 2600 progetti, grazie al repository finder Octopus che individua i forge dove sono ospitati i progetti, Bicho per i sistemi di issue-tracking, CVSAnalY per i repository di codice, MalingListStats per le mailing-lists e Sloccount per ispezionare il codice. Melquiades rende accessibili i propri dati via API, permettendo di scaricare dump e grafici.

FLOSSMole colleziona dati relativi ad oltre 200.000 progetti ospitati sulla Free Software Directory (dettagli), OW2 (dettagli), Rubyforge (dettagli), Savannah, SourceForge (dettagli), ed anche dati provenienti da FreshMeat e anche Google Code, assieme ad altri collezioni storiche.

Juggling them all

Mettiamo assieme i pezzi.

Meta-forges and research tools can save us a lot of time, making unnecessary to dig into every forge, communication tool and bug-tracking system. Paradoxically the abudance of information offered by tools collecting data may also adds to the problem of open source selection, especially in terms of aggregation and correlation.

Spesso diversi forge, meta-forge e directory registrano gli stessi progetti utilizzando nomi differenti – esempio: zenoss, Zenoss Core – e riportano informazioni non omogenee o addirittura talvolta discordanti.

SOS Open Source è in grado di associare le informazioni provenienti da fonti che utilizzano nomi diversi per indicare lo stesso progetto utilizzando degli alias. Inoltre aggrega e correla automaticamente dati provenienti da diversi forge o directory memorizzandole in un unico record di “meta-progetto”.

SOS Open Source fornisce all’utente l’informazione proveniente dalla fonte più autorevole, grazie a specifiche euristiche elaborate ad hoc per ridurre la complessità della selezione di software open.

L’organizzazione della produzione di codice dipende fortemente dalla governance del progetto. Se e quanto sia possibile influenzare le decisioni è funzione del livello di apertura che mostra lo sponsor del progetto, e nell’attività di analisi occorre andar ben oltre le righe di programma per capire se sia possibile influire sulla roadmap. SOS Open Source costituisce un valido supporto anche per misurare caratteristiche quali la modularità del codice, lo stile di management della comunità di progetto, gli aspetti relativi alla proprietà intellettuale e su come individuare lo sponsor, rendendo più semplice determinare il livello di “openness” relativo alla governance, il licensing e al processo di produzione.