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
- La soddisfazione del cliente è la massima priorità che si ottiene attraverso la consegna continua e anticipata di software prezioso.
- Fornisci un software funzionante in un breve lasso di tempo con lo sviluppo continuo di nuovi software / prodotti in linea seguendo lo stesso approccio.
- Dovremmo essere in grado di soddisfare le mutevoli esigenze anche se arriva tardi durante il ciclo di vita di SDLC.
- I membri del team dovrebbero rimanere motivati sempre e per questo, dovrebbero essere forniti supporto sufficiente e un buon ambiente.
- Gli sviluppatori e gli uomini d'affari devono lavorare insieme tutti i giorni durante il progetto.
- Il modo più efficace di conversazione è considerato l'interazione faccia a faccia.
- Sviluppo sostenibile. Tutti i membri del team dovrebbero essere in grado di mantenere un ritmo costante.
- Un prodotto / software funzionante è considerato la misura principale del progresso.
- Alla fine della giornata, l'obiettivo principale dovrebbe essere l'eccellenza tecnica e il design robusto.
- La semplicità dovrebbe essere seguita durante tutto il processo SDLC
- I team dovrebbero effettivamente mostrare l'efficacia continua e adottare qualsiasi modifica per aumentarne l'efficacia.
- Il design e l'architettura robusti provengono da team auto-organizzati.
Approcci per l'implementazione agile:
Link: https://goo.gl/images/fkZqGe
- 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.
- 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.
- Extreme Programming (XP) - Questo approccio ha lo scopo di migliorare la qualità e la reattività del software incorporando semplicità, feedback e adozione di modifiche.
- 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à.
- 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.
- 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.
- 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
- 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.
- 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.
- 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
- 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.
- 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.
- 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
- 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.
- 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.
- 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ù -
- Che cos'è l'intelligenza artificiale
- Agile Scrum Domande di intervista
- Che cos'è SDLC
- Agile vs Scrum vs Waterfall