Differenza tra programmazione estrema e SCRUM

Anonim

Programmazione estrema contro SCRUM | XP vs SCRUM

Nel corso degli anni sono state utilizzate numerose metodologie di sviluppo software utilizzate nell'industria del software come il metodo di sviluppo della cascata, il modello V, il RUP e pochi altri metodi lineari-iterativi lineari, iterativi e combinati. Il modello agile (o più correttamente, un gruppo di metodologie) è un modello di sviluppo del software più recente introdotto dal manifesto agile per affrontare le carenze riscontrate nelle metodologie tradizionali di sviluppo del software.

I metodi agili si basano sullo sviluppo iterativo e utilizzano i feedback degli utenti come il meccanismo di controllo principale. Agile può essere chiamato un approccio centrato sul popolo rispetto ai metodi tradizionali. Il modello agile offre una versione di lavoro del prodotto molto presto, abbattendo il sistema in piccole parti gestibili, in modo che il cliente possa realizzare alcuni dei vantaggi in anticipo. Il tempo di ciclo di prova di Agile è relativamente breve rispetto ai metodi tradizionali, perché i test vengono eseguiti parallelamente allo sviluppo. A causa di tutti questi vantaggi, i metodi Agile sono preferiti rispetto alle metodologie tradizionali al momento. La programmazione Scrum e Extreme sono due delle varianti più diffuse dei metodi Agile.

Che cosa è SCRUM?

Come accennato in precedenza, SCRUM è un processo di gestione dei progetti incrementale ed iterativo, che appartiene alla famiglia dei metodi Agile. SCRUM si basa sul dare priorità alla partecipazione del cliente all'inizio del ciclo di sviluppo. Raccomanda di includere i test da parte del cliente all'inizio e spesso possibile. Il test viene eseguito ad ogni punto in cui è disponibile una versione stabile. La fondazione di SCRUM si basa sui test di partenza dall'inizio del progetto e continua fino alla fine del progetto.

Il valore chiave di SCRUM è "la qualità è la responsabilità del team", che sottolinea che la qualità del software è responsabilità dell'intera squadra (non solo del team di test). Un altro aspetto importante di SCRUM sta rompendo il software in parti più maneggevoli e consegnandole al cliente molto rapidamente. La fornitura di un prodotto lavorativo è di massima importanza. Poi la squadra continua a migliorare il software e consegnare continuamente ad ogni passo importante. Ciò è ottenuto attraverso cicli di rilascio molto brevi (chiamati sprint) e ottenendo feedback per migliorare alla fine di ogni ciclo.

SCRUM definisce diversi ruoli chiave per il buon funzionamento di un team di sviluppo. Sono il proprietario del prodotto (che rappresenta il cliente e mantiene il backlog del prodotto), il master di Scrum (che funge da organizzatore e coordinatore della squadra svolgendo incontri di scrum, mantenendo lo spostamento di sprint e abbassando i grafici) e di altri membri del team.Una squadra può essere costituita da ruoli tradizionali, ma soprattutto sono team di autoamministrazione. Gli artefatti principali di Scrum sono il backlog / rilascio dei prodotti (elenco dei desideri), gli ordini di backlog di Sprint / ordini di difetto (compiti in ogni iterazione), Burn down charts (lavoro rimanente rispetto alla data). Le principali cerimonie di SCRUM sono riunioni di backlog di prodotti, meeting di Sprint e riunione Retrospect.

Che cos'è la programmazione estrema?

Programmazione estrema (abbreviazione XP) è una metodologia di sviluppo software che appartiene al modello Agile. La programmazione estrema esegue le fasi in piccoli passi continui (rispetto ai metodi tradizionali). Il primo passaggio, che richiede solo un giorno o una settimana, è intenzionalmente incompleto. Per fornire obiettivi concreti per lo sviluppo del software, i test automatici vengono scritti all'inizio. Poi gli sviluppatori fanno la codifica. Il fuoco è quello di fare la programmazione come coppie. Una volta che tutti i test passano, la codifica è considerata completa. La fase successiva è il design e l'architettura che si occupa del refactoring del codice da parte dello stesso insieme di programmatori. Alla fine di questa fase, il prodotto incompleto (ma funzionale) viene presentato agli stakeholder. Subito dopo, inizia la fase successiva (che si concentra sul prossimo set di funzioni più importanti).

Qual è la differenza tra Extreme Programming e SCRUM?

Programmazione estrema e SCRUM sono metodologie molto simili e allineate. Tuttavia, esistono differenze sottili ma importanti tra questi due metodi. Gli SCRUM sprints durano 2-4 settimane, mentre le tipiche iterazioni XP sono più brevi (le ultime 1-2 settimane). Di solito, le squadre SCRUM non consentono modifiche agli sprint, ma le squadre XP sono poco flessibili per i cambiamenti all'interno di iterazioni. Ad esempio, dopo la pianificazione di sprint, l'insieme di elementi di quel sprint rimane invariato, ma una funzionalità che non ha iniziato a lavorare può essere sostituito in qualsiasi momento con un'altra funzionalità in XP. Un'altra differenza tra XP e SCRUM è che l'ordine delle funzionalità sviluppato in XP è una priorità assoluta da parte del cliente, mentre il team SCRUM decide l'ordine delle voci (dopo che il portafoglio di prodotti viene prioritato dal titolare del prodotto SCRUM).

A differenza di XP, SCRUM non stabilisce pratiche di ingegneria. Ad esempio, XP è guidato da pratiche come lo sviluppo test-driven (TDD), la programmazione a paio, il refactoring, ecc. Tuttavia, alcuni ritengono che l'obbligo di una serie di pratiche sulle squadre di autoorganizzazione potrebbe avere un impatto negativo e questo può essere considerato una mancanza di XP. Un altro difetto della programmazione estrema è che le squadre inesperte possono tendere a rifatturare senza test automatizzati o TDD (o semplicemente hacking). Pertanto, alcuni suggeriscono che SCRUM è meglio per staring off (perché porta grandi miglioramenti semplicemente attraverso iterazioni a tempo pieno focalizzate) e XP è adatto a squadre leggermente mature che hanno scoperto il valore delle pratiche sopra menzionate (piuttosto che usarle perché sono state chieste fare così).