Il metodo Waterfall è certamente praticabile ed è filosoficamente valido come qualsiasi altro approccio. Ricorda che Waterfall è in circolazione da molto più tempo di Agile, ma nota che questo non è un argomento per affermare se una metodologia è migliore di un'altra.
Si utilizza il metodo Waterfall quando si ha una comprensione molto chiara dell'intero dominio problematico e di ciò che il cliente desidera ottenere in un pacchetto software. Probabilmente hai sottoscritto un prezzo fisso al momento della stipula del contratto e il tuo cliente comprende che non può deviare da alcun requisito concordato. Il tuo processo è strettamente quello che attraversa una serie di firme tra le varie fasi di sviluppo, ed è spesso il caso in cui ogni fase è completata da un team diverso - a volte anche da una società diversa - ognuna delle quali potrebbe non necessariamente contatto con gli altri. Spesso vedi Waterfall applicato con buoni risultati nei progetti militari e governativi quando vengono offerti ad appaltatori esterni. Dove Waterfall e altri approcci simili hanno una cattiva reputazione è quando gli sviluppatori incontrano problemi, come una stima scadente, pianificazioni pianificate senza tempo di contingenza o una comprensione scarsa o incompleta del dominio problematico. Il problema non è mai veramente un difetto della metodologia, ma nella sua applicazione.
Il confronto tra Agile e qualsiasi metodologia è falso. Agile non è una metodologia, è una filosofia, o forse sarebbe meglio dire che è un termine generico che rappresenta un modo diverso di vedere come si sviluppa lo sviluppo di software. Una metodologia è semplicemente uno strumento e come tale il suo valore sarà sempre inferiore agli individui e alle interazioni che sono al centro di ciò che significa essere Agili .
Qualcuno pensa davvero che ridurre al minimo i cambiamenti nel software sia un'opzione praticabile per coloro che desiderano fornire software prezioso?
Ogni opportunità di minimizzare il cambiamento è preziosa sia per lo sviluppatore che per il cliente. Le modifiche possono causare lo slittamento di una pianificazione o l'esclusione delle funzionalità per soddisfare una pianificazione. È il modo in cui gestisci gli effetti del cambiamento che incidono sul valore dei tuoi progetti.
Oppure la domanda su quale tipo di pratiche funziona meglio nelle nostre situazioni per gestire l'inevitabile cambiamento?
Le tue pratiche potrebbero aiutarti nella gestione del cambiamento o potrebbero ignorare completamente il cambiamento. Ciò che conta è la combinazione delle tue pratiche di sviluppo, la gestione delle tue relazioni con i tuoi clienti e se queste cose collaborano efficacemente per tutte le parti coinvolte.
Quelli di noi che sono a tutti gli effetti Agile capiscono che scegli un metodo che funziona per te. Se ti piace un approccio particolare, seguilo. Se non si adatta perfettamente alle tue esigenze, modificalo. Il modo in cui costruisci il software si riduce davvero a cercare di sfruttare al meglio le risorse che hai a portata di mano e a minimizzare quelle pratiche che possono portare il tuo progetto verso il fallimento, e spesso scopri che devi cambiare il tuo metodo per adattarlo al progetto particolare a portata di mano.
Una cosa è dire "Ok, quindi ora siamo Agili", e un'altra è vivere e lavorare secondo la filosofia di Agile. Che tu usi Waterfall, Incremental, Spiral, SCRUM, XP, FDD o qualsiasi altro metodo, sei sostanzialmente Agile dove apprezzi:
- Individui e interazioni su processi e strumenti
- Software funzionante su documentazione completa
- Collaborazione con i clienti sulla negoziazione del contratto
- Rispondere al cambiamento seguendo un piano
e dove riunisci i tuoi strumenti, il tuo metodo e la tua esperienza per applicare questi valori con successo.