Agile (IT)

From Systems analysis Wiki
Jump to navigation Jump to search

Metodologia di sviluppo flessibile — termine generale per un'ampia serie di approcci e pratiche basati sui valori del Manifesto Agile per lo sviluppo del software e sui 12 principi che ne costituiscono il fondamento. Tra le metodologie flessibili rientrano in particolare la programmazione estrema, DSDM, Scrum, FDD, BDD e altre.

Tra i metodi «flessibili» rientrano in particolare XP, DSDM, Scrum, FDD, BDD.

La maggior parte dei metodi «flessibili» è orientata alla minimizzazione dei rischi attraverso la suddivisione del tempo di sviluppo in iterazioni (periodi) — intervalli di tempo di durata relativamente breve. Un'iterazione dura solitamente due o tre settimane, si presenta come un progetto software in miniatura e include i seguenti compiti necessari per ottenere un piccolo incremento funzionale: pianificazione, analisi dei requisiti, progettazione, programmazione, test e documentazione. Di norma una singola iterazione non è sufficiente per il rilascio di una nuova versione del software, ma si presuppone che al termine dell'iterazione la nuova versione sia pronta per il rilascio. Al termine dell'iterazione il team rivaluta le priorità di sviluppo.

I metodi «flessibili» si basano sulla comunicazione faccia a faccia. La maggior parte delle persone lavora nello stesso ufficio, talvolta chiamato in inglese bullpen. Nell'ufficio lavora almeno il «committente» (in inglese product owner) — il committente dello sviluppo software o il suo rappresentante, che definisce i requisiti del software. Il ruolo del «committente» può essere svolto dal project manager, dal business analyst o dal cliente. Nell'ufficio possono lavorare anche tester, designer di interfacce, redattori tecnici e manager.

Le metriche dei metodi «flessibili» sono legate alla funzionalità del software prodotto. Gli utenti dei metodi «flessibili» (rispetto agli utenti di altri metodi) comunicano di più e scrivono meno documentazione, motivo per cui vengono considerati meno disciplinati.