Strumenti di Sviluppo: Issue Tracker
A marzo pubblicai un post intitolato Strumenti di sviluppo: Subversion (SVN) che doveva essere il primo di una serie di post sugli strumenti di sviluppo, sfortunatamente altre priorità me lo hanno impedito.
Poco male, riprendo la serie preparando in anticipo una serie di post da pubblicare nel tempo.
Dopo i repository SVN passiamo a parlare di un altro strumento fondamentale in ambito collaborativo: l'Issue Tracker.
Un sistema di issue tracking, che troverete chiamato anche con altri termini come bug tracking system, è un software che ha il compito di raccogliere e mantenere organizzati tutti gli "appunti" relativi alla gestione, sviluppo e programmazione di un prodotto.
Questi appunti possono essere note, funzioni da sviluppare, bug da correggere, miglioramenti da apportare...
Esempio pratico: Zend Framework
Come al solito un esempio vale più di mille parole.
Prendiamo ad esempio Zend Framework, un framework per PHP 5 sviluppato da Zend con il contributo di programmatori in tutto il mondo.
Per coordinare lo sviluppo, la crescita ed il mantenimento del framework Zend si è affidata all'issue tracker Jira.
Come potete notare dall'homepage, su Jira sono presenti tutti i prodotti in sviluppo e per ciascuno esiste una sotto classificazione che identifica ogni singola libreria, ad esempio Zend_Feed o Zend_Uri.
Il compito dell'issue tracker è quello di tenere traccia di ogni attività da eseguire, dai bug ai miglioramenti, in modo centralizzato affinché qualsiasi programmatore possa intervenire con facilità su un qualsiasi componente del prodotto.
Ogni programmatore ha a disposizione un account con il quale è possibile interagire: segnalare un bug, inviare una patch, suggerire una modifica.
Ciascuna attività è organizzata a livello di task con la possibilità di assegnare una priorità al ticket, assegnarlo al componente del team che è in carico della libreria, posticiparlo o chiuderlo non appena risolto.
L'issue tracker consente quindi di lavorare a più mani su un progetto, senza il rischio di fare le stesse cose contemporaneamente a più mani o correre il rischio di scordarsi dei pezzi.
Obiettivo dell'issue tracker è quello di semplificare l'organizzazione e la gestione del progetto.
Caratteristiche di un Issue Tracker
Ogni issue tracker ha le proprie caratteristiche, tuttavia ognuno di questi prodotti condivide alcuni elementi comuni nella sua architettura.
Normalmente si tratta di applicazioni web, basate su un database che ha il compito di salvare in modo centralizzato tutte le attività dai ticket alle revisioni.
Ciascun programmatore dispone di un account con il quale interagire.
Si tratta di un elemento fondamentale in un issue tracker per consentire all'intero team di lavoro di capire chi sta lavorando a cosa e non sovrapporre le attività.
Ogni modifica, inserimento o attività viene tracciata dall'issue tracker ed associata all'utente. In questo modo, il programmatore stesso può individuare agevolmente i ticket a lui assegnati o, viceversa, le richieste che può prendere in gestione.
Sotto molti versi l'issue tracker è una versione potenziata di una classica todo list, fusa ad un calendario e con funzionalità orientate allo sviluppo collaborativo.
Quasi tutti gli issue tracker sono particolarmente rivolti all'aspetto di gestione di quelli che in programmazione sono definiti bug, ovvero difetti di un programma che necessitano un intervento ed una correzione.
E' quindi possibile creare un bug, assegnarlo ad una o più categorie, classificarlo per importanza e priorità, allegare suggerimenti o correzioni (patch).
Molto spesso gli issue tracker integrano al loro interno uno o più moduli per interagire con i repository, come Subversion.
Ad esempio, ecco come si presenta l'integrazione di SVN in Trac, un altro noto issue tracker.
E' possibile navigare il repository così come analizzare due revisioni in cerca di modifiche. Ovviamente, anche in questo caso ogni revisione è identificata con un autore e categorizzata.
Ticket
Come anticipato nella sezione precedente, il centro di un issue tracker sono i ticket, una sorta di TODO (attività da fare) potenziato.
Ciascun ticket corrisponde ad un'attività, normalmente classificabile come bug o suggerimento.
Al ticket, parte di uno specifico componente del prodotto, è possibile assegnare una priorità, una milestone (ovvero una ipotetica data per la sua risoluzione), attribuire dei dettagli come il sistema operativo che causa il problema ed attribuire un componente del team che si occuperà di gestire l'elemento.
Lo status consente di verificare se il ticket è in lavorazione, in standby o completato.
A seconda dell'issue tracker possono essere disponibili ulteriori caratteristiche e funzioni avanzate.
Elenco di Issue Tracker
Ora che senz'altro avrete più chiare le potenzialità di questo sistema vi starete probabilmente chiedendo dove trovare un issue tracker da installare e provare.
La lista dei prodotti è lunga e per un elenco completo vi rimando alla specifica categoria Bug Tracking su Dmoz.
Quella seguente è una piccola raccolta di quelli più diffusi.
Bugzilla
Bugzilla è uno tra gli issue tracker più diffusi, se non il più diffuso.
E' sviluppato dalla Mozilla Foundation ed adottato per la gestione dei progetti della fondazione tra i quali anche Firefox e Thunderbird.
E' sviluppato in PERL e si appoggia su MySQL, disponibile gratuitamente.
Edgewall Trac
Trac è sviluppato in python e si appoggia ad un database PostgreSQL.
Il supporto per MySQL è attualmente sperimentale. E' disponibile gratuitamente.
E' una soluzione che ha trovato spazio negli ultimi anni anche grazie all'eccezionale integrazione con SVN.
Atlassian Jira
Jira è un issue tracker sviluppato in Java, adatto a progetti di medio grande livello.
E' tanto complesso quanto potente, integra un Wiki, SVN ed un elevato numero di personalizzazioni.
Il prodotto non è gratuito, tuttavia la licenza viene concessa grauitamente in caso di progetti open source.
Vanta alcuni clienti di rilievo, tra i quali la Apache Software Foundation.
wIT
wIT è un prodotto a pagamento, sviluppato da Waterproof, la società che sviluppa e distribuisce il famoso editor PHPEdit.
Si appoggia ad un database MySQL ed è sviluppato in PHP.
vBulletin Project Tool
vBulletin Project Tool è uno tra gli issue tracker più recenti, rilasciato meno di un mese fa da vBulletin, l'azienda che molti di voi conosceranno per essere gli sviluppatori della famosa piattaforma per forum in PHP.
Il sistema si integra perfettamente con il forum e condivide il sistema di account e molte proprietà di gestione.
In conclusione
I software di Issue Tracking rappresentano una soluzione alle esigenze di gestione e sviluppo di progetti in ambito collaborativo.
Nonostante il loro scopo primario sia quello di coordinare team di più persone, anche l'uso per singoli programmatori si rivela efficace e di supporto.
Consentono di gestire in modo ordinato ed efficace i ticket, ovvero le attività come bug o suggerimenti.
Spesso integrano prodotti utili come Subversion o Wiki per migliorare la produttività.
3 TrackBacks
Listed below are links to blogs that reference this entry: Strumenti di Sviluppo: Issue Tracker.
TrackBack URL for this entry: http://www.simonecarletti.com/mt4/mt-script-tb3.cgi/674
Introduzione a Bugzilla, uno dei più famosi e diffusi issue tracker disponibili: gratuito ed affidabile. Read More
Introduzione a Deskzilla, un desktop client per gestire dal proprio computer una installazione di Bugzilla. Read More
Ship it! è un libro eccellente, una delle pubblicazioni di maggiore livello per quanto riguarda la corretta gestione dello sviluppo di un software. Read More
1 Comments
Leave a comment
Disclaimer:
SPAM comments or messages posted just in order to take advantage of search engines popularity might be removed without any notice.
Comments are filtered against Akismet antispam service, keyword filters and blacklists.
Cerca nel Blog
Annoiato delle solite ricerche? Prova un tag cloud!
FeedBurner Network
Questo blog è parte del network Web Marketing e Motori di ricerca (a FeedBurner Network).
Scopri di cosa si tratta (sì, lo so, il post introduttivo è un po' lungo...)
Non perderti gli aggiornamenti
Non conosci i feed RSS? Hai paura che sia una fregatura? Questa breve presentazione fa al caso tuo... prenditi 5 minuti, è divertente! :)
Ultimi commenti
Ultimi post
- Benvenuto Ruby.HTML.it
- The SuckRank ®
- Quale framework PHP utilizzare?
- Libro Ship it! A Practical Guide to Successful Software Projects
- C'è (34.821) posta per te
- Versione evoluta dei Google Sitelinks: sitelinks e form di ricerca
- Guida completa a Google AdSense
- Libro TextMate - Power Editing for the Mac
- Convertire un feed da RSS 0.91 a RSS 2.0
- Blogger, iscriviti al tuo feed!
Movable Type 4.1


Io conosco anche Eventum... lo fanno e lo usano il team di sviluppo di Mysql AB
http://dev.mysql.com/downloads/other/eventum/
è opensource (GNU GPL) è scritto in PHP + Mysql (ovviamente :D )