[ Torna all'inizio della pagina ]

[ Salta alle Ultime Notizie ]

Metodologie Agili

Agile

I nostri team di lavoro utilizzano Metodologie Agili (in particolare Extreme Programming e Scrum)  fortemente basate su dei valori condivisi, espressi nell'Agile Manifesto,:

  • persone e interazioni piuttosto che processi e tool
  • software funzionante rispetto a documentazione completa e dettagliata del sistema
  • collaborazione col cliente piuttosto che negoziazione contrattuale
  • rispondere ai cambiamenti piuttosto che seguire un piano prestabilito

Sulla base di questi valori poggiano una serie di best pratices che realizzano un processo di sviluppo agile e adattativo.

Le pratiche in Flosslab

Ne citiamo solo alcune:

  • Sit together: open space per massimizzare la comunicazione e collaborazione reciproca.
  • Tecnica del Pomodoro: metodo di lavoro che consente di utilizzare il tempo come un utile alleato per realizzare le proprie attività nel modo desiderato e consentire un continuo miglioramento nel proprio processo di lavoro o studio [http://www.tecnicadelpomodoro.it/tdp.html].
  • Standup meeting: brevi riunioni in piedi per presentare cosa si è fatto, cosa si sta facendo e far emergere possibili criticità. Servono a massimizzare la comunicazione all'interno del team.
  • Spike Solutions: veloci soluzioni esplorative per ridurre i rischi e migliorare la conoscenza del problema.
  • Iterazioni brevi: pianificazione del lavoro per iterazioni di una o due settimane, al termine delle quali si verificano i risultati prodotti e si analizzano eventuali punti critici.
  • User Story: la pianificazione avviene attraverso l'uso di UserStory, ovvero funzionalità circoscritte e definite che danno valore al cliente.
  • Controllo e monitoraggio del processo: attraverso l'uso di strumenti di gestione collaborativi riusciamo ad avere giornalmente il controllo del processo e dello stato d'avanzamento dei lavori. Questo ci permette di identificare ancora prima del termine dell'iterazione eventuali impedimenti, consentendoci di prendere preventive azioni correttive.
  • Design incrementale emergente: investiamo quotidianamente nel design senza forzarlo attraverso l'uso di pattern o architetture imposte, ma facendo in modo che questo emerga gradualmente al crescere del sistema e della nostra conoscenza di esso.
  • Testing automatico: forte enfasi sull'uso di test automatici ai vari livelli, puntando a sviluppare i vari sistemi con tecniche di Test Driven Development.

Gli strumenti di gestione

Per la pianificazione, il controllo e monitoraggio del processo facciamo uso di Redmine, uno software di gestione multi progetto, completo di strumenti di comunicazione e lavoro collaborativo, quali Time tracking, Wiki, Forum, Reportistica, integrazione con strumenti di Configuration Management (SVN, CVS, ...).