Differenza Tra Programmazione Estrema E SCRUM

Differenza Tra Programmazione Estrema E SCRUM
Differenza Tra Programmazione Estrema E SCRUM

Video: Differenza Tra Programmazione Estrema E SCRUM

Video: Differenza Tra Programmazione Estrema E SCRUM
Video: Perché fare Scrum non è essere Agile 2024, Novembre
Anonim

Extreme Programming vs SCRUM | XP vs SCRUM

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

I metodi agili si basano sullo sviluppo iterativo e utilizzano il feedback degli utenti come meccanismo di controllo principale. Agile può essere definito un approccio incentrato sulle persone rispetto ai metodi tradizionali. Il modello Agile fornisce una versione funzionante del prodotto molto presto suddividendo il sistema in parti secondarie molto piccole e gestibili, in modo che il cliente possa realizzare subito alcuni dei vantaggi. Il tempo del ciclo di test di Agile è relativamente breve rispetto ai metodi tradizionali, perché il test viene eseguito parallelamente allo sviluppo. A causa di tutti questi vantaggi, al momento i metodi Agile sono preferiti rispetto alle metodologie tradizionali. La programmazione Scrum ed Extreme sono due delle varianti più popolari dei metodi Agile.

Cos'è SCRUM?

Come accennato in precedenza, SCRUM è un processo di gestione del progetto incrementale e iterativo, che appartiene alla famiglia dei metodi Agile. SCRUM si basa sul dare alta priorità alla partecipazione del cliente all'inizio del ciclo di sviluppo. Si consiglia di incorporare i test da parte del cliente il più presto e spesso possibile. Il test viene eseguito in ogni momento in cui una versione stabile diventa disponibile. La base di SCRUM si basa sull'avvio del test dall'inizio del progetto e sul proseguimento fino alla fine del progetto.

Il valore chiave di SCRUM è "la qualità è responsabilità del team", il che sottolinea che la qualità del software è responsabilità dell'intero team (non solo del team di test). Un altro aspetto importante di SCRUM è la scomposizione del software in parti gestibili più piccole e la consegna al cliente molto rapidamente. Fornire un prodotto funzionante è della massima importanza. Quindi il team continua a migliorare il software e a fornire continuamente in ogni fase principale. Ciò si ottiene avendo cicli di rilascio molto brevi (chiamati sprint) e ottenendo feedback per il miglioramento alla fine di ogni ciclo.

SCRUM definisce diversi ruoli chiave per il buon funzionamento di un team di sviluppo. Sono il Product Owner (che rappresenta il cliente e mantiene il product backlog), Scrum master (che funge da organizzatore e coordinatore del team conducendo riunioni di Scrum, mantenendo lo sprint backlog e bruciando i grafici) e altri membri del team. Un team può essere composto da ruoli tradizionali, ma principalmente sono team autogestiti. Gli artefatti principali di Scrum sono Product backlog / release backlog (lista dei desideri), Sprint backlog / defect backlog (attività in ogni iterazione), Burn down grafici (lavoro rimanente rispetto alla data). Le cerimonie principali di SCRUM sono la riunione del backlog del prodotto, la riunione dello sprint e la riunione del retrospettiva.

Cos'è la programmazione estrema?

Extreme Programming (abbreviato XP) è una metodologia di sviluppo software che appartiene al modello Agile. La programmazione estrema esegue fasi in piccolissimi passaggi 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, all'inizio vengono scritti test automatizzati. Quindi gli sviluppatori eseguono la codifica. L'obiettivo è fare programmazione in coppia. Una volta superati tutti i test, la codifica è considerata completa. La fase successiva è la progettazione e l'architettura, che si occupa del refactoring del codice da parte dello stesso gruppo di programmatori. Al termine di questa fase, il prodotto incompleto (ma funzionale) viene presentato agli stakeholder. Subito dopo, inizia la fase successiva (che si concentra sulla serie successiva di funzionalità più importanti).

Qual è la differenza tra Extreme Programming e SCRUM?

Extreme Programming e SCRUM sono metodologie comprensibilmente molto simili e allineate. Tuttavia, ci sono differenze sottili ma importanti tra questi due metodi. Gli sprint SCRUM durano 2-4 settimane, mentre le iterazioni XP tipiche sono più brevi (ultime 1-2 settimane). Di solito, i team SCRUM non consentono modifiche agli sprint, ma i team XP sono un po 'più flessibili ai cambiamenti all'interno delle iterazioni. Ad esempio, dopo la pianificazione dello sprint, il set di elementi di quello sprint rimane invariato, ma una funzionalità su cui non ha iniziato a funzionare può essere sostituita in qualsiasi momento con qualche altra funzionalità in XP. Un'altra differenza tra XP e SCRUM è che l'ordine delle funzionalità sviluppate in XP è strettamente prioritario dal cliente, mentre il team di SCRUM decide l'ordine degli articoli (dopo che il product backlog ha la priorità dal Product Owner di SCRUM).

A differenza di XP, SCRUM non stabilisce alcuna pratica ingegneristica. Ad esempio, XP è guidato da pratiche come lo sviluppo guidato dai test (TDD), la programmazione in coppia, il refactoring, ecc. Tuttavia, alcuni credono che imporre una serie di pratiche ai team auto-organizzati potrebbe avere un impatto negativo e questo può essere considerato una mancanza di XP. Un altro difetto della programmazione Extreme è che i team inesperti possono tendere a refactoring senza alcun test automatizzato o TDD (o semplicemente hacking). Pertanto, alcuni suggeriscono che SCRUM è migliore per iniziare (poiché apporta grandi miglioramenti semplicemente attraverso iterazioni timebox mirate) e XP è adatto a team leggermente maturi che hanno scoperto il valore delle pratiche sopra menzionate (piuttosto che usarle perché sono state chieste fare così).

Raccomandato: