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;
-
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.