Come trovare programmi open source
Identificare quali programmi open source siano già in uso presso la propria organizzazione può sembrare un “gioco da ragazzi” avvalendosi di prodotti come OSS Discovery Audit Edition, in grado di identificare oltre 330.000 programmi open source e quindi produrre un iventario puntuale sull’utilizzo di open source, o Krugle Basic in grado di effettuare code discovery e ricerche su duplicazione di codice, ma saper individuare programmi open source che rispondano alle proprie esigenze è un problema senz’altro più complesso.
Il primo tentativo di creare una lista di programmi generalmente riconosciuti come maturi e sicuri si deve a David Wheeler. La lista GRAM (Generally Recognized As Mature) fu stilata nel 2003 grazie alla sponsorizzazione del MITRE, e contiene 38 progetti open source.
Wheeler ha manutenuto la lista per un anno, arrivando ad una versione ‘finale’ che contiene 41 progetti. Benché non sia stata aggiornata la lista è ancora valida e costituisce una pietra miliare.
Da allora molti altri hanno prodotto liste, tra queste la Free Software Directory, un progetto congiunto della Free Software Foundation e l’UNESCO. FreshMeat riporta la descrizione di migliaia di programmi, riportando informazioni sulle diverse release, link per il download ed per ottenere maggiori dettagli. Il Free Software Portal ospitato su Wikipedia è un’altra utile risorsa.
OSALT elenca alternative open source ai più noti programmi proprietari rivolti al mercato consumer. L’autore di OSALT, Anders Ingeman Rasmussen, è l’unico curatore della lista, ma accetta suggerimenti. Maggiori informazioni su OSALT sono disponibili sul blog Commercial Open Source.
Enterprise Open Source directory è l’unico directory pubblico specializzato su applicazioni open source di classe enterprise. Il directory fu lanciato da Bruno von Rotz quando era in Optaros, oggi è sotto il suo controllo e si avvale di un advisory board creato per garantire un approccio neutrale alla valutazione e selezione di tecnologie libere [disclosure: sono un membro del board]. EOS riportando il parere di esperti ed utilizzatori, case study e forum che coprono oltre 250 programmi (per chi legge il tedesco è disponibile il catalogo open source 2009, contenente 354 tecnologie open source) è un buon punto di partenza.
SourceForge è considerato il repository (forge) più grande al mondo, ma non è l’unico. Google Code è il repository di Google, e nonostante sia relativamente giovane ospita già migliaia di progetti, come anche CodePlex – il sito che ospita progetti open source basati sulla piattaforma Microsoft – anch’esso in continua evoluzione.
Esistono ovviamente molti altri forge che meritano attenzione. Ad esempio OSOR forge, il repository della comunità europea specializzato in progetti open source per pubbliche amministrazioni, o Codehaus che ospita principalmente progetti open source basati sui più moderni linguaggi di programmazione, o Alioth, rivolto unicamente al progetto Debian.
I meta-forge sono siti che riportano metriche ed analisi di progetti open source ospitati su altri forge. Meta-forge come Ohloh, FLOSSMole o Melquiades rendendo disponibili informazioni come chi e quanto contribuisce al codice, quali sono le licenze utilizzate, o quanto è commentato il codice, sono un valido aiuto per valutare determinati aspetti dei progetti open source.
In materia di preselezione di programmi open source non esiste l’equivalente del noto “oggi mi sento fortunato” di Google, ed occorre imparare a cercare tra i forge ed i meta-forge esistenti, evitando di limitarsi alle poche soluzioni open per cui esistono aziende in grado di effettuare azioni di marketing.
Forge e meta-forge sono un valido strumento per orientarsi nella selezione, ma raramente si conosce il nome dei programmi che si intende valutare, ed è quindi necessario utilizzare funzionalità di ricerca avanzata, ove disponibili.
Le categorie di software, le descrizioni dei progetti, ed altri attributi infatti possono essere molto utili per identificare i candidati, ma dal momento che ogni forge e meta-forge offre differenti filtri ed opzioni per la ricerca occorre specializzare i criteri di ricerca caso per caso.
SOS Open Source gestisce la preselezione attraverso una funzionalità di meta-search che effettua per conto dell’utente le ricerche sui principali forge e meta-forge, restituendo una rosa di candidati che è possibile filtrare ulteriormente in base alla disponibilità di una versione localizzata in italiano, per notorietà, etc.
I risultati di progetti europei relativi alla qualità dei programmi open source e le metodologie per la qualificazione e selezione di programmi open source non approfondiscono la fase della preselezione, ad eccezione di OpenBRR. La metodologia Business Readiness Rating infatti definisce 4 diverse fasi per il software assessment, e la prima riguarda proprio un “quick assessment” per stabilire quali programmi debbano essere nella lista dei potenziali candidati. Benché OpenBRR non fornisca indicazioni su come effettuare questa fase, OpenBRR suggerisce alcuni indicatori chiave di performance tra cui:
• Con quale licenza o insieme di licenze è distribuito il programma?
• Sono disponibili case study?
• Esiste una realtà che stabilmente ne supporti lo sviluppo?
• In quali linguaggi di programmazione è stato implementato?
• E’ localizzato nella vostra lingua o comunque supporta l’internazionalizzazione?
• Terze parti hanno valutato il programma?
• Sono disponibili libri sull’argomento?
• Industry analyst come Gartner o IDC hanno espresso un’opinione?
SOS Open Source è stato concepito per considerare tutti questi indicatori ed altri ancora, principalmente derivati da quelli descritti nella metodologia QSOS, considerata da alcuni progetti di ricerca come la più esaustiva. SOS Open Source utilizzando diversi motori di ricerca (Google, Google trends, Amazon, etc), accedendo al database locale contenente informazioni su migliaia di progetti open source, ed ottenendo ulteriori informazioni utilizzando API che dialogano con meta-forge remoti, è in grado di restituire misure oggettive sulla robustezza ed evolvabilità.