Extrémne programovanie vs SCRUM | XP vs SCRUM
V softvérovom priemysle sa v priebehu rokov používalo množstvo rôznych metodológií vývoja softvéru, ako napríklad metóda vývoja vodopádu, model V, model RUP a niekoľko ďalších lineárnych, iteračných a kombinovaných metód lineárnych iterácií. Agilný model (alebo presnejšie povedané, skupina metodík) je novší model vývoja softvéru zavedený programom Agile na riešenie nedostatkov zistených v týchto tradičných metodológiách vývoja softvéru..
Agilné metódy sú založené na iteratívnom vývoji a využívajú spätnú väzbu od používateľov ako hlavný kontrolný mechanizmus. Agilnosť sa dá nazvať prístup zameraný na ľudí ako tradičné metódy. Agilný model prináša funkčnú verziu produktu veľmi skoro rozdelením systému na veľmi malé a spravovateľné čiastkové časti, aby si zákazník mohol čoskoro uvedomiť niektoré z výhod. Čas testovacieho cyklu Agile je relatívne krátky v porovnaní s tradičnými metódami, pretože testovanie sa vykonáva súbežne s vývojom. Kvôli všetkým týmto výhodám sú agilné metódy uprednostňované pred tradičnými metodológiami v súčasnosti. Programovanie Scrum a Extreme sú dve z najpopulárnejších variácií metód Agile.
Čo je SCRUM?
Ako je uvedené vyššie, SCRUM je inkrementálny a opakovaný proces riadenia projektov, ktorý patrí do rodiny agilných metód. SCRUM je založená na tom, aby sa účasť zákazníkov na začiatku vývojového cyklu prikladala vysokej priorite. Odporúča zahrnúť testovanie zákazníkom čo najskôr a často. Testovanie sa vykonáva vždy, keď je k dispozícii stabilná verzia. Základ SCRUM je založený na začatí testovania od začiatku projektu a pokračovaní až do konca projektu.
Kľúčovou hodnotou SCRUM je „kvalita je zodpovednosťou tímu“, čo zdôrazňuje, že za kvalitu softvéru je zodpovedný celý tím (nielen skúšobný tím). Ďalším dôležitým aspektom SCRUM je rozloženie softvéru na menšie spravovateľné časti a jeho rýchle dodanie zákazníkovi. Dodanie funkčného produktu je nanajvýš dôležité. Potom tím pokračuje v zdokonaľovaní softvéru a neustále ho dodáva v každom významnom kroku. To sa dosahuje veľmi krátkymi uvoľňovacími cyklami (nazývanými sprinty) a získaním spätnej väzby na zlepšenie na konci každého cyklu.
SCRUM definuje niekoľko kľúčových úloh pre bezproblémové fungovanie vývojového tímu. Sú to vlastník produktu (ktorý zastupuje zákazníka a udržiava nevybavené produkty), Scrum master (ktorý vystupuje ako organizátor a koordinátor tímu tým, že vedie stretnutia scrumu, udržuje nevybavené sprinty a vyhorí mapy) a ostatní členovia tímu. Tím môže pozostávať z tradičných rolí, ale väčšinou ide o tímy s vlastným riadením. Hlavnými artefaktmi Scrumu sú nevybavené produkty / nevybavené vydania (zoznam želaní), sprinty nevybavené / nevybavené nevybavené úlohy (úlohy v každej iterácii), vypálené grafy (zostávajúca práca vs. dátum). Hlavnými ceremoniálmi SCRUM sú stretnutie nevybavených produktov, stretnutie sprintu a stretnutie Retrospect.
Čo je extrémne programovanie?
Extreme Programming (skrátene XP) je metodika vývoja softvéru, ktorá patrí do agilného modelu. Extrémne programovanie vykonáva fázy vo veľmi malých súvislých krokoch (v porovnaní s tradičnými metódami). Prvý priechod, ktorý trvá iba deň alebo týždeň, je úmyselne neúplný. Aby sa dosiahli konkrétne ciele pre vývoj softvéru, sú na začiatku napísané automatizované testy. Potom vývojári urobia kódovanie. Dôraz je kladený na programovanie ako páry. Po úspešnom absolvovaní všetkých testov sa kódovanie považuje za úplné. Ďalšou fázou je návrh a architektúra, ktorá sa zaoberá refaktoringom kódu rovnakou sadou programátorov. Na konci tejto fázy sa zainteresovaným stranám predloží neúplný (ale funkčný) produkt. Hneď potom začne ďalšia fáza (ktorá sa zameriava na ďalšiu skupinu najdôležitejších funkcií).
Aký je rozdiel medzi extrémnym programovaním a SCRUM?
Extrémne programovanie a SCRUM sú pochopiteľne veľmi podobné a zladené metodiky. Medzi týmito dvoma metódami sú však jemné, ale dôležité rozdiely. Sprinty SCRUM trvajú 2 až 4 týždne, zatiaľ čo typické iterácie XP sú kratšie (posledné 1 až 2 týždne). Tímy SCRUM zvyčajne neumožňujú zmeny v sprintoch, ale tímy XP sú o niečo flexibilnejšie pri zmenách v iteráciách. Napríklad po plánovaní sprintu zostane sada položiek sprintu nezmenená, ale prvok, ktorý ešte nezačal pracovať, môže byť kedykoľvek vymenený za iný prvok v XP. Ďalším rozdielom medzi XP a SCRUM je to, že poradie funkcií vyvinutých v XP je zákazníkom s prísnou prioritou, zatiaľ čo tím SCRUM rozhoduje o poradí položiek (potom, čo vlastník produktu SCRUM určí prioritu nevybavených produktov).
Na rozdiel od XP, SCRUM nestanovuje žiadne technické postupy. Napríklad, XP je poháňaný postupmi, ako je vývoj na základe testov (TDD), párové programovanie, refaktoring atď. Niektorí sa však domnievajú, že poverenie skupiny praktík pre tímy, ktoré sa organizujú samy, by mohlo mať negatívny vplyv, a to sa dá zvážiť. nedostatok XP. Ďalším nedostatkom programovania Extreme je to, že neskúsené tímy môžu mať tendenciu ustupovať bez automatických testov alebo TDD (alebo jednoducho hackovania). Niektorí preto naznačujú, že SCRUM je lepší na začatie činnosti (pretože prináša veľké zlepšenia jednoducho prostredníctvom cielených iterácií s časovým rámcom) a XP je vhodný pre mierne zrelé tímy, ktoré objavili hodnotu vyššie uvedených postupov (skôr ako ich používajú, pretože boli požiadané) urobiť tak).