SDLC - Modello agile

Il modello Agile SDLC è una combinazione di modelli di processo iterativi e incrementali con particolare attenzione all'adattabilità del processo e alla soddisfazione del cliente mediante la consegna rapida di prodotti software funzionanti. I metodi agili suddividono il prodotto in piccole build incrementali. Queste build sono fornite in iterazioni. Ogni iterazione dura tipicamente da una a tre settimane circa. Ogni iterazione coinvolge team interfunzionali che lavorano simultaneamente su varie aree come:

  • Planning
  • Analisi dei requisiti
  • Design
  • Coding
  • Test unitari e
  • Test di accettazione.

Alla fine dell'iterazione, un prodotto funzionante viene mostrato al cliente e agli stakeholder importanti.

Cos'è Agile?

Il modello Agile ritiene che ogni progetto debba essere gestito in modo diverso e che i metodi esistenti debbano essere adattati per soddisfare al meglio i requisiti del progetto. In Agile, le attività sono suddivise in time box (piccoli intervalli di tempo) per fornire funzionalità specifiche per un rilascio.

Viene adottato un approccio iterativo e la build del software funzionante viene fornita dopo ogni iterazione. Ogni build è incrementale in termini di funzionalità; la build finale contiene tutte le caratteristiche richieste dal cliente.

Ecco un'illustrazione grafica del modello Agile:

Il processo di pensiero Agile era iniziato all'inizio dello sviluppo del software e ha iniziato a diventare popolare nel tempo grazie alla sua flessibilità e adattabilità.

I metodi Agile più popolari includono Rational Unified Process (1994), Scrum (1995), Crystal Clear, Extreme Programming (1996), Adaptive Software Development, Feature Driven Development e Dynamic Systems Development Method (DSDM) (1995). Questi sono ora indicati collettivamente comeAgile Methodologies, dopo la pubblicazione del Manifesto Agile nel 2001.

Di seguito sono riportati i principi del Manifesto Agile:

  • Individuals and interactions - Nello sviluppo Agile, l'auto-organizzazione e la motivazione sono importanti, così come le interazioni come la co-locazione e la programmazione in coppia.

  • Working software - Il software demo funzionante è considerato il miglior mezzo di comunicazione con i clienti per comprendere le loro esigenze, invece di dipendere solo dalla documentazione.

  • Customer collaboration - Poiché i requisiti non possono essere raccolti completamente all'inizio del progetto a causa di vari fattori, l'interazione continua con il cliente è molto importante per ottenere i requisiti del prodotto adeguati.

  • Responding to change - Lo sviluppo agile si concentra su risposte rapide al cambiamento e sviluppo continuo.

Modelli SDLC agili e tradizionali

Agile si basa su adaptive software development methods, mentre i modelli SDLC tradizionali come il modello a cascata si basano su un approccio predittivo. I team predittivi nei modelli SDLC tradizionali di solito lavorano con una pianificazione dettagliata e hanno una previsione completa delle attività e delle funzionalità esatte da consegnare nei prossimi mesi o durante il ciclo di vita del prodotto.

I metodi predittivi dipendono interamente da requirement analysis and planningfatto all'inizio del ciclo. Qualsiasi modifica da incorporare passa attraverso una rigorosa gestione del controllo delle modifiche e assegnazione delle priorità.

Agile utilizza un file adaptive approachdove non c'è una pianificazione dettagliata e c'è chiarezza sui compiti futuri solo per quanto riguarda le caratteristiche che devono essere sviluppate. È previsto uno sviluppo basato sulle funzionalità e il team si adatta dinamicamente ai requisiti del prodotto in evoluzione. Il prodotto viene testato molto frequentemente, attraverso le iterazioni di rilascio, riducendo al minimo il rischio di eventuali guasti importanti in futuro.

Customer Interactionè la spina dorsale di questa metodologia Agile e la comunicazione aperta con documentazione minima sono le caratteristiche tipiche dell'ambiente di sviluppo Agile. I team agili lavorano in stretta collaborazione tra loro e si trovano molto spesso nella stessa posizione geografica.

Modello Agile - Pro e contro

I metodi agili sono stati ampiamente accettati nel mondo del software di recente. Tuttavia, questo metodo potrebbe non essere sempre adatto a tutti i prodotti. Ecco alcuni pro e contro del modello Agile.

I vantaggi del modello Agile sono i seguenti:

  • È un approccio molto realistico allo sviluppo del software.

  • Promuove il lavoro di squadra e il cross training.

  • La funzionalità può essere sviluppata rapidamente e dimostrata.

  • I requisiti di risorse sono minimi.

  • Adatto per esigenze fisse o mutevoli

  • Fornisce soluzioni di lavoro parziali iniziali.

  • Buon modello per ambienti che cambiano costantemente.

  • Regole minime, documentazione facilmente utilizzabile.

  • Consente lo sviluppo e la consegna simultanei all'interno di un contesto pianificato globale.

  • Poca o nessuna pianificazione richiesta.

  • Facile da gestire.

  • Offre flessibilità agli sviluppatori.

Gli svantaggi del modello Agile sono i seguenti:

  • Non adatto per la gestione di dipendenze complesse.

  • Maggiori rischi di sostenibilità, manutenibilità ed estensibilità.

  • Un piano generale, un leader agile e una pratica di PM agile è un must senza il quale non funzionerà.

  • Una rigorosa gestione delle consegne determina l'ambito, la funzionalità da fornire e gli adeguamenti per rispettare le scadenze.

  • Dipende fortemente dall'interazione del cliente, quindi se il cliente non è chiaro, il team può essere guidato nella direzione sbagliata.

  • Esiste una dipendenza individuale molto elevata, poiché viene generata una documentazione minima.

  • Il trasferimento di tecnologia a nuovi membri del team può essere piuttosto impegnativo a causa della mancanza di documentazione.