Sviluppo software agile 101

Autore: Judy Howell
Data Della Creazione: 26 Luglio 2021
Data Di Aggiornamento: 23 Giugno 2024
Anonim
Agile Methodology Tutorial for Beginners | Jira Tutorial | Agile Methodology Explained
Video: Agile Methodology Tutorial for Beginners | Jira Tutorial | Agile Methodology Explained

Contenuto


Porta via:

Questo metodo di sviluppo software incoraggia la collaborazione e la flessibilità per aiutare a fornire un prodotto di alta qualità.

C'è stato un grande ronzio attorno ad Agile nel mondo dell'ingegneria del software e dello sviluppo di applicazioni. Agile non è un concetto, ma una mentalità. Come suggerisce il nome, si concentra sull'essere flessibile e dinamico. Questa metodologia rimuove anche l'isolamento tra le fasi dello sviluppo del software e incoraggia il team di sviluppo a collaborare con gli analisti di qualità. Sottolinea inoltre il coinvolgimento dei clienti nello sviluppo, costruzione e consegna di un prodotto di alta qualità. Qui diamo un'occhiata ad Agile, come funziona e ad alcune best practice per questo popolare metodo di sviluppo software.

Un breve sul ciclo di vita dello sviluppo del software

Il ciclo di vita dello sviluppo del software (SDLC) è il processo di creazione di soluzioni software o di modifica delle strutture esistenti destinate a soddisfare un problema specifico. Comprende vari passaggi, che vengono seguiti in un ordine logico. Nei modelli SDLC tradizionali, questi sono i passaggi che vengono seguiti uno dopo l'altro e di solito vengono eseguiti in modo isolato:


  1. Raccolta dei requisiti da parte dei clienti
  2. Analisi di fattibilità e di sistema
  3. Progettazione e modellistica
  4. Codifica o implementazione
  5. analisi
  6. Distribuzione e consegna
  7. Richieste di manutenzione e modifica

In un tipico ciclo di sviluppo software, gli utenti o i client effettivi sono coinvolti nel processo di raccolta dei requisiti e quindi durante i beta test. Tuttavia, il problema con questo modello tradizionale è che la parte di manutenzione del ciclo diventa un affare difficile e piuttosto costoso. Molte volte, non c'è spazio per miglioramenti o modifiche all'interno del sistema. Nella situazione peggiore, il software che è stato progettato o sviluppato non è in linea con le specifiche e le aspettative del cliente, il che significa che il team di sviluppo potrebbe dover ricominciare tutto da capo.

Perché sviluppi agili diversi

I modelli tradizionali più comuni di SDLC - il modello a cascata, il modello di applicazione rapida, il modello iterativo, il modello a spirale, ecc. - hanno i loro pro e contro. Ci sono voluti anni prima che le persone potessero effettivamente analizzare quanto fossero realistici questi modelli. Si adattano perfettamente agli scenari ideali, ma sono sempre stati pratici quando si trattava di applicazioni del mondo reale. Di conseguenza, i team di sviluppo software hanno dovuto affrontare molte sfide. Alcune delle limitazioni dei modelli SDLC convenzionali includono:


  • Non consentono di modificare i requisiti nelle fasi successive poiché sono congelati nel documento delle specifiche dei requisiti software. In alcuni casi, le aspettative degli utenti non vengono dichiarate o fraintese.
  • Gli utenti finali non vedono il sistema fino a quando non è completo. Ciò fornisce pochissimo spazio per dare suggerimenti e modifiche.
  • SDLC tradizionale può creare un enorme divario di comunicazione tra sviluppatori e tester, poiché sono fasi separate e non esiste collaborazione tra le due parti.
  • Il test della scatola bianca non può essere eseguito in modo efficace.

L'uso di Agile risolve molti di questi problemi perché, piuttosto che un processo graduale, funge da più di una filosofia e un quadro che mira ad aiutare i team a collaborare, rispondere ai cambiamenti e costruire un prodotto finito che includa più input da tutti parti, inclusi gli utenti.

Pratiche Agili

L'emergere della metodologia Agile non è altro che una riforma rivoluzionaria nella metodologia di sviluppo del software, perché offre abbastanza spazio per i team di progetto per essere creativi e versatili, pur assumendo la proprietà collettiva di ogni fase del prodotto. Seguendo il percorso Agile, i singoli partecipanti al team di sviluppo del software sono in grado di condizionare le loro menti ad abbracciare l'incertezza, far fronte ai cambiamenti e costruire un prodotto migliore come processo, piuttosto che in fasi discrete e distaccate.

Sebbene non esista un elenco completo dei principi Agile, esistono alcune pratiche propagate da Agile. Questi includono:

  1. Test Driven Development (TDD)
    Idealmente, gli sviluppatori dovrebbero prima scrivere casi di test per il pezzo di funzionalità per cui stanno per codificare. Ciò garantirà un codice di buona qualità, che ha meno probabilità di infrangersi in condizioni eccezionali. Questo processo aiuta anche a garantire che le specifiche dell'utente siano state prese in considerazione.
  2. Coppia di programmazione
    Nello sviluppo Agile, i programmatori lavorano generalmente sullo stesso problema in coppia, in cui una persona sta scrivendo il codice (driver) e l'altra sta rivedendo il codice e fornendo idee e suggerimenti (navigatore). Ciò migliora la produttività e riduce il tempo necessario per la revisione del codice.
  3. Refactoring del codice
    Il refactoring del codice implica la suddivisione del codice in moduli più piccoli e più semplici che possono (e dovrebbero) esistere indipendentemente nello scenario ideale. Ciò migliora notevolmente la leggibilità, la testabilità e la manutenibilità del codice.
  4. Partecipazione attiva delle parti interessate effettive
    Dopo intervalli regolari di un determinato periodo di tempo (indicato come "ss"), i clienti dovrebbero ricevere un prototipo di software significativo funzionante. Ciò consente agli sviluppatori di ottenere feedback su ciò che stanno costruendo mentre vanno.
  5. Tratta i requisiti come uno stack prioritario
    In Agile, è essenziale classificare i requisiti in base alla loro importanza. Ciò può includere aspettative sia implicite che esplicite dei clienti sul prodotto software in fase di sviluppo. Il team di sviluppo del software dovrebbe stimare collettivamente il tempo e le risorse che investiranno nell'implementazione della funzionalità e mapparlo in base alle esigenze degli utenti e all'ordine relativo in cui dovranno affrontare ogni parte del progetto.
  6. Test di regressione
    Il test di regressione comporta il test della funzionalità di un'intera applicazione dopo l'aggiunta di una nuova funzionalità o la modifica della funzionalità esistente nel codice. Ciò aiuta a garantire che le modifiche non abbiano violato il codice esistente.

Perché diventare agili?

Agile prescrive alcune pratiche, ma non le impone a un team di sviluppo software. Dopotutto, se non c'è spazio per aggiustamenti e deviazioni, lo scopo di Agile viene ampiamente sconfitto. Incorporare anche alcuni aspetti dello sviluppo Agile in un progetto può aiutare i team di sviluppo software ad affrontare sfide impreviste e, in definitiva, a costruire un prodotto migliore in modo più efficiente.

Nessun bug, nessuno stress: la tua guida passo passo alla creazione di software che ti cambia la vita senza distruggere la tua vita

Non puoi migliorare le tue capacità di programmazione quando a nessuno importa della qualità del software.