lunedì 4 aprile 2011

Memento mori


Il "memento mori" è un modo per ricordare a tutti i membri del team le varie scadenza. Per mia abitudine, mi piace concordare le scadenze, per cui non sarebbe necessario ricordarle. Ma ho visto che, poi in pratica, è meglio ricordare a tutti le scadenze di tutti.

Il "memento mori", una volta stampato, appare molto simile ad un foglio con dei post-it appiccicati sopra. I post-it verdi indicano i vari flussi di sviluppo; i post-it gialli riportano il nome della risorse coinvolta, scadenza e una breve descrizione dei risultati attesi.

domenica 13 febbraio 2011

Attività in corso


Con questo foglio del nostro Cruscotto di progetto siamo in grado di tenere sotto controllo le attività in corso e assegnate ai vari membri del gruppo di sviluppo.
Le informazioni da inserire sono organizzate per colonne, alcune in input ed altre calcolate con delle formule del foglio elettronico. Vediamo i dettagli
  • title - questa colonna ospita il nome della persona in carico dell'attività
  • start - qui inseriamo la data di inizio dell'attività
  • end - è una colonna calcolata e rappresenta la data di fine dell'attività, calcolata sommando alla data in start i giorni lavorativi della colonna effort e i giorni di ritardo della colonna delay.
  • description - contiene una descrizione sintetica dell'attività.
  • estend - è la data stimata di fine dell'attività, senza prendere in considerazione l'eventuale ritardo.
  • effort - è il numero di giorni lavorativi stimati per il completamento dell'attività.
  • delay - è lo scostamento della previsione iniziale dell'effort dalla reale durata dell'attività. In quanto scostamento, può essere un numero sia positivo che negativo.
  • ellapsed - è il numero di giorni solari che intercorrono dall'inizio dell'attività alla sua fine.
Alcune note importanti su questo foglio:
  • i dati qui presenti sono usati direttamente come input per i gant visualizzati nella pagina iniziale del cruscotto è nella pagina Timeline. I campi title, start, end e description hanno questi nomi, anche se non proprio chiarissimi, perché i componenti grafici che disegnano i gant fanno assunzione sulla presenza di colonne così denominate.
  •  per inserire una nuova riga ovvero una nuova attività da tracciare, conviene copiare una riga già esistente.
  • le milestone sono delle attività senza la colonna end.
  • la milestone oggi ha lo scopo di identificare in un solo colpo d'occhio quali attività devono ancora iniziare e quali potrebbero essere già finite.
  • per ordinare le attività rispetto alla data di inizio, ad esempio quando si inseriscono delle nuove attività o quando si vuole aggiornare la posizione della milestone oggi, basta semplicemente ordinare la colonna B del foglio elettronico.
  • l'attributo delay va aggiornato giornalmente, in base a variazione di stime o ritardi effettivamente misurati. 
Quando una attività viene completata, verificato che il campo delay sia opportunamente compilato, va spostata nel foglio Attività terminate. Ci sono alcuni casi in cui una attività programmata debba essere sospesa per poi essere ripresa in un secondo momento; in questo caso l'attività in questione va spostata nel foglio Attività sospese. L'ultimo caso preso in considerazione è quello di una attività annullata perché non più utile per il progetto; in questo caso l'attività in questione va spostata nel foglio Attività annullate.
Questa classificazione delle attività non più in corso è molto importante per effettuare delle statistiche sul progetto, ad esempio per misurare la velocità di sviluppo o l'accuratezza delle stime fatte.
Per esperienza, questo è il foglio di lavoro giornaliero durante l'attività di coordinamento di un progetto di sviluppo.

lunedì 31 gennaio 2011

Punti Aperti


La pagina dei Punti aperti è abbastanza semplice e ci aiuta a tener traccia dei punti aperti e della loro risoluzione. Le colonne presenti sono:
  • Punto aperto - descrive brevemente il punto aperto.
  • Risoluzione - deve dare in maniera chiara la risoluzione del punto aperto, per poi considerarlo risolto.
  • Data apertura - indica la data in cui il punto è stato aperto
  • Data chiusura - indica in che data il punto è stato risolto e quindi considerato chiuso.
Attenzione ad inserire le date di apertura e chiusura, in quanto a partire da questi dati si aggiorna il bilancio dei punti aperti, rappresentato dal grafico a barre della pagina Cruscotto.

domenica 17 ottobre 2010

Lo stato del progetto in un colpo d'occhio


La prima pagina del Cruscotto fornisce una visione di insieme sullo stato del progetto. Troviamo 4 sezioni distinte:
  • Bilancio dei punti aperti - Un diagramma con due barre verticali indica il bilancio dei punti aperti e dei punti chiusi. Per punto aperto si intende una questione che impatta, prima o poi, l'andamento del progetto e che necessità di una azione. Per punto chiuso si intende un punti aperto risolto.
  • Attività in corso - Un piccolo gant illustra le attività in corso e quelle prossime. Nella figura è possibile notare due attività, rispettivamente assegnate a Tony e Mary; la data odierna che aiuta a riconoscere le attività in corso; le due mile-stone M1 e M2.
  • Ritardo - I tre quadranti indicano, in termini percentuali, il ritardo accumulato dall'inizio del progetto e relativo alle attività terminate; il ritardo in corso relativo alle attività in corso, ovvero iniziate e non ancora terminate; il ritardo totale dato dalla somma del ritardo accumulato e da quello in corso.
  • Statistiche - Una breve sezione riguardante l'effort medio stimato, il ritardo medio e l'effort medio effettivo, espresso in giorni/uomo.
Tutte le informazioni  necessarie per compilare questo primo foglio del nostro cruscotto, vengono tutte dedotte dagli altri fogli:
  • Punti aperti
  • Attività in corso
  • Attività terminate
  • Attività sospese
 Completano il cruscotto altri fogli di supporto:
  • Memento mori
  • Timeline
  • Attività annullate
 

venerdì 7 maggio 2010

Cruscotto di progetto

Dopo un po' di tempo rieccomi su questo blog.
Vi voglio presentare quello che ho chiamato cruscotto di progetto.



Lo trovate come template su google docs, questo perché lo scopo principale del cruscotto è di coordinare le attività di sviluppo di un team. Quindi avere la possibilità di condividere in maniera distribuita le informazioni sulle attività in corso e quelle a breve scadenza.

L'ho messo a punto mentre lo usavo per un progetto di sviluppo, composto da due filoni principali: uno di modifiche adattative e un altro di evolutive. La composizione del team è variata durante il progetto, da un minimo di 3 ad un massimo di 6 persone. Tutto questo per dire che è il risultato di una esigenza ed applicazione reale.

Proviamo a scoprirlo un po' alla volta, anche con l'aiuto vostro. Soprattutto le critiche.

martedì 17 giugno 2008

Controlla il tuo lavoro prima di ogni commit

Può sembrare una banalità, ma controllare cosa viene messo in configurazione è molto importante perché 1. evita di rompere la continuità della repository e 2. è un ottimo punto di auto revisione del proprio lavoro.

Come sistema di versionamento uso SVN e come interfaccia grafica TortoiseSVN, che ha una funzionalità molto utile proprio per la verifica del proprio lavoro. Nella versione inglese si chiama check for modification.

Tramite questo comando riesco a vedere in maniera chiara e semplice il diff tra la mia area di lavoro e la base area, ovvero il contenuto dell'ultima update. Riesco anche a vedere, in maniera analoga, il diff tra la mia area di lavoro e l'ultima revisione presente sul sistema di configurazione.

Come già detto, con il primo diff analizzo le mie ultime modifiche, riuscendo anche a parcellizzarle in modo da fare commit con commenti diversi a partire dallo stesso set di modifiche. La seconda diff permette invece di andare a capire cosa accadrà se faccio una update, in particolare di scoprire se ci saranno dei conflitti.



Per una consulenza sul versionamento dei progetti software contattami su poderico@gmail.com.

mercoledì 7 maggio 2008

La metafora della mappa

Leggendo OpenUp in a nutshell di Per Kroll, ho trovato una considerazione molto interessante su i processi:
A process is like a map: Use it to understand the big picture and as a reference, but when reality and the map don't match, trust reality.
ovvero:
Un processo è come una mappa: usala per capire il quadro d'insieme e come riferimento, ma quando la realtà e la mappa non coincidono, allo credi alla realtà.
Cosa ci insegna questa metafora? Che quando si adotta un processo di sviluppo, questo va saputo adottare ed adattare. Che le descrizioni dei processi sono, per quanto precisi e dettagliati, non adatti o ideali per ogni applicazione o ogni situazione.

L'intelligenza e il buon senso devono sempre prevalere.