Gestire facilmente i vostri progetti online! – Parte 1

Primo appuntamento (di tre) dedicato alla guida che ci insegna a gestire, con l'applicazione web Redmine, tutti i nostri progetti online.

Redmine è un’applicazione web molto completa per la gestione dei progetti software, open source e basata su Ruby On Rails.

Panoramica

Redmine utilizza il paradigma dell’Issue tracking system, ovvero tutti i task associati ad un progetto sono visti come issue (spesso chiamati ticket o interventi) da risolvere, raggruppati per progetto, urgenza, stato di avanzamento eccetera.

Oltre alla gestione degli issue sono presenti molte altre utili funzionalità:

  • notifiche via email;
  • gestione delle versioni, dei file e dei documenti;
  • integrazione con i sistemi di revisione del codice come CVS, SVN, Git;
  • wiki e forum per progetto;
  • gestione calendari e report con grafici Gantt;
  • time tracking;
  • … e molto altro!

Inoltre tutte le funzionalità sono opzionali per progetto; in questo modo si può utilizzare solo ciò che serve effettivamente, attivando solo in un secondo momento le caratteristiche ritenute secondarie.

Installazione

L’ultima versione stabile al momento della stesura dell’articolo (Settembre 2011) è la 1.2.1 ed è prelevabile da RubyForge, l’installazione manuale però è un po’ complicata per colpa di alcuni problemi di compatibilità; per chi vi si volesse cimentare (in realtà non è molto difficile) consigliamo la lettura della documentazione, che spiega in dettaglio le versioni supportate dei vari componenti. Per i nostri scopi sarà sufficiente l’installer fornito da BitNami, disponibile per Windows, Linux e Mac, contenente tutto lo stack applicativo necessario: Apache, MySQL, Subversion e Ruby on Rails.

Infine, un consiglio che vale anche per altri prodotti simili, ovvero di installare l’applicazione in inglese; in questo modo sarà possibile seguire con più facilità i vari tutorial e la documentazione disponibile sul sito e su internet in generale.

Configurazione di base

Redmine è uno strumento davvero molto flessibile ed è possibile adattarlo a diverse realtà, dallo sviluppatore singolo, alla piccola azienda, ad installazioni con molti progetti e utenti. In questo primo articolo vedremo una configurazione di base adatta alle piccole/medie aziende, dove il ciclo di vita dei ticket è gestito internamente. Successivamente ci occuperemo di situazioni un po’ più complesse che coinvolgono anche i clienti e gli utenti stessi, che potranno inviare nuovi ticket e seguirne l’evoluzione.

Qualunque sia la vostra scelta consigliamo comunque di creare uno o più utenti “normali”, sia per limitare gli eventuali danni (l’utente administrator può modificare e cancellare tutto, anche per sbaglio), sia per avere un’installazione più “ortodossa” e corretta dal punto di vista gestionale.

Tutti i task di amministrazione si raggiungono cliccando su Administration, nella parte superiore della finestra. Cliccando su Users e poi sul pulsante New user si aprirà il form di creazione utente:

 

Per il momento creiamo un solo utente, che chiameremo Sample User. Dopo aver creato l’utente, passiamo alla creazione di un progetto, cliccando su Projects / New project, e creiamo un nuovo progetto denominato My Test Project:

 

Dal pannello inferiore è possibile selezionare le funzionalità che saranno disponibili per il progetto:

  • Issue tracking: funzionalità di gestione degli issue;
  • Time tracking: permette agli sviluppatori di specificare quanto tempo hanno speso su un dato issue;
  • News: permette di pubblicare notizie sulla bacheca del progetto;
  • Documents: crea una sezione Documents dove poter caricare manuali e documentazione;
  • Files: è possibile caricare dei file e associarli ad una specifica versione;
  • Wiki: il classico wiki aggiornabile in autonomia dagli utenti;
  • Repository: integrazione con un repository dei sorgenti;
  • Forums;
  • Calendar: mette a disposizione una pagina Calendar che mostra i vari “eventi” reltivi al progetto: commit, inserimento issue, ecc.;
  • Gantt: permette di creare report con grafici di Gantt per seguire l’evoluzione del progetto.

Per il momento abilitiamo solamente questi moduli: Issue tracking, Time tracking, Wiki, Files e Repository.

Passiamo ora al tab Settings / Members: selezionare (sulla destra) l’utente Sample User e il ruolo Manager, quindi cliccare su Add. Uno dei punti a favore di Redmine è che ogni utente può avere un ruolo diverso in ogni progetto a cui partecipa; in questo modo si promuove un certo tipo di organizzazione “orizzontale” molto sentito nelle pratiche Agili come SCRUM o eXtreme Programming. Una volta creato uno o più utenti, e dopo averli assegnati al progetto con il ruolo che gli compete, possiamo eseguire il logout cliccando su Sign out in alto a destra, per poi entrare con le nuove credenziali.

Appena eseguito il login ci troveremo nella cosiddetta dashboard, una pagina riassuntiva (e personalizzabile) dove potremmo aggiornarci circa gli ultimi eventi relativi ai progetti a cui partecipiamo; in effetti in questa fase iniziale sarà piuttosto vuota, non avendo ancora eseguito alcuna attività.

Inserimento issue

L’attività principale di un’applicazione come Redmine è sicuramente la lavorazione degli issue, vediamo quindi come si svolge una tipica interazione.

Cliccando su My Test Project dalla dashboard si aprirà la dashboard specifica del progetto, con un riassunto della situazione: issue aperti, membri del progetto, tempo speso dagli sviluppatori. Per aprire il form di inserimento di un nuovo issue sarà sufficiente cliccare su New issue:

 

Qui potremo decidere la natura dell’issue (bug, una feature o una segnalazione del cliente), inserire un titolo, una descrizione estesa del problema, assegnare una priorità, e così via. L’elenco dei campi è davvero lungo ma sono quasi tutti opzionali; troviamo che tutto ciò sia perfettamente in linea con gli obiettivi di un sistema di gestione dei “problemi”, ovvero ridurre al minimo la burocrazia e concentrarsi su “le cose da fare”.

Possiamo anche assegnare l’issue ad un altro membro del progetto (campo Assignee); in questo caso dopo ogni modifica che apporteremo all’issue gli verrà inviata una email di notifica.

Creiamo ora qualche issue di esempio e vediamo cosa succede:

    • cliccando su Overview torneremo sulla dashboard, dove il pannello Issue tracking ora mostrerà il numero di issue creati per ogni tracker (Bug, Feature o Support);
    • cliccando su Activity troveremo un elenco di tutti gli eventi relativi al progetto;
    • nella pagina Issues avremo una tabella con tutti gli issue creati, tabella che potremo personalizzare a piacere aggiungendo filtri di ricerca, selezionando colonne, ordinamento e quant’altro.
    • il link Wiki ci porterà al wiki del progetto, dove potremmo aggiungere la nostra documentazione;

 

 

    • in files possiamo caricare dei file, ad esempio degli archivi con le release del progetto;
    • in Settings (visibile solo agli administrator e ai manager del progetto) potremmo modificare molte impostazioni.

 

 

 

Sviluppi

Nella prossima puntata vedremo come configurare la nostra istanza in modo che sia possibile collaborare con i propri clienti nella gestione dei trouble ticket.

Quale Webhosting

Redmine fa uso di Ruby on Rails, un framework di sviluppo web molto potente che si basa su Ruby, noto linguaggio di programmazione. Per poter utilizzare Redmine dovete necessariamente avere a disposizione un account di shared hosting con il supporto a Ruby on Rails, ma la soluzione migliore in questo caso, vista anche la natura del software, è la scelta di una VPS o di un server dedicato.

Links