Rozdíl mezi extrémním programováním a SCRUMem

Rozdíl mezi extrémním programováním a SCRUMem
Rozdíl mezi extrémním programováním a SCRUMem

Video: Rozdíl mezi extrémním programováním a SCRUMem

Video: Rozdíl mezi extrémním programováním a SCRUMem
Video: Receivers vs Amplifiers! Everything you need to know! 2024, Prosinec
Anonim

Extrémní programování vs SCRUM | XP vs SCRUM

V softwarovém průmyslu se v průběhu let používala řada různých metodologií vývoje softwaru, jako je metoda vývoje Waterfall, V-Model, RUP a několik dalších lineárních, iterativních a kombinovaných lineárně iteračních metod. Agilní model (nebo přesněji skupina metodologií) je novější model vývoje softwaru zavedený manifestem Agile k řešení nedostatků nalezených v těchto tradičních metodologiích vývoje softwaru.

Agilní metody jsou založeny na iterativním vývoji a využívají zpětnou vazbu od uživatelů jako hlavní kontrolní mechanismus. Agilní lze nazvat přístup zaměřený na lidi než tradiční metody. Agilní model přináší funkční verzi produktu velmi brzy tím, že systém rozloží na velmi malé a ovladatelné dílčí části, takže si zákazník může brzy uvědomit některé z výhod. Doba testovacího cyklu Agile je ve srovnání s tradičními metodami relativně krátká, protože testování probíhá souběžně s vývojem. Kvůli všem těmto výhodám jsou v současnosti agilní metody preferovány před tradičními. Scrum a Extreme programování jsou dvě nejoblíbenější varianty agilních metod.

Co je SCRUM?

Jak bylo uvedeno výše, SCRUM je inkrementální a iterativní proces projektového řízení, který patří do rodiny agilních metod. SCRUM je založen na vysoké prioritě účasti zákazníků na počátku vývojového cyklu. Doporučuje začlenit testování zákazníkem včas a co nejčastěji. Testování se provádí v každém okamžiku, kdy je k dispozici stabilní verze. Základ SCRUMu je založen na zahájení testování od začátku projektu a pokračování v průběhu až do konce projektu.

Klíčovou hodnotou SCRUM je „kvalita je odpovědnost týmu“, což zdůrazňuje, že za kvalitu softwaru odpovídá celý tým (nejen testovací tým). Dalším důležitým aspektem SCRUM je rozdělení softwaru na menší spravovatelné části a jejich velmi rychlé dodání zákazníkovi. Dodání funkčního produktu je nanejvýš důležité. Poté tým pokračuje ve vylepšování softwaru a v jeho průběžném poskytování při každém hlavním kroku. Toho je dosaženo velmi krátkými cykly uvolňování (nazývanými sprinty) a získáváním zpětné vazby pro zlepšení na konci každého cyklu.

SCRUM definuje několik klíčových rolí pro hladký chod vývojového týmu. Jsou to vlastník produktu (který zastupuje zákazníka a udržuje produktový backlog), Scrum master (který působí jako organizátor a koordinátor týmu tím, že vede scrumové schůzky, udržuje sprint backlog a vypalují grafy) a další členové týmu. Tým se může skládat z tradičních rolí, ale většinou se jedná o samostatně řídící týmy. Hlavními artefakty Scrumu jsou nevyřízené položky/nevyřízené produkty (seznam přání), nevyřízené položky/nevyřízené sprinty (úkoly v každé iteraci), grafy vyhoření (zbývající práce vs. datum). Hlavními ceremoniemi SCRUM jsou schůzka Product backlog, Sprint meeting a Retrospect meeting.

Co je extrémní programování?

Extreme Programming (zkráceně XP) je metodika vývoje softwaru, která patří k modelu Agile. Extrémní programování provádí fáze ve velmi malých souvislých krocích (ve srovnání s tradičními metodami). První průchod, který trvá jen den nebo týden, je záměrně neúplný. Pro poskytnutí konkrétních cílů pro vývoj softwaru jsou na začátku napsány automatizované testy. Poté vývojáři provedou kódování. Důraz je kladen na programování ve dvojicích. Jakmile všechny testy projdou, je kódování považováno za dokončené. Další fází je návrh a architektura, která se zabývá refaktorováním kódu stejnou sadou programátorů. Na konci této fáze je zúčastněným stranám předložen neúplný (ale funkční) produkt. Hned poté začíná další fáze (která se zaměřuje na další sadu nejdůležitějších funkcí).

Jaký je rozdíl mezi extrémním programováním a SCRUMem?

Extrémní programování a SCRUM jsou pochopitelně velmi podobné a sladěné metodiky. Mezi těmito dvěma metodami však existují jemné, ale důležité rozdíly. Sprinty SCRUM trvají 2–4 týdny, zatímco typické iterace XP jsou kratší (poslední 1–2 týdny). Týmy SCRUM obvykle nepovolují změny ve sprintech, ale týmy XP jsou trochu flexibilnější vůči změnám v rámci iterací. Například po naplánování sprintu zůstane sada položek tohoto sprintu nezměněna, ale funkci, na které se nezačalo pracovat, lze kdykoli vyměnit za jinou funkci v XP. Dalším rozdílem mezi XP a SCRUM je to, že pořadí funkcí vyvinutých v XP je přísně upřednostňováno zákazníkem, zatímco tým SCRUM rozhoduje o pořadí položek (poté, co produktový backlog upřednostní vlastník produktu SCRUM).

Na rozdíl od XP SCRUM nestanoví žádné technické postupy. XP je například řízeno postupy, jako je vývoj řízený testem (TDD), párové programování, refaktoring atd. Někteří se však domnívají, že nařizovat soubor postupů samoorganizujícím se týmům by mohl mít negativní dopad, a to lze považovat za nedostatek XP. Dalším nedostatkem extrémního programování je, že nezkušené týmy mohou mít tendenci refaktorovat bez jakýchkoli automatických testů nebo TDD (nebo jednoduše hackování). Někteří proto naznačují, že SCRUM je lepší pro zírání (protože přináší velká zlepšení jednoduše prostřednictvím cílených iterací s časovým rámečkem) a XP je vhodný pro mírně vyspělé týmy, které objevily hodnotu výše uvedených postupů (spíše než aby je používali, protože byli požádáni udělat tak).

Doporučuje: