L'obiettivo professionale di uno sviluppatore di software è di rilasciare un prodotto di massima utilità (valore di business) per i suoi clienti. La maggior parte dei progetti però falliscono o falliscono nel fornire il valore atteso. La tendenza di sviluppo caotico propria dei progetti ad alta complessità come quelli di software è colpevole in buona parte di questi fallimenti. E, tutto ciò, malgrado il fatto che abbiamo avuto un'alternativa: la metodologia.
Le metodologie impongono per lo sviluppo del software un processo disciplinato, con lo scopo di rendere lo sviluppo del software più prevedibile ed efficiente. Le metodologie tradizionali danno una grande enfasi alla pianificazione, prendendo spunto da altre discipline ingegneristiche. Però queste metodologie non si sono distinte per aver portato a risultati molto soddisfacenti e non sono neanche molto popolari.
In reazione a queste metodologie, negli ultimi anni è comparso un nuovo gruppo di metodologie. Conosciute all'inizio come metodologie leggere, adesso il loro nome affermato è di metodologie agili. I principi e i valori dei metodi e delle metodologie agili vengono in aiuto alle squadre di sviluppatori per fermare il ciclo di sviluppo inflazionistico del software e per raggiungere gli obiettivi di focalizzarsi su tecniche semplici. In questo momento esistono vari processi software agili proposti e parzialmente validati: SCRUM, Crystal, Feature Driven Development, Adaptive Software Development
(ADP) e soprattutto Extreme Programming.
Queste metodologie hanno caratteristiche comuni come:
lo sviluppo iterativo ed evolutivo timeboxed, la pianificazione adattiva
e l'enfasi sul rilascio evolutivo-incrementale.
Loro obbiettivo strategico è sempre la manovrabilità.
In un mondo in cui cambiamenti rapidi nella tecnologia utilizzata ed esigenze del business estremamente dinamiche sono all'ordine del giorno, è quasi impossibile pianificare e programmare dal principio in modo accurato un progetto software non banale. Esistono proposte molto interessanti per la conduzione agile dei processi come ad esempio Extreme Project Management (XPM) che descrive come sviluppare progetti nel tempo e col budget pianificati agendo soltanto sui requisiti (scope) del progetto.
Il corso si prefigge l'obiettivo principale di fornire al partecipante gli elementi di base per capire l'attuale paesaggio delle metodologie agili. I partecipanti al corso saranno in grado di acquisire ed approfondire le conoscenze necessarie sui principi e i valori promossi da queste metodologie per ottenere il massimo beneficio dal loro utilizzo.
|