Cerca nel blog

martedì 1 maggio 2012

Cosa è lo Sprint

Cosa è lo Sprint

Il cuore di Scrum è lo Sprint, cioè una iterazione che dura da due settimane ad un mese a seconda della complessità e quindi della durata complessiva del progetto.
Secondo la mia esperienza se il numero di persone che formano il team è superiore a 4-5 e se il team non è affiatato e esperto della metodologia è molto difficile gestire sprint che durano meno di tre settimane.

Per un progetto abbastanza complesso con un team di 6-8 persone la durata di 4 settimane secondo me è il giusto compromesso fra la velocità di deliverare nuove funzionalità e l'efficienza dell'attività di sviluppo. Bisogna tenere presente infatti che anche se il team è collaudato e affiatato l'impegno che bisogna dedicare alla fase di test (verifica e validazione interna del software), deploy e (molto probabile) bug fixing del progetto scende raramente sotto i 3-4 giorni, occupando quasi interamente la 4-ta settimana.  

Tutti gli Sprint devono utilizzare lo stesso framework Scrum e tutti gli Sprint devono consegnare un incremento del prodotto finale che è potenzialmente rilasciabile al Cliente.

L'ultimo giorno dello Sprint il team è dedicato alla riunione di fine sprint (Sprint Retrospective) dove il Team (e solo il team) si interroga sugli aspetti positivi e negativi che sono emersi durante l'ultimo Sprint e propone al Project Manager delle contromisure per arginare o eliminare le cause dell'inefficienza rilevata. Il tempo da dedicare a questa importante riunione varia a seconda della complessità del progetto, dalla maturità del team e dal grado di affiatamento delle risorse, comunque nella norma una riunione di 20 minuti è sufficiente a individuare le criticità e concordare le azioni da intraprendere per superarli.

Lo Sprint successivo inizia immediatamente dopo la fine del precedente attraverso una riunione (Sprint Planning Meeting) che coinvolge tutto il team, durante la quale il Product Owner spiega al team gli obiettivi che devono essere conseguiti e chiarisce con sufficiente grado di dettaglio le funzionalità che devono essere realizzate durante il prossimo Sprint.
Il Product Owner deve preparare la riunione individuando, insieme al Cliente, le funzionalità la cui realizzazione ha maggiore priorità per la buona riuscita del progetto fra quelle riportate nel Product Backlog. Il product owner deve quindi prioritizzare le attività riportate nel Product Backlog insieme al Cliente e assicurarsi che quelle a più alta priorità, quindi papabili di essere sviluppate nell'imminente Sprint, siano state definite con un sufficiente grado di dettaglio che non lasci spazio ad interpretazioni ambigue da parte del team.
E' sempre consigliabile, compatibilmente con le esigenze del Cliente, affrontare lo sviluppo delle funzionalità con un più alto grado di rischio dal punto di vista tecnologico.

Scrum offre quattro artefatti principali per supportare il Project Manager nella gestione dello Sprint:
  • Product Backlog: è l’elenco di tutto ciò che potrebbe essere necessario al prodotto, ordinato per priorità;
  • Sprint Backlog: è l'elenco delle attività che il team deve effettuare per trasformare la parte di Product Backlog selezionata per lo Sprint in corso in un incremento di prodotto potenzialmente rilasciabile e quindi vendibile;
  • Burndown: misura la quantità di attività residue associate al Backlog nel corso del tempo;
  • Release Burndown: misura la quantità residua di Product Backlog rispetto al piano di rilascio (Release Plan).

sabato 21 gennaio 2012

cosa è Scrum

Cosa è Scrum

Scrum è una metodologia agile di sviluppo del software molto simile ad Extreme Programming. La metodologia prevede di dividere il progetto in blocchi rapidi di lavoro (Sprint) alla fine dei quali deve essere prodotta una versione funzionante al cliente equipaggiata con le funzionalità concordate prima dell'avvio dello Sprint con il Committente.
La metodologia fornisce indicazioni su come definire le funzionalità da sviluppare nell'immediato futuro (Backlog), su come organizzare riunioni giornaliere del team di sviluppo (Scrum Meeting) per verificare cosa si è fatto ieri e cosa si farà oggi.

Scrum è basato su un insieme di prassi accettate nel settore industriale, utilizzate e collaudate da decenni. Si tratta di una teoria di processo con base empirica. Scrum è stato impiegato per sviluppare prodotti complessi sin dai primi anni ’90. Scrum non è un processo o una tecnica bensì un framework all’interno del quale possiamo utilizzare vari processi e varie tecniche. Il ruolo di Scrum è quello di far emergere l’efficacia relativa delle pratiche di sviluppo adottate, in modo da poterle migliorare, fornendo nel contempo un framework adatto allo sviluppo di prodotti complessi. Scrum si basa sulla teoria dei controlli empirici di processo. Utilizza un metodo iterativo ed un approccio incrementale per ottimizzare la prevedibilità ed il controllo del rischio. Sono tre i pilastri che sostengono ogni implementazione del controllo empirico di processo.

La metodologia Il framework Scrum è costituito da una serie di Scrum Team e dai ruoli a essi associati; Time-Box, Artefatti e Regole. Gli Scrum Team sono concepiti per ottimizzare la flessibilità e la produttività. Proprio per questo sono autoorganizzati, cross-funzionali e lavorano basandosi su iterazioni. Ogni Scrum Team necessita di tre ruoli:
  • Scrum Master: responsabile del fatto che il processo venga compreso e seguito dal team;
  • Product Owner: responsabile di massimizzare il valore del lavoro che il Team Scrum esegue;
  • Team: fa il lavoro. Il Team è formato da sviluppatori, funzionali earchitetti con tutte le competenze necessarie per tradurre le richieste del Product Owner in una porzione potenzialmente rilasciabile di prodotto entro la fine dello Sprint.
Scrum impiega intervalli di tempo definiti (Time-Boxes) per creare regolarità.
Le attività fondamentali per la corretta applicazione della metodologia di sviluppo agile sono:
  • Release Planning Meeting
  • Sprint Planning Meeting
  • Sprint
  • Daily Scrum Meeting
  • Sprint Review
  • Sprint Retrospective
Punti di forza
  • Consente di lavorare in modo produttivo anche in situazioni particolarmente caotiche e confuse
  • È fortemente orientato ai risultati concreti, ed alla gestione del cambiamento
  • Porta ad un forte coinvolgimento del committente
  • Porta ad una assunzione di responsabilità del gruppo di lavoro
  • Favorisce la creazione di team coesi
  • Favorisce la condivisione della conoscenza all'interno del team
per approfondimenti potete visionare i seguenti siti:





  • mountaingoatsoftware
  • scrumalliance.org
  • scrum.org
  • mercoledì 20 luglio 2011

    Beefly - la gestione documentale su Alfresco diventa Touch

    Beefly è un gestore documentale web based realizzato dalla società di Information Tecnology QBR (www.qbreng.it) sulla piattaforma di CMS Open Source Alfresco.

    Beefly è dotato di diverse interfacce utente:

    Beefly Touch: interfaccia semplice e intuitiva che permette all’utente di archiviare i documenti da qualsiasi scanner usb compatibile con il protocollo JTwain  e consultare i documenti archiviati attraverso un monitor Touch Screen.


    Beefly Web: si tratta di una personalizzazione di Alfresco Share (Spring Surf). Permette un approccio collaborativo alla gestione dei documenti aziendali. Si tratta dell’intefaccia utente privilegiata per l’esecuzione dei workflow documentali implementati nel gestore documentale (Fatturazione Attiva e Passiva, Gestione dell'Ordine di Acquisto ecc).



    Beefly mobile: permette all'utente di navigare l’archivio e consultare sul proprio dispositivo Android i documenti

    ool Web permette all'utente di aggiornare a caldo il Data model di Alfresco senza dover riavviare il Tomcat.
    L'utente può:

    1. aggiungere una nuova tipologia documentale al repositoty (Custom Type)

    2. aggiungere ad una tipologia documentale creata un nuovo attributo di tipo Intero, Stringa o di tipo Data.

    3. Aggiornare a caldo il Data Model di Alfresco archiviato nella cartella Data Dictionary

    Alcuni Screenshot dell'applicazione:






    Beefly Solution - Generatore di Offerte Commerciali e Consuntivi: permette agli addetti di una PMI di gestire il processo di redazione delle Offerta commerciali e la creazione dei S.A.L. (Consuntivi) partendo dalle Offerte accettate dal Cliente. Il flusso delle attività è guidato da un processo approvativo delle Offerte e dei Consuntivi prodotti ad opera del management aziendale.



    venerdì 15 luglio 2011

    DAta MOdel per Alfresco

    A.DA.MO. sta per Alfresco DAta MOdel ed è un Tool completamente Web Based che permette ad un utente che possiede un profilo di amministratore sul CMS Alfresco di creare e modificare il Data Model del repository documentale semplicemente attraverso una interfaccia web.
    Il Tool è stato progettato e realizzato da QBR Engineering (www.qbreng.it) e rilasciato Open Source su Sourceforge (http://sourceforge.net/projects/adamo-project/).


    Il Tool Web permette all'utente di aggiornare a caldo il Data model di Alfresco senza dover riavviare il Tomcat.
    L'utente può:

    1. aggiungere una nuova tipologia documentale al repositoty (Custom Type)

    2. aggiungere ad una tipologia documentale creata un nuovo attributo di tipo Intero, Stringa o di tipo Data.

    3. Aggiornare a caldo il Data Model di Alfresco archiviato nella cartella Data Dictionary

    Alcuni Screenshot dell'applicazione:















    Il Tool è stato testato sulla versione di Alfresco 3.4b Community e può essere scaricato dal seguente link: Scarica da qui