Gestisci il team agile con XPlanner

Ambito, progettazione, costruzione, prova, consegna, scusa. Questi sono i passaggi spesso calpestati di una metodologia ingegneristica tradizionale applicata al mondo mutevole dei progetti software. Come sviluppatore di software probabilmente conosci bene quel requisito di sistema "finale" che sembra piegarsi e intrecciarsi come un combattente a premi. Forse hai lavorato duramente su un progetto di sviluppo solo per emergere mesi (o anni) dopo per affrontare un cliente che sembra profondamente deluso dal fatto che le sue reali esigenze non siano state soddisfatte. Forse i tuoi colleghi sono al punto in cui un meticoloso piano di sviluppo a lungo raggio posto davanti a loro instilla un senso di rovina imminente. In conclusione: il tuo team è pronto per lo sviluppo agile, ma il tuo tradizionale strumento di gestione del team è stato cablato per la gestione del team tradizionale?

Le metodologie agili possono essere leggere, ma sono altamente disciplinate. Qualsiasi strumento che ti supporti nella pianificazione e nel monitoraggio di consegne rapide con un'intima collaborazione con i clienti può costituire un'aggiunta preziosa al tuo arsenale. La buona notizia è che molti di questi strumenti sono ora disponibili per il team agile. Questo articolo descrive in dettaglio un'esperienza del mondo reale nella gestione di un team di sviluppo agile utilizzando uno di questa nuova generazione di strumenti, XPlanner open source.

XPlanner è un'applicazione Web Java progettata per supportare la gestione del team secondo la metodologia di programmazione estrema (XP). Tuttavia, abbiamo riscontrato che questo strumento è abbastanza flessibile da fornire un valido supporto per altri approcci agili tradizionali (ad esempio, Scrum) nel calore della consegna del progetto. Sebbene non sofisticato, XPlanner fornisce uno strumento utile per supportare il tuo team, indipendentemente dal fatto che tu abbia esperienza o ti stia semplicemente avvicinando al gratificante mondo dello sviluppo software agile.

Strumenti di gestione del team tradizionali e agili

Gli strumenti tradizionali di gestione del team (come Microsoft Project) si basano su strutture di suddivisione del lavoro che guardano lontano nel futuro di un progetto. L'allocazione pianificata delle risorse e un occhio attento alla varianza rispetto alla linea di base vengono utilizzati per gestire il "percorso critico" fino alla consegna finale. L'applicazione di tali strumenti implica notevoli sforzi di pianificazione anticipata, rigide dipendenze dalle attività e una base stabile di requisiti. È probabile che modifiche significative allo scopo o ai requisiti richiedano revisioni significative del modello. Pertanto, questi strumenti tradizionali sono i più appropriati quando si pianifica un viaggio da A a B, assumendo piccole variazioni di rotta. Al contrario, i progetti agili sono orientati ad aspettarsi il cambiamento, senza dare per scontato che B sia nemmeno la destinazione finale.

Per comprendere la cultura del progetto agile, è utile considerare i principi dello sviluppo agile come sposati dagli autori del Manifesto Agile:

  • "Individui e interazioni su processi e strumenti
  • Software funzionante su documentazione completa
  • Collaborazione con il cliente nella negoziazione del contratto
  • Rispondere al cambiamento piuttosto che seguire un piano "

    (Kent Beck et al., 2001)

Pertanto, i progetti agili abbandonano esplicitamente la pianificazione a lungo termine a favore di un coinvolgimento intimo delle parti interessate, una chiara focalizzazione su funzionalità di alto valore e il rilascio di software utilizzabile presto e spesso. L'obiettivo di fondo è fornire in modo semplice ed efficace valore a fronte di cambiamenti costanti. Affinché uno strumento di pianificazione e monitoraggio sia prezioso in questo contesto, deve essere congruo con questi valori.

Pianificazione e monitoraggio del progetto con XPlanner

XPlanner è un agile strumento software per la gestione dei progetti disponibile sotto la GNU Lesser General Public License (rendendolo "gratuito, come nella birra", in gergo open source). Il pacchetto viene distribuito come un'applicazione Web, che consente ai membri del team e alle parti interessate del progetto di partecipare utilizzando i propri browser Web preferiti. Una volta configurato, sarai in grado di pianificare e monitorare vari aspetti della consegna del tuo progetto agile tramite una semplice interfaccia Web.

Fondamentalmente, dal punto di vista agile, i partecipanti al progetto sono in grado di collaborare direttamente contribuendo con le loro informazioni all'archivio comune del progetto. Questa collaborazione può coinvolgere i clienti che descrivono i requisiti del progetto sotto forma di storie utente, che gli sviluppatori utilizzano quindi per dettagliare e tenere traccia delle attività richieste per trasformare queste storie in realtà.

Oltre a supportare questo livello di collaborazione con i clienti, XPlanner fornisce altre utili funzionalità che supportano l'approccio agile. Questi includono funzionalità come un semplice meccanismo per definire le iterazioni del progetto; un'interfaccia intuitiva per le persone che valutano e monitorano lo sforzo; e grafici per la pubblicazione delle metriche del team. XPlanner è discusso qui poiché è stato implementato per supportare la fornitura di un sistema di flusso di lavoro e commercio elettronico composto da diversi gruppi di parti interessate e un team di sette sviluppatori.

Download e installazione

XPlanner è un'applicazione Java pura che può essere distribuita in qualsiasi ambiente di sviluppo J2SE 1.4 dotato di Apache Ant e di un motore servlet adatto. Abbiamo scelto Apache Tomcat come motore servlet; tuttavia, qualsiasi motore compatibile con Servlet 2.3 (o una versione più recente) dovrebbe funzionare. XPlanner viene fornito come archivio di file (zip o tar.gz) che è necessario decomprimere e creare prima di distribuire e utilizzare lo strumento.

È previsto un passaggio di configurazione obbligatorio poiché è necessario impostare il database preferito da utilizzare come repository per le informazioni sul progetto. Poiché XPlanner utilizza il livello di persistenza relazionale / oggetto Hibernate per l'interazione con il database, hai la possibilità di utilizzare qualsiasi database supportato da Hibernate per il repository del tuo progetto. L'opzione in bundle è il leggero database Java Hypersonic (ora chiamato HSQLDB); tuttavia, abbiamo utilizzato Oracle 9i come database del nostro repository. Per configurare questo database, abbiamo dovuto modificare il file xplanner.propertiesrimuovendo il commento dalle proprietà Oracle già definite. Avevamo anche bisogno di modificare il build.xmlfile per incorporare il driver del thin database Oracle. Una volta configurato, puoi creare la tua distribuzione di XPlanner. Ciò comporta l'esecuzione di Ant per produrre un archivio Web distribuibile (WAR) come segue:

ant install.db.schema ant build.war 

Distribuisci il file di archivio Web risultante ( xplanner.war) al tuo motore servlet preferito e quindi vai a URL // your-server: your-port / xplanner / (usando l'utente predefinito "sysadmin" e la password "admin") per ispezionare i risultati!

Integrazione con il tuo ecosistema

La maggior parte degli ambienti di sviluppo contiene già un sistema di tracciamento dei bug, forum di collaborazione, sistemi di sicurezza, archivi di standard, ecc. Sebbene sia utile come strumento autonomo, il valore di XPlanner può essere migliorato tramite le sue funzionalità di integrazione semplici e potenti. XPlanner include, ad esempio, la capacità di supportare il rendering del linguaggio dello sviluppatore in un campo di descrizione, come bug: 1001 come collegamento a //mybugzilla/show_bug.cgi?uid=1001. Questo può essere fatto semplicemente aggiungendo twiki.scheme.bug=//mybugzilla/show_bug.cgi?id=al xplanner.propertiesfile. Questa stessa tecnica può essere utilizzata per altri strumenti basati sul Web come viewcvs (xplanner.propertiesmostra alcuni altri esempi). XPlanner dispone anche di un formattatore wiki avanzato (non utilizzato nel nostro progetto) che consente il collegamento automatico alle voci wiki. Ulteriori informazioni sulle estensioni di XPlanner sono disponibili in Risorse.

Nella maggior parte delle organizzazioni, invariabilmente, una qualche forma di server di directory compatibile con LDAP (protocollo di accesso alla directory leggero) fornisce un archivio centralizzato di account di sicurezza degli utenti. Ad esempio, all'interno dell'organizzazione che sponsorizza il nostro progetto, un server LDAP vecchio stile ma funzionale è servito a questo scopo (anche Active Directory di Microsoft supporta ampiamente il protocollo LDAP). È stato piacevole scoprire che XPlanner è semplice e XPlannerLoginModulefacile da integrare con LDAP. Ciò ha comportato l'aggiornamento xplanner.propertiescome segue:

-> Comment out default security #xplanner.security.login.module=com.technoetic.xplanner.security.XPlannerLoginModule

-> Uncomment and edit the LDAP entries from... xplanner.security.login.module=com.technoetic.xplanner.security.jndi.JNDILoginModule

-> ...to: xplanner.security.login.option.roleSearch=(uniqueMember={0})

-> Add user search entries xplanner.security.login.option.userBase=ou=people,o=person

-> And blank out values for xplanner.security.login.option.userPattern= xplanner.security.login.option.userPassword=

Con una rapida ricostruzione e implementazione, la sicurezza dell'autenticazione di XPlanner è stata completamente integrata. L'unico inconveniente era che i nomi utente dovevano ancora essere aggiunti esplicitamente a XPlanner, ma almeno i problemi di password e di appartenenza ai gruppi divennero il problema dell'helpdesk aziendale.

Team, incontra XPlanner

XPlanner visualizza un progetto in base a iterazioni, storie utente e attività. Come prescritto dal paradigma Agile, qualsiasi progetto gestito da XPlanner viene pianificato e tracciato secondo una serie di iterazioni successive. Ogni iterazione consiste in una data di inizio, una data di fine e una raccolta di storie degli utenti da progettare dalla storia alla realtà entro quel lasso di tempo.

Una user story è il principale strumento concettuale utilizzato nello sviluppo agile per comunicare le esigenze dei clienti agli sviluppatori di software. Una volta che una user story viene assegnata a un'iterazione corrente (come parte della pianificazione del rilascio tramite XPlanner), lo sviluppatore cerca ulteriori dettagli per ogni storia collaborando con l'utente (si spera faccia a faccia). Il risultato di questo passaggio è una serie dettagliata di attività di sviluppo, ciascuna delle quali lo sviluppatore registra in XPlanner in base alla relativa user story.

Abbiamo scelto il nostro progetto di flusso di lavoro di e-commerce per l'esecuzione con iterazioni mensili, ciascuna composta da circa 10 storie, con 10-15 attività assegnate a ciascuna storia.

Raccolta delle storie degli utenti

Ogni user story per l'iterazione di un progetto dovrebbe essere una descrizione breve e focalizzata sui risultati di un'esperienza utente raccontata in prima persona (ad esempio, "io poi cerco in base al colore ..."). Questa esperienza è scritta da un utente che sta immaginando il prodotto futuro ideale in azione, quindi potresti pensare a una storia utente come una visualizzazione positiva per il software! L'obiettivo di ogni visualizzazione è fornire informazioni sufficienti affinché uno sviluppatore di software possa stimare lo sforzo richiesto per trasformare quella storia in realtà.

XPlanner cataloga la raccolta di storie utente del tuo progetto, registrando una stima del cliente, del tracker, della priorità e dell'impegno rispetto a ciascuna di esse. La principale difficoltà che troviamo spesso è la raccolta di user story di alta qualità dalle menti degli utenti del sistema. Questo è stato certamente il caso del nostro progetto, poiché si trattava di un significativo cambiamento di paradigma rispetto ai rigidi requisiti di sezione / sottosezione a cui gli utenti erano abituati. Tuttavia, la capacità di utilizzare XPlanner per gestire le storie in modo tale che possano essere facilmente visualizzate e aggiornate dalle parti interessate e che possano essere rapidamente scambiate all'interno e all'esterno di una data iterazione, sicuramente ha aiutato. Una caratteristica interessante, se non funzionale, di XPlanner è la sensazione autentica che offre una storia utente, visualizzando ciascuna sullo schermo come una scheda indice 3 per 5 simile, come mostrato nella Figura 1.

Stima e registra lo sforzo

Lo sviluppo agile prescrive che gli sviluppatori intraprendano la propria definizione degli obiettivi, che implica l'analisi di una user story e la definizione dei compiti tecnici necessari per realizzare quella storia. Uno sviluppatore dovrebbe essere libero di aggiungere ulteriori attività o modificare attività esistenti non appena saranno disponibili ulteriori dettagli sulla storia. XPlanner supporta questa flessibilità fornendo agli sviluppatori l'accesso completo per la definizione e la modifica di un'attività. A ciascuna attività può essere assegnato un tipo, come debito, funzionalità o difetto, per caratterizzare il tipo di lavoro svolto (il debito, ad esempio, è un'attività per pulire "cruft" tecnico lasciato nel sistema da un'iterazione precedente). Le attività sono anche specificate con una disposizione (pianificata o non pianificata), lo sviluppatore accettante, una descrizione del lavoro e una stima del numero di ore ideali necessarie per completare quell'attività.

XPlanner consente a uno sviluppatore di registrare facilmente quanto lavoro è stato investito in una determinata attività o di aggiornare la stima dello sforzo originale (l'originale è ancora memorizzato). Si noti che le stime dello sforzo, come accennato, dovrebbero essere specificate in ore ideali . Un'ora ideale è un'ora in cui lo sviluppatore non subisce assolutamente interruzioni.

Gli sviluppatori dovrebbero anche registrare il numero di ore ideali che investono per una determinata attività. Se incoraggi i tuoi sviluppatori a registrare onestamente le ore ideali (non chiedendo di sapere dove sta andando il tempo), sarai in grado di estrarre alcune metriche utili da XPlanner (discusse di seguito). Abbiamo scoperto, ad esempio, che, nel nostro progetto, un'ora ideale richiedeva circa 1,4 ore trascorse per raggiungere. Queste informazioni possono quindi essere utilizzate per fornire una stima raffinata per le iterazioni successive, il che aiuta a mantenere le promesse del team e le aspettative del cliente nello stesso campo di applicazione.

Metriche e pianificazione per la prossima iterazione

Sei a metà di un'iterazione e il capo vuole sapere "come stiamo guardando". Una risposta logora a questa domanda è "Siamo all'80% circa del percorso". Ovviamente, quell'ultimo 20 percento sembra sempre impiegare molto più tempo del dovuto: l'ultimo 20 percento è l'equivalente software delle verdure noiose a cena che stavi lasciando fino all'ultimo.