Il Manifesto per lo Sviluppo Agile di Software PDF

Document Details

CostEffectiveThorium1709

Uploaded by CostEffectiveThorium1709

University of Milan

2001

Tags

software development agile methodology project management software

Summary

Il documento presenta il Manifesto per lo Sviluppo Agile di Software, un approccio innovativo per la gestione e lo sviluppo del software. Il documento descrive i 12 principi chiave per affrontare lo sviluppo software e pone l'accento sulle persone, il software funzionante, la collaborazione e la velocità di adattamento.

Full Transcript

**Il *Manifesto per lo Sviluppo Agile di Software*** Il *Manifesto* *per lo Sviluppo Agile di Software* elaborato nel 2001 dai fondatori dell'Agile Alliance poggia le sue origini dalla loro analisi dei punti di forza e dei punti di debolezza del modello precedente, cioè del Project Management "Trad...

**Il *Manifesto per lo Sviluppo Agile di Software*** Il *Manifesto* *per lo Sviluppo Agile di Software* elaborato nel 2001 dai fondatori dell'Agile Alliance poggia le sue origini dalla loro analisi dei punti di forza e dei punti di debolezza del modello precedente, cioè del Project Management "Tradizionale". Tra le loro considerazioni iniziali vi è quella che dichiara che il lavoro di Progetto spazia da "**lavoro definibile**" a "**lavoro ad elevata incertezza**". I progetti con [lavoro definibile] sono caratterizzati da procedure chiare che si sono dimostrate di successo in progetti simili nel passato. Facciamo un esempio semplice. La costruzione di un\'auto, di apparecchiature elettriche o di una casa dopo il completamento della progettazione sono esempi di lavoro definibile. Il campo della produzione e i processi in essa coinvolti sono solitamente ben compresi e presentano generalmente bassi livelli di incertezza di esecuzione e di rischio. Nuove progettazioni, risoluzione di problemi e lavori mai svolti in precedenza sono esempi di lavoro esplorativo. Richiedono la collaborazione di esperti in materia per risolvere problemi e trovare una soluzione. Tra le persone che si trovano ad affrontare lavori a elevata incertezza si annoverano ingegneri di sistemi software, progettisti di prodotti, medici, insegnanti, avvocati e molti ingegneri che si occupano di risoluzione dei problemi. Dal momento che il lavoro più definibile è automatizzato, i Team di Progetto si occupano perlopiù di progetti con lavoro a elevata incertezza, che richiedono le tecniche che esploreremo qui in seguito. Ricordiamoci che i progetti a "elevata incertezza" hanno alti tassi di cambiamento, complessità e rischio. Quindi, queste caratteristiche possono generare problemi ai tradizionali approcci predittivi (Project Management Tradizionale), che mirano a determinare anticipatamente gran parte dei requisiti e che tengono sotto controllo i cambiamenti attraverso un processo di richiesta di modifica. Al contrario, gli approcci Agili sono stati creati per esplorare la fattibilità in cicli brevi e adattarsi rapidamente sulla base di valutazioni e feedback. La stesura del Manifesto si apre con questa dichiarazione di [valori]: *Stiamo scoprendo modi migliori di creare software, sviluppandolo e aiutando gli altri a fare lo stesso.* *Grazie a questa attività siamo arrivati a considerare importanti:* * Gli individui e le interazioni più che i processi e gli strumenti;* * Il software funzionante più che la documentazione esaustiva;* * La collaborazione col cliente più che la negoziazione dei contratti;* * Rispondere al cambiamento più che seguire un piano.* *Ovvero, fermo restando il valore delle voci a destra, consideriamo più importanti le voci a sinistra!!* Il passo successivo per i 17 fondatori fu elaborare una definizione di questi valori che hanno dato vita ai dodici principi chiarificatori del Manifesto Agile. **I 12 Principi Agile** Qui di seguito vi enuncio i 12 Principi Agile, cosi come sono stati definiti dai fondatori: 1.) La nostra massima priorità è soddisfare il cliente rilasciando software di valore, fin da subito e in maniera continua. 2.) Accogliamo i cambiamenti nei requisiti, anche a stadi avanzati dello sviluppo. I processi agili sfruttano il cambiamento a favore del vantaggio competitivo del cliente. 3.) Consegniamo frequentemente software funzionante, con cadenza variabile da un paio di settimane a un paio di mesi, preferendo i periodi brevi. 4.) Committenti e sviluppatori devono lavorare insieme quotidianamente per tutta la durata del progetto. 5.) Fondiamo i progetti su individui motivati. Diamo loro l\'ambiente e il supporto di cui hanno bisogno e confidiamo nella loro capacità di portare il lavoro a termine. 6.) Una conversazione faccia a faccia è il modo più efficiente e più efficace per comunicare con il team ed all\'interno del team. 7.) Il software funzionante è il principale metro di misura di progresso. 8.) I processi agili promuovono uno sviluppo sostenibile. Gli sponsor, gli sviluppatori e gli utenti dovrebbero essere in grado di mantenere indefinitamente un ritmo costante. 9.) La continua attenzione all\'eccellenza tecnica e alla buona progettazione esaltano l\'agilità. 10.) La semplicità - l\'arte di massimizzare la quantità di lavoro non svolto - è essenziale. 11.) Le architetture, i requisiti e la progettazione migliori emergono da team che si auto-organizzano. 12.) A intervalli regolari il team riflette su come diventare più efficace, dopodiché regola e adatta il proprio comportamento di conseguenza. Adesso possiamo quindi più facilmente comprendere il perché, prima che di Strumenti e Tecniche, sia del tutto indispensabile capire, assimilare e condividere, e poi sapere mettere in pratica, quella che è definita: "La Mentalità Agile". L'*Agile* è, quindi, una Mentalità, un modo di pensare (un *mind-set*): - definita da Valori dell'Agile Manifesto; - guidata dai Principi dell'Agile Manifesto; - ed espressa da molte pratiche diverse. Possiamo quindi dire che l\'insieme di mentalità, valori e principi definisce un approccio agile. E anche che i vari approcci agili attualmente in uso condividono radici comuni con la mentalità, i valori e i principi agili originari. È necessario ancora chiarire che gli approcci agili e i metodi agili sono termini onnicomprensivi che coprono una varietà di schemi di riferimento e metodi. Così come in questa fase iniziale del nostro Corso, il termine inglese ***Agile*** è da considerarsi come un termine generico che si riferisce a qualsiasi tipo di approccio, tecnica, schema di riferimento, metodo o pratica che soddisfi i valori e i principi dell\'Agile Manifesto.

Use Quizgecko on...
Browser
Browser