METODOLOGIA AGILE

In Apuliasoft ci impegniamo per migliorare e rendere innovativi i processi aziendali facendo leva su tecnologie e metodologie all’avanguardia.
La Metodologia Agile va di pari passo con l’eccellenza tecnologica consentendoci di rispondere in modo rapido ed efficiente alle sfide complesse e dinamiche che le aziende devono affrontare consegnando maggior valore in maniera frequente a clienti e stakeholder.

La Metodologia Agile è un approccio iterativo allo sviluppo del software che ci aiuta a massimizzare il valore per i clienti e creare team di lavoro più funzionali e felici. 
Raggiungere tali obiettivi è possibile grazie a una gestione del ciclo di sviluppo del software in modo empirico, attraverso regole, ruoli, eventi e artefatti ben delineati.
Inoltre vengono continuamente valutati i requisiti, i piani e i risultati così da permettere al team da un lato di rispondere rapidamente ai cambiamenti e dall’altro di accelerare lo sviluppo, il rilascio e la manutenzione.


Le opportunità generate dalle pratiche Agile si possono così riassumere:

  • Maggiore allineamento tra Business e IT

  • Time-to-market più veloce

  • Codice di qualità migliore

  • Maggiore competitività sul mercato

Pratiche e benefici

Le pratiche applicabili all’interno della metodologia agile che generano una serie di benefici per il team di sviluppo, sono varie e dipendono dalle necessità dell’azienda, del progetto e dall’approccio del project manager.

  • La comunicazione efficace fra tutti gli attori del progetto consente una buona analisi dei requisiti e riduce i rischi di incomprensione;

  • Le consegne frequenti consentono di ottenere feedback immediati dal cliente e informazioni più precise sui requisiti richiesti;

IMG_1008.JPG
IMG_1021.JPG
  • Il Pair Programming prevede la collaborazione stretta di due programmatori, il “conducente” che conduce la programmazione e “l’osservatore“ che svolge un ruolo di supervisione e di revisione simultanea del codice. Tale procedura ci consente di ottenere un codice di qualità superiore, privo di errori;

  • Il timeboxing consiste nel suddividere il progetto in intervalli di tempo ben precisi dalla durata di pochi giorni o settimane, al fine di effettuare consegne frequenti delle features e ottenere feedback immediati; 

  • Il versionamento consente il controllo delle versioni del software prodotto e rilasciato.

Framework Scrum

Per la gestione dei progetti complessi utilizziamo il framework Scrum, un framework agile, incrementale e iterativo, che ci permette di massimizzare il valore atteso dal business e allo stesso tempo strutturare dei team di lavoro più funzionali e felici.


Lo Scrum team è composto da figure chiave con ruoli ben definiti: 

  • Lo Scrum Master ha il compito di aiutare il team ad essere efficace e a raggiungere gli obiettivi;

  • Il Product Owner ha la responsabilità di massimizzare il ritorno dell’investimento, identificando le feature del prodotto e definendo le priorità;

  • Il team di sviluppo costruisce il prodotto e le sue funzionalità.

Il framework Scrum si basa su tre pilastri fondamentali: trasparenza, ispezione e adattamento. In Apuliasoft i tre pilastri sono alla base di ogni progetto e di ognuna delle iterazioni in cui esso è suddiviso. A loro volta le iterazioni sono caratterizzate da quattro momenti formali:

  • Lo Sprint Planning durante il quale vengono individuate le funzionalità da sviluppare e pianificate le attività;

  • Il Daily Stand Up Meeting il quale consente al team di allinearsi sulle evoluzioni del progetto per il raggiungimento dello Sprint Goal;

  • La Sprint Review durante la quale tramite la demo viene mostrato l’andamento degli sviluppi agli stakeholders per verificare il raggiungimento effettivo degli obiettivi e fornire eventuali feedback;

  • La Sprint Retrospective è la fase finale di ogni interazione ed è caratterizzata da un momento di confronto su processi, pratiche e obiettivi raggiunti.

Per gestire efficacemente ogni progetto il framework Scrum prevede l’adozione di tre artefatti che abilitano i pilastri fondamentali del framework:

  • Il Product Backlog è una lista ordinata e dinamica di item per definire le priorità di ogni Sprint;

  • Lo Sprint Backlog è l’insieme di task da sviluppare per il successivo incremento di prodotto;

  • L’Increment corrisponde al valore prodotto al termine di uno Sprint.

Ciascuno dei tre artefatti include un Commitment, ossia un obiettivo finale da raggiungere al fine di migliorare la trasparenza e misurare i progressi.