A un livello semplice, sì. Semplicemente eseguire una cascata ogni due settimane non ti rende agile , ma è iterativo (che è la metà di agile).
Il modello a cascata definisce le fasi: requisiti, architettura, progettazione, implementazione, verifica (test), validazione (test di accettazione) e rilascio. In qualsiasi metodologia iterativa, attraversi ciascuna di queste fasi all'interno di ogni iterazione. Potrebbero esserci sovrapposizioni tra loro, ma si ottengono e si acquisiscono requisiti, si adotta l'architettura e la progettazione del sistema per consentire l'implementazione, sviluppare le nuove funzionalità o correggere i difetti, testare i nuovi moduli e quindi presentarlo al cliente per accettazione test e implementazione.
Tuttavia, c'è molto di più da agile che essere solo iterativi e incrementali. Gli inquilini di Agile vengono catturati nel Manifesto per lo sviluppo di software Agile . Ci sono quattro punti chiave fatti nel Manifesto:
Individui e interazioni su processi e strumenti
Coinvolgi spesso singole persone. Molte implementazioni sono incentrate su team auto-organizzati e auto-diretti. Quasi tutti hanno frequenti interazioni con il cliente o qualcuno che ha la voce del cliente. Anziché disporre di una serie formale di procedure da seguire e di strumenti da utilizzare, lasci che le persone che lavorano al progetto guidino il modo in cui il progetto viene eseguito per consentirgli di farlo nel miglior modo possibile.
Software funzionante su documentazione completa
In un progetto software, l'obiettivo principale è la consegna del software. Tuttavia, in alcuni progetti, c'è una produzione dispendiosa di documenti che non aggiungono valore. Scott Ambler ha scritto un buon articolo sulla documentazione Agile / Lean . Non si tratta di non produrre documentazione, ma di scegliere la documentazione che aggiunge valore al tuo team, ai futuri sviluppatori, al cliente o all'utente. Invece di produrre documentazione che non aggiunge valore, i tuoi ingegneri software producono invece software e test associati.
Collaborazione con i clienti sulla negoziazione del contratto
Piuttosto che definire i termini e gli orari e i costi in anticipo, diventa uno sforzo continuo con il cliente. Ad esempio, potresti acquisire i tuoi requisiti sotto forma di storie utente e assegnare loro dei punti. Dopo alcune iterazioni, ti accontenti di una velocità (punti / iterazione) e puoi determinare quante funzioni la tua squadra può implementare in un'iterazione. Poiché i tuoi clienti forniscono feedback su quali funzionalità aggiungono il massimo valore, possono decidere quando il progetto viene svolto in qualsiasi momento. Qualsiasi numero di cose può accadere con consegne frequenti e interazione con il cliente: i requisiti sono stati soddisfatti e il progetto si conclude con la manutenzione e alla fine della vita utile, il cliente scopre che non ha bisogno di tutto ciò che pensava, quindi decide di porre fine al progetto, il progetto non va a buon fine e il cliente lo vede presto e può annullarlo ...
Rispondere al cambiamento seguendo un piano
Non hai un grande progetto o un piano definitivo in anticipo e devi eseguire rilavorazioni ogni volta che quel progetto o piano deve cambiare. Stimate e rivedete continuamente le stime in base alle informazioni in vostro possesso. Scegli attentamente le tue metriche per fornire informazioni sullo stato del progetto e su quando apportare modifiche interne. Spesso aggiungi, rimuovi e ridistribuisci requisiti con il cliente. Alla fine, capisci che il cambiamento è l'unica costante.
Essere agili significa concentrarsi sulle persone e soddisfare le loro esigenze fornendo rapidamente software di alta qualità a valore aggiunto. Man mano che le esigenze del cliente cambiano, ti adegui a quelle esigenze per concentrarti sull'aggiunta di valore. Esistono implementazioni specifiche di metodologie agili, ma sono tutte incentrate sulle persone, sulla consegna tempestiva di software funzionante e sull'adattamento a un ambiente in rapido cambiamento.