ARCHIVIO COSTOZERO

 
Cerca nel sito



Vai al numero in corso


  Dicembre 2012

Articoli - n° 5 Giugno 2004
 



UNIONE DI BENEVENTO - Home Page
stampa l'articolo stampa l'articolo

L’AOSIS E LE NUOVE FRONTIERE DELLA SICUREZZA
SETTORE IGNORATO DAL LEGISLATORE

ENTI RESPONSABILI ANCHE IN SEDE PENALE
IL DECRETO LEGISLATIVO 231/01

AGILE SOFTWARE DEVELOPMENT
LA CAPACITA' DI REAGIRE AL CAMBIAMENTO

AGILE SOFTWARE DEVELOPMENT
LA CAPACITA' DI REAGIRE AL CAMBIAMENTO
Rapidità con i nuovi metodi, ma si affaccia il pericolo di "cowboy coding"

Gerardo Canfora e Corrado Aaron Visaggio
RCOST - Research Centre on Software Technology - Università degli Studi del Sannio
gerardo.canfora@unisannio.it
visaggio@unisannio.it

Sin dalla nascita l'industria del software è stata costantemente alla ricerca di metodi e strumenti capaci di supportare la produzione di sistemi di qualità nel rispetto dei tempi e dei costi pianificati. Mutuando idee ed esperienze da altri settori produttivi, tale ricerca si è subito indirizzata verso metodologie e processi rigorosamente definiti, di natura prescrittiva, con grandi quantità di documentazione, che fanno della possibilità di prevenire i cambiamenti, e i rischi ad essi associati, il loro obiettivo principale. Fra le caratteristiche fondamentali di tali processi vi sono:
- l'utilizzo di approcci top-down, che partono dall'analisi di un'organizzazione per individuarne le pratiche correnti e le esigenze, tradurle in modelli dei dati e dei processi di business, per poi passare allo sviluppo delle applicazioni software;
- l'applicazione del metodo analitico, fondato sull'analisi e la modellazione di tutti gli aspetti, sia relativi ai dati sia procedurali, della realtà applicativa di interesse, nella convinzione che con un adeguato sforzo di analisi sia sempre possibile comprendere completamente le esigenze dell'utente e quindi costruire il sistema giusto "al primo colpo";
- l'assunzione di una visione di lungo termine, resa necessaria, fra l'altro, dagli ingenti investimenti sia economici che in termini di tempo, richiesti dagli approcci analitici di tipo top-down.
Tale visione, che nel seguito chiameremo "plan-driven", è emersa dalla rivoluzione dei cosiddetti metodi strutturati e, passando attraverso l'epoca del CASE (Computer Aided Software Engineering), è poi continuata con il movimento del "Software Process Improvement", sino a giungere alla definizione di schemi standardizzati per l'assessment e la certificazione dei processi di produzione del software, primi fra tutti il modello CMM (Capability Maturity Model) del Software Engineering Institute (http://www.sei.cmu.edu). Tuttavia, l'industria del software presenta molti aspetti peculiari legati al contesto produttivo e a quello di fruizione delle applicazioni. La risorsa umana, tramite competenze e conoscenze, ma anche con la sua motivazione e le sue emozioni, è il fulcro dell'intero processo di produzione del software. A ciò va aggiunto che le applicazioni software, nella maggior parte dei casi, si calano in contesti organizzativi e sociali complessi, e quindi difficili da modellare in maniera esaustiva, nonché in costante evoluzione, il che rende vano ogni sforzo di prevenzione dei rischi. Tutto ciò ha portato spesso al fallimento dell'approccio "plan-driven", soprattutto per sistemi di grandi dimensioni o relativi a domini applicativi scarsamente compresi e ad alto tasso di cambiamento. Per capire la portata di tali fallimenti, si pensi che l'ultimo rapporto dello Standish Group (http://www.standishgroup.com), un primario gruppo di consulenza del settore IT che sin dal 1995 raccoglie e analizza dati relativi all'industria del software, riporta che il 23% dei progetti software sono cancellati prima della conclusione, il 49% fa registrare ritardi e lievitazione dei costi rispetto alla pianificazione originale, e solo il 28% si conclude con successo. È questo lo scenario in cui irrompono i cosiddetti metodi agili che, contrariamente a quelli "plan-driven" fanno della capacità di reagire al cambiamento, piuttosto che di prevenirlo, e del minimalismo dell'analisi in favore di cicli di sviluppo brevi con il continuo coinvolgimento degli utenti, i loro punti di forza. Sebbene siano stati proposti diversi metodi agili, fra i quali citeremo ad esempio il più noto di tutti, l’eXtreme Programming, XP (www.extreme- programming.org), oppure Crystal (alistair.cockburn.us/crystal/crystal.html), e ancora Dynamic Systems Development Method (www.dsdm.org), Feature Driven Development (all’indirizzo www.nebulon.com/articles/fdd/fddoverpres.html), e Scrum (jeffsutherland.org/scrum), tutti implementano comunque i quattro principi fondamentali raccolti nel manifesto del 2001 (agilemanifesto.org):
1. Individui e iterazioni piuttosto che processi e strumenti. Lo sviluppo "plan-based" si basa sulla descrizione di processi che definiscono rigorosamente le attività da realizzare e le procedure da seguire. In opposizione a questi, i metodi agili propongono iterazioni continue quale strumento per migliorare, in modo incrementale, il software prodotto. Si preferisce fare affidamento sulle competenze individuali e la capacità di comunicazione e cooperazione del gruppo, piuttosto che sugli strumenti di supporto all'esecuzione del processo.
2. Software funzionante al posto di una documentazione onnicomprensiva. La filosofia agile ha come obiettivo principale quello di rilasciare quanto prima possibile versioni del prodotto funzionante e rispondente ai requisiti del committente. Questo comporta una riduzione molto drastica della documentazione di progetto.
3. Collaborazione del committente piuttosto che negoziazione del contratto. Anzichè negoziare con il committente l'architettura del prodotto finale, il documento dei requisiti e il test d'accettazione del prodotto, la filosofia agile suggerisce di rendere il committente partecipe dell'attività di sviluppo.
4. Risposte ai cambiamenti piuttosto che rispetto dei piani. Lo sviluppo del software guidato "plan-driven" non consente di rispondere adeguatamente ai cambiamenti che alcuni contesti impongono ai requisiti, già durante lo sviluppo del software. I modelli di processo incrementali cercano di mediare tra la necessità di rispondere a contesti instabili e quella di seguire un processo definito.
Indubbiamente i principi alla base dei metodi agili, e gli strumenti che i diversi metodi hanno definito per la loro realizzazione pratica, prime fra tutte le oramai famigerate dodici pratiche di XP, appaiono molto invitanti e questo spiega il loro grande successo. Spesso, però, dietro alla dichiarata adozione di un approccio agile si nasconde semplicemente l'illusione che sia possibile fare a meno della sovrastruttura prescrittiva tipica dei metodi "plan-driven", senza peraltro comprendere e realizzare fino in fondo tutti i principi e le pratiche dell'approccio e i cambiamenti organizzativi e culturali che ne conseguono. Così, molte aziende vedono con favore la riduzione, se non la totale eliminazione, della documentazione, ma ben poche sono disposte a investire nelle pratiche del "pair programming" e della "ownership" collettiva del codice.
Molte aziende sono felici di ridurre le attività di analisi per passare subito allo sviluppo del codice, ma poche sono quelle che fanno corrispondere a tale riduzione l'adozione di un approccio di sviluppo "test driven", della pratica del "refactoring" e dell'integrazione quotidiana. All'abolizione della pianificazione di lungo periodo raramente fanno riscontro la pratica del "planning gaim" quale strumento per la negoziazione e, cosa fondamentale, la partecipazione attiva del committente al processo di sviluppo. Per dirla in breve, spesso dietro alla dichiarata adozione di un approccio agile si nasconde un salto indietro verso la vecchia pratica del "code and fix", ossia della totale assenza di metodo. I metodi agili hanno sicuramente la possibilità di rimuovere alcuni degli aspetti deleteri dello sviluppo "plan-based".
Certo rimane da capire quali siano le tipologie e le dimensioni progettuali cui si adattano meglio, e questo richiederà tempo e indagini empiriche. Sin d'ora è però possibile mettere in guardia le aziende a non confondere sviluppo agile con "cowboy coding".

Download PDF
scarica il files
Giugno - 2.850 Kb
 

Cheap oakleys sunglassesReplica Watcheswholesale soccer jerseyswholesale jerseysnike free 3.0nike free runautocadtrx suspension trainingbuy backlinks
Direzione e Redazione: Assindustria Salerno Service s.r.l.
Via Madonna di Fatima 194 - 84129 Salerno - Tel. (++39) 089.335408 - Fax (++39) 089.5223007
Partita Iva 03971170653 - redazione@costozero.it