Summary

This document discusses the differences between traditional and agile project management methodologies, focusing on the Waterfall method and its benefits compared to agile methodologies. It explains when Waterfall should be utilized in fixed-schedule and task environments, and provides a comparison of the different approaches to project management.

Full Transcript

**Quando utilizzare Waterfall** A causa della sua natura altamente strutturata, Waterfall è meglio utilizzato nei settori in cui è necessario impostare e mantenere compiti e scadenze fisse. Ad esempio, i settori manifatturiero e delle costruzioni sono due attività altamente rigide che si basano su...

**Quando utilizzare Waterfall** A causa della sua natura altamente strutturata, Waterfall è meglio utilizzato nei settori in cui è necessario impostare e mantenere compiti e scadenze fisse. Ad esempio, i settori manifatturiero e delle costruzioni sono due attività altamente rigide che si basano sul completamento tempestivo di fasi dipendenti. Le modifiche a questi piani possono essere costose e, in alcuni casi, impossibili. Di conseguenza, Waterfall viene sfruttato per preservare un processo sequenziale e mantenere la stabilità in tutte le fasi di un progetto. \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_ **Project Management "Tradizionale"** *vs* **Agile Project Management** Desidero adesso portare la vostra attenzione sulla comprensione delle differenze sostanziali tra quello che definiamo Project Management "Tradizionale" e l'Agile Project Management. Chiunque lavori in un tradizionale progetto sequenziale o a cascata (Waterfall in inglese) ha esperienza di estenuanti sessioni di analisi e scrittura dei requisiti. Il prodotto, seppur ancora inesistente, viene rivoltato come un calzino e ogni elemento viene analizzato in dettaglio. Poi si passa alle fasi di documentazione, di design e Pianificazione, fino all'entrata in gioco del ben conosciuto Diagramma di Gantt. Tutte le fasi vengono suddivise in attività e stimate dettagliatamente. A volte capita che alcune fasi si prolunghino più del necessario, ritardando l'inizio di quelle successive. Finalmente, quando gli stakeholder approvano il progetto, si parte con l'implementazione. Ognuno prende in carico la sua parte e al termine passa la palla a un altro compartimento. Questo approccio ha i suoi pro e i suoi contro. Da una parte è un modo di procedere logico e la documentazione è in genere molto dettagliata. Dall'altra non tiene in considerazione il fattore umano -- e gli esseri umani non sono in grado di prevedere il futuro! Il metodo "A Cascata" dà infatti per scontato che tutte le idee e le componenti da implementare siano identificate e codificate prima dell'inizio del ciclo di rilascio, ma spesso accade che le idee più brillanti vengano alla luce nel bel mezzo del processo di implementazione. Quante volte ci si è trovati a dire: "Questo avrei potuto pensarlo in un altro modo", oppure: "Questo avrei potuto farlo meglio"? In genere metodo "A Cascata" privilegia la prevenzione dei cambiamenti: i requisiti, una volta formalizzati, sono modificabili soltanto attraverso procedure di escalation. Se vogliamo estremizzare, può succedere che al rilascio il prodotto sia già obsoleto, in quanto i presupposti su cui si fondava inizialmente non siano più validi. Con la Metodologie Agile (Agile Methodologies), invece, si intende una serie di pratiche di sviluppo software che hanno iniziato ad emergere a partire dai primi anni 2000. Questa metodologia si basa fondamentalmente sul concetto di **iterazione** e di **feedback continuo** che ben si adatta alle dinamiche moderne. Ogni iterazione ha una durata di tempo limitata, generalmente da 1 a 4 settimane. In gergo si dice, impariamo a dire, che ogni iterazione è "Timeboxed". I Principi Agile enfatizzano il rilascio di componenti software funzionanti in maniera più rapida possibile, in modo che l'utente possa testarle e utilizzarle immediatamente, piuttosto che investire tempo in analisi dei requisiti e documentazione. Lo sviluppo Agile si basa su Team di sviluppo cross-funzionali, auto-organizzati e dotati di potere decisionale, dove le gerarchie e le rigide suddivisioni in funzioni sono soltanto un vecchio ricordo del passato. È normale che ogni sviluppatore abbia il suo ambito di interesse e la sua specialità; tuttavia, in questi team di sviluppo non è raro trovare ***Full-Stack Developers***, ovvero sviluppatori in grado di coprire l'intero spettro. Il termine "Agile Methodologies" identifica una famiglia di pratiche che condividono una visione comune, così come esposto nel Manifesto Agile. Altri aspetti importanti, oltre al processo iterativo e incrementale, sono: Trasparenza; Il coinvolgimento continuo del committente; La flessibilità riguardo all'afflusso di nuovi requisiti; La priorizzazione in base al valore di business; I test automatici e sovente l'utilizzo di tecniche quali TDD (Test Driven Development) e BDD (Behaviour Driven Development); I rilasci continui.

Use Quizgecko on...
Browser
Browser