Introduzione ad Agile e Scrum

Agile è una metodologia di sviluppo software che ha la larghezza di banda per adattarsi rapidamente alle mutevoli esigenze del progetto e per adattarsi allo sviluppo di un nuovo prodotto mentre il progetto è in corso o dopo il completamento del progetto, a differenza della tradizionale gestione del progetto.

Comprendiamo il vantaggio distintivo che agile sta avendo rispetto alla tradizionale metodologia di gestione dei progetti:

Approccio tradizionale:

  • Pianificazione dettagliata prima dell'inizio
  • Permette di adottare un cambiamento minimo
  • Definizione del progetto fissa

Approccio Agile:

  • È richiesta una pianificazione minima prima dell'inizio
  • Accetterà e si adatterà ai cambiamenti
  • Tempo e costi fissi

Scrum è l'approccio più utilizzato e popolare per implementare una metodologia agile.

Arriveremo alla sezione scrum a breve ma prima, vediamo di più sul framework agile.

Principi alla base del manifesto agile

  1. La soddisfazione del cliente è la massima priorità che si ottiene attraverso la consegna continua e anticipata di software prezioso.
  2. Fornisci un software funzionante in un breve lasso di tempo con lo sviluppo continuo di nuovi software / prodotti in linea seguendo lo stesso approccio.
  3. Dovremmo essere in grado di soddisfare le mutevoli esigenze anche se arriva tardi durante il ciclo di vita di SDLC.
  4. I membri del team dovrebbero rimanere motivati ​​sempre e per questo, dovrebbero essere forniti supporto sufficiente e un buon ambiente.
  5. Gli sviluppatori e gli uomini d'affari devono lavorare insieme tutti i giorni durante il progetto.
  6. Il modo più efficace di conversazione è considerato l'interazione faccia a faccia.
  7. Sviluppo sostenibile. Tutti i membri del team dovrebbero essere in grado di mantenere un ritmo costante.
  8. Un prodotto / software funzionante è considerato la misura principale del progresso.
  9. Alla fine della giornata, l'obiettivo principale dovrebbe essere l'eccellenza tecnica e il design robusto.
  10. La semplicità dovrebbe essere seguita durante tutto il processo SDLC
  11. I team dovrebbero effettivamente mostrare l'efficacia continua e adottare qualsiasi modifica per aumentarne l'efficacia.
  12. Il design e l'architettura robusti provengono da team auto-organizzati.

Approcci per l'implementazione agile:

Link: https://goo.gl/images/fkZqGe

  1. SCRUM - Questo è un approccio iterativo in cui c'è qualcosa chiamato come sprint che dura fino a una o due settimane. Questo approccio consente ai team di consegnare il prodotto o il software funzionante su base regolare.
  2. Kanban : per implementare l'agile, questo approccio utilizza un framework visivo. Qui non ci sono sprint a lunghezza fissa e il team ottiene l'attività da un backlog prioritario.
  3. Extreme Programming (XP) - Questo approccio ha lo scopo di migliorare la qualità e la reattività del software incorporando semplicità, feedback e adozione di modifiche.
  4. Feature Driven Development (FDD) : questo approccio include 5 attività di base che sono: sviluppo di un modello generale, creazione di un elenco di funzionalità, pianificazione per funzionalità, progettazione per funzionalità e creazione per funzionalità.
  5. Adaptive System Development (ASD) - Questo approccio può essere utilizzato per la creazione di software e sistemi complessi e si concentra principalmente sulla collaborazione in team e sull'auto-organizzazione. Include 3 attività iterative che sono: speculare, collaborare e apprendere.
  6. Metodo di sviluppo del sistema dinamico - DSDM è un approccio agile che segue un approccio iterativo e incrementale che si basa in gran parte sulla metodologia di sviluppo rapido delle applicazioni. Affronta i fallimenti comuni di progetti come problemi di budget del progetto, scadenze mancanti ecc.
  7. Sviluppo software snello - Lo sviluppo software snello è un approccio agile che ha 7 principi di base e quelli sono: eliminare gli sprechi, responsabilizzare il team, consegnare velocemente, ottimizzare il tutto, costruire la qualità, rinviare le decisioni e ampliare le conoscenze.

Che cos'è Scrum?

Nelle sezioni precedenti, abbiamo già visto gli approcci utilizzati per implementare il processo Agile e Scrum è stato uno di questi, Scrum è uno dei metodi Agile più importanti e ampiamente utilizzati. Una mischia è un approccio iterativo in cui esiste qualcosa chiamato sprint che dura fino a una o due settimane. Questo approccio consente ai team di consegnare il prodotto o il software funzionante su base regolare. Qui le responsabilità, i ruoli e le riunioni sono decisi in Scrum e gli sprint sono programmi in cui vi sono pianificazione dello sprint, demo dello sprint, standup giornaliero e retrospettiva dello sprint.

Scrum Ruoli / Scrum Team:

Link: https://goo.gl/images/XpNHBe

  1. Scrum Master - Lo Scrum Master è un ruolo che è responsabile per il team Scrum di seguire la metodologia Scrum. Lo Scrum Master organizza incontri, incoraggia il team, facilita la pianificazione e il monitoraggio, affronta le sfide e gestisce i colli di bottiglia. Scrum Master comunica anche con il Product Owner per assicurarsi che il backlog del prodotto sia pronto per lo sprint successivo.
  2. Proprietario del prodotto - Il proprietario del prodotto è responsabile dell'analisi e della comunicazione della versione del software allo Scrum Team. Il Product Owner si coordina anche con Scrum Master per decidere gli arretrati del prodotto per gli sprint.
  3. Team di sviluppo: il team di sviluppo è composto da professionisti responsabili dello sviluppo, del collaudo e della consegna continui del software. Determinano come consegnare pezzi di opere con incrementi frequenti.

Passaggi in Scrum Flow:

Link: https://goo.gl/images/6YTUPf

  1. Portafoglio prodotti: il Portafoglio prodotti mantiene l'elenco delle funzionalità del prodotto. È responsabilità del Product Owner e dello Scrum Master dare la priorità agli articoli arretrati sulla base delle storie e dei requisiti degli utenti.
  2. Sprint Planning - È un incontro che è facilitato dallo Scrum Master in cui il Product Owner presenta i dettagli del portafoglio ordini del prodotto, stabilisce i criteri di accettazione della consegna e il team di sviluppo che definisce il lavoro e lo sforzo che hanno progredito su base giornaliera.
  3. Backlog Refinement - Per mantenere aggiornato il backlog del prodotto, utilizziamo Backlog Refinement. Qui le storie utente sono divise in parti più piccole e tutte le storie utente irrilevanti vengono rimosse
  4. Scrum quotidiano - È un incontro quotidiano di 15 minuti in cui si discutono sostanzialmente tre domande che sono: cosa è stato realizzato ieri, qual è il piano per oggi e quali sono gli ostacoli.
  5. Sprint Review Meeting : questo incontro viene eseguito al termine di ogni sprint in cui viene presentata una dimostrazione dal vivo per mostrare ciò che è stato realizzato durante lo sprint.
  6. Riunione retrospettiva Sprint: possiamo anche chiamare questa riunione come riunione di successo in cui il team discute il processo che ha funzionato o che non ha funzionato durante lo sprint con le soluzioni alternative.

Conclusione

In questo articolo, abbiamo visto che Agile è una metodologia di sviluppo software che ha la larghezza di banda per adattarsi rapidamente alle mutevoli esigenze del progetto e per adattarsi allo sviluppo di nuovi prodotti mentre il progetto è in corso o dopo il completamento del progetto a differenza della gestione del progetto tradizionale mentre Scrum è l'approccio più ampiamente utilizzato e popolare per l'implementazione della metodologia agile.

Articoli consigliati

Questa è stata una guida a What is Agile and Scrum. Qui abbiamo discusso i diversi approcci di Agile e Scrum. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più -

  1. Che cos'è l'intelligenza artificiale
  2. Agile Scrum Domande di intervista
  3. Che cos'è SDLC
  4. Agile vs Scrum vs Waterfall