A un livello semplice, sì. Semplicemente eseguire una cascata ogni due settimane non fa sei agile , ma è iterativo (che è metà di agile).
Il modello a cascata definisce le fasi: requisiti, architettura, progettazione, implementazione, verifica (test), convalida (test di accettazione) e rilascio. In qualsiasi metodologia iterativa, si passa attraverso ciascuna di queste fasi all'interno di ogni iterazione. Potrebbe esserci una sovrapposizione tra loro, ma si ottengono e si acquisiscono i requisiti, si adottano l'architettura e il design del sistema per consentire l'implementazione, sviluppare le nuove funzionalità o correggere i difetti, testare i nuovi moduli e quindi presentarli al cliente per l'accettazione test e implementazione.
Tuttavia, è molto più agile del semplice iterativo e incrementale. Gli inquilini di agile vengono catturati nel Manifesto per lo sviluppo di software agile . Ci sono quattro punti chiave fatti nel Manifesto:
Individuals and interactions over processes and tools
Coinvolgi frequentemente persone individuali. Molte implementazioni sono incentrate su team auto-organizzanti e autodiretti. Quasi tutti hanno frequenti interazioni con il cliente o qualcuno che ha la voce del cliente. Piuttosto che avere un insieme formale di procedure da seguire e strumenti da usare, 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.
Working software over comprehensive documentation
In un progetto software, l'obiettivo principale è la consegna del software. Tuttavia, in alcuni progetti, c'è una produzione sprecata di documenti che non aggiunge valore. Scott Ambler ha scritto un buon articolo su Agile / Lean Documentation . Non si tratta di produrre documentazione, ma di scegliere la documentazione che aggiunge valore al tuo team, ai futuri sviluppatori, al cliente o all'utente. Piuttosto che produrre documentazione che non aggiunge valore, i tuoi ingegneri del software stanno invece producendo software e test associati.
Customer collaboration over contract negotiation
Piuttosto che definire termini, orari e costi in anticipo, diventa un impegno continuo con il cliente. Ad esempio, potresti acquisire le tue esigenze sotto forma di storie di utenti e assegnarle dei punti. Dopo alcune iterazioni, stabilisci una velocità (punti / iterazione) e puoi determinare quante funzioni il tuo team può implementare in una iterazione. Poiché il cliente fornisce un feedback su quali funzionalità aggiungono il maggior valore, può decidere quando il progetto viene eseguito 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 del ciclo di vita, il cliente scopre che non hanno bisogno di tutto ciò che pensavano così decide di terminare progetto, il progetto sta fallendo e il cliente lo vede presto e può cancellarlo ... la lista continua.
Responding to change over following a plan
Non hai un grande progetto o un piano definitivo in anticipo e devi eseguire una rilettura ogni volta che il progetto o il piano deve cambiare. Continui a stimare e revisionare le stime in base alle informazioni che hai. Scegli attentamente le tue metriche per fornire informazioni sulla salute del progetto e quando apportare modifiche interne. Spesso aggiungi, rimuovi e riorganizzi i requisiti con il cliente. In definitiva, comprendi che il cambiamento è l'unica costante.
Essere agili significa concentrarsi sulle persone e soddisfare i loro bisogni offrendo rapidamente software di alta qualità e valore aggiunto. Quando 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, la consegna tempestiva del software funzionante e l'adattamento a un ambiente in rapida evoluzione.