Application Lifecycle Management open source di classe enterprise
SOS Open Source dopo la selezione di piattaforme di project management ha ricevuto l’incarico di individuare una piattaforma la gestione della configurazione. L’obiettivo finale è quella di trovare insieme di strumenti open source per l’intero Application Lifecycle Management.
Di seguito il percorso di selezione dei componenti più idonei e l’integrazione in una ambiente di sviluppo coerente.
Sistemi per il controllo di versione.
Il cliente era alla ricerca di una piattaforma di Software Configuration Management centralizzata, dove tutte le funzioni di controllo delle revisioni avessero luogo su un unico server. Non è stato quindi necessario prendere in considerazione pro e contro del modello centralizzato e distribuito.
E’ stato facile stabilire che Subversion poteva essere una migliore soluzione rispetto a CVS, dato lo stato di sviluppo di CVS e le note problematiche ancora aperte, quindi gli strumenti per la valutazione offerti da SOS Open Source sono stati utilizzati per indagare esclusivamente il progetto Subversion.
Subversion, storicamente sviluppato e sponsorizzato da CollabNet, recentemente è stato accettato nellincubatore della Apache Foundation e dopo poco è stato accettato come progetto Apache. La base di codice è stabile e matura, con oltre 10 anni di sviluppo alle spalle, e and continua ad essere sviluppata. Subversion, noto come uno dei sistemi per il controllo della versione più popolari, è descritto in numerosi libri, e nella rete si trovano diversi case study relativi alla sua implementazione.
Subversion è un progetto sostenibile, coordinato da una comunità che è governata dalle regole della fondazione Apache, ed è sviluppato oltre 30 programmatori, numero che lo pone nell’alveo del 2% di tutti i progetti recensiti da Ohloh.
Il livello di industrializzazione di Subversion è ineccepibile. La documentazione libera è dettagliata, ma non esistono versioni localizzate nelle diverse lingue. Subversion è principalmente in C (e in misura minore in Python), ed è ben commentato. Come tutti i progetti Apache rende disponibili procedure e strumenti per il controllo qualità, anche se temporaneamente ospitati sul ‘vecchio’ forge Tigris. Grazie alla disponibilità di stack pacchettizzati come Collabnet Subversion Edge (che includono Subversion, Apache e ViewVC) risulta facile da installare e amministrare. Il Supporto commerciale è reso disponibile dall’autore originale e da altri fornitori, stesso dicasi per i servizi di consulenza e formazione.
La strategia di Subversion è quella che ha ottenuto il punteggio più alto: infatti ad una ‘architettura di partecipazione‘ da manuale si aggiunge una roadmap pubblica e dettagliata e non ultimo una licenza di tipo permissivo.
Il punteggio totale di Subversion è risultato molto alto, ed avendo testato in precedenza le integrazioni di Redmine con alcuni SCM sapevamo che Subversion poteva rappresentare una scelta adatta nel contesto di riferimento.
Redmine purtroppo non ha una funzionalità simile ai BluePrint di Landscape, che costituiscono un modo semplice per tracciare i requisiti dalla loro ideazione fino alla implementazione. Per dotare Redmine di una simile caratteristica abbiamo realizzato un apposito plugin Redmine. Nella scelta di Redmine infatti l’estendibilità della piattaforma era stata ponderata attentamente, poiché sapevamo che sarebbe stato necessario modellare la piattaforma sulle specifiche esigenze del cliente.
Redmine è stato inoltre arricchito di una funzionalità per assegnare attività ai Groups, in modo che sviluppatori dello stesso gruppo possano lavorare sulle issue di pertinenza del loro gruppo (una caratteristica che probabilmente il cliente renderà disponibile all’intera comunità, visto che si tratta di una esigenza manifestata anche da altri utenti).
Gestione dei casi di test e reporting con sistemi di business intelligence sono a carico di altri sistemi, allo scopo stiamo fornendo indicazioni utili ad individuare una soluzione di Single Sign On che consenta agli utenti di ‘muoversi’ da un sistema all’altro senza doversi riautenticare (continua).