Project Management Software – La Metodologia Agile (parte 1/2)
Metodologia Agile, la storia.
Nel 2001 un gruppo di esperti di metodi per la gestione di progetti software si riunì per aderire ad un comune insieme di principi guida per lo sviluppo software, definendo così il "manifesto per lo sviluppo Agile di Software" che potete trovare a questo link http://agilemanifesto.org/iso/it/
Dal punto di vista della sola definizione, agile è un framework concettuale incentrato sul rilascio iterativo ed incrementale di software funzionante, guidato dal cliente. La parte iterativa suggerisce il fatto che stiamo ripetendo, o iterando, un ciclo di vita completo di sviluppo su un breve periodo di tempo predefinito. Con ognuna di queste iterazioni vengono rilasciati dei sottoinsiemi funzionanti ovvero incrementi di funzionalità.
Metodi Agile
Esistono diversi metodi di tipo Agile, tra i più conosciuti ci sono l’extreme programming (XP), il lean software development, Crystal, DSDM (Dynamic Systems Development Method), Scrum e FDD (Feature-driven development). Ecco una lista delle principali differenze tra ogni metodo:
- Lean: si avvicina più al cliente, ha dei cicli più corti, elimina gli sprechi, decide il più tardi possibile, dà più potere al team.
- DSDM: dà al team il potere decisionale, pone enfasi sul rilascio frequente del prodotto, integra il testing lungo tutto il processo, promuove la collaborazione e la cooperazione tra gli stakeholders.
- FDD: centra lo sviluppo sulle funzionalità, crea modelli per ogni area di un diverso dominio.
- Crystal: mette in risalto le persone, sfrutta tecniche di altri metodi, migliora le comunicazioni, adatta il processo stesso accorciandolo o allargandolo.
- Scrum: gestisce una lista dei requisiti secondo le priorità degli stessi creando un backlog di prodotto, collabor tramite degli standup meeting giornalieri, mostra il prodotto tramite completazioni iterative, usa la retrospettiva per correggere il processo.
- XP: pone enfasi sul valore della comunicazione, la semplicità, il feedback ed il coraggio; utilizza tecniche specifiche e pratiche collaborative.
Anche il Rational Unified Process (RUP) è un framework di processo che si basa sullo sviluppo iterativo ed incrementale. Il RUP può essere configurato per supportare un processo agile, un’implementazione è, ad esempio, l’Agile Unified Process (AUP). Ad ogni modo la community agile spesso evita il RUP in quanto visto come non necessario e pesante.
C’è da notare che tutti questi processi danno riasalto all’aspetto umano come parte dello sviluppo software. E’ importante capire le motivazioni che stanno dietro alla metodologia agile. Agile infatti è nato a causa della frustrazione dovuta al voler applicare dei delle ridondanze non necessarie.
L’extreme programming, pianificato in larga parte da Kent Beck e Ward Cunningham, è probabilmente il processo agile più conosciuto. Questo processo è uscito dall’interesse dei programmatori nel massimizzare il tempo che possono dedicare alla scrittura del codice, rispetto al tempo in cui è necessario fare altre cose potenzialmente rilevanti per rilasciarlo. Ad esempio il tempo in cui si tengono delle riunioni o si redaggono documenti. Questo non vuol dire che XP ignori i non programmatori, anzi.
XP ha iniziato a guadagnare popolarità alla fine degli anni 90, circa 10 anni dopo la sua creazione, Kent Beck ha pubblicato il secondo libro su XP che ha dimostrato un considerevole raffinamento dei principi guida dietro il processo. Passati gli anni, il focus sui programmatori si è spostato più verso il capire come mischiare queste pratiche e farle funzionare in un numero maggiore di organizzazioni. Oggi XP è un processo ragionevolmente maturo, ben capito dai molti team che sono riusciti a sostenerlo per un lungo periodo di tempo.
XP ha resistito fino ad oggi anche se non se ne sente più parlare molto adesso. Molti team infatti lo hanno abbandonato in quanto non sono riusciti a farlo funzionare. Altri lo hanno invece utilizzato e hanno iniziato ad applicarlo nel miglior modo possibile, imparando come rilasciare software su base settimanale.
Ad un certo punto XP probabilmente inizierà ad affievolirsi, in quanto altri approcci migliori stanno prendendo piega, ma resterà l’importante contributo che ha dato in quanto a specifica di tecniche pratiche come lo sviluppo test-driven, il refactoring e l’integrazione continua.
[...continua...parte 2/2]












Certificazione CAPM
Certificazione PMP


[...] [....continua da parte 1/2] [...]