Extrém programozás vs SCRUM | XP vs SCRUM
Az évek során számos különböző szoftverfejlesztési módszertant alkalmaztak a szoftveriparban, ilyen például a Waterfall fejlesztési módszer, a V-Model, a RUP és néhány más lineáris, iteratív és kombinált lineáris-iteratív módszer. Az agilis modell (vagy helyesebben: a módszertanok egy csoportja) egy újabb szoftverfejlesztési modell, amelyet az Agile manifesztó vezet be a tradicionális szoftverfejlesztési módszertanban található hiányosságok orvoslására..
Az agilis módszerek iteratív fejlesztésen alapulnak, és a felhasználók visszajelzéseit használják fő vezérlő mechanizmusként. Az agilisokat emberközpontú megközelítésnek lehet nevezni, mint a hagyományos módszereket. Az agilis modell a termék működő verzióját nagyon korán szállítja be, a rendszert nagyon kicsi és kezelhető részekre bontva, hogy az ügyfél korán megismerje az előnyöket. Az Agile tesztelési ciklusideje viszonylag rövid a hagyományos módszerekhez képest, mivel a tesztelést a fejlesztéssel párhuzamosan végzik. Mindezen előnyök miatt az agilis módszereket előnyben részesítik a hagyományos módszerekkel szemben. A Scrum és az Extreme programozás az Agile módszerek két legnépszerűbb változata.
Mi az a SCRUM??
Mint fentebb említettük, a SCRUM egy inkrementális és iteratív projektmenedzsment folyamat, amely az Agile módszerek családjába tartozik. A SCRUM azon alapul, hogy kiemelt prioritást élvez az ügyfelek részvétele a fejlesztési ciklus elején. Javasolja, hogy a vásárló korai és lehető leggyakrabban bevonja a tesztelést. A tesztelés minden ponton megtörténik, amikor elérhetővé válik egy stabil verzió. A SCRUM megalapozása a tesztelés megkezdésén alapul, a projekt kezdetétől egészen a projekt végéig.
A SCRUM kulcsértéke a „minőség a csapat felelőssége”, amely hangsúlyozza, hogy a szoftver minőségéért az egész csapat felelős (nem csak a tesztelő csapat). Az SCRUM másik fontos szempontja a szoftver apróbb kezelhető részekre bontása, és az ügyfeleknek történő gyors szállítás. A működő termék szállítása rendkívül fontos. Ezután a csapat tovább fejleszti a szoftvert, és folyamatosan szállít minden nagyobb lépésnél. Ez úgy érhető el, hogy nagyon rövid felszabadulási ciklusokkal (úgynevezett sprint-ekkel) rendelkezik, és minden ciklus végén visszajelzést kapunk a fejlesztésről.
A SCRUM számos kulcsfontosságú szerepet határoz meg a fejlesztői csapat zökkenőmentes működése szempontjából. Ők a Terméktulajdonos (aki képviseli az ügyfelet és fenntartja a termékmaradványokat), Scrum mester (aki a csapat szervezője és koordinátoraként működik a scrum értekezletek levezetésével, a sprint lemaradás fenntartásával és a táblák elégetésével) és a csapat többi tagja. A csapat tagjai lehetnek hagyományos szerepek, de leginkább önálló vezetők. A Scrum fő műtermékei a következők: Termékmagasság / Kiadási lemaradás (kívánságlista), Sprint-lemaradások / hibamagasságok (feladatok minden iterációnál), Diagramok égetése (munka megmaradás a dátummal). A SCRUM fő ünnepségei a termékmaradvány, a Sprint és a Retrospect találkozók.
Mi az extrém programozás??
Az Extreme Programming (rövidítve XP) az Agile modellhez tartozó szoftverfejlesztési módszertan. Az extrém programozás a fázisokat nagyon kicsi, folyamatos lépésekben hajtja végre (a hagyományos módszerekhez képest). Az első átvétel, amely csak egy nap vagy egy hét vesz igénybe, szándékosan hiányos. A szoftver fejlesztésének konkrét céljainak meghatározása érdekében az elején automatikus teszteket írnak. Ezután a fejlesztők elvégzik a kódolást. A hangsúly a páros programozásra koncentrál. Ha az összes teszt sikeres, a kódolás teljesnek tekinthető. A következő szakasz a tervezés és az építészet, amely a kód ugyanazon programozókészlet általi refaktorálására vonatkozik. E szakasz végén a hiányos (de funkcionális) terméket bemutatják az érdekelt feleknek. Közvetlenül ezután elindul a következő szakasz (amely a legfontosabb funkciók következő sorozatára összpontosít).
Mi a különbség az extrém programozás és a SCRUM között??
Az Extreme Programming és a SCRUM érthető módon nagyon hasonló és összehangolt módszertan. Ugyanakkor finom, de fontos különbségek vannak e két módszer között. A SCRUM sprintje 2-4 hétig tart, míg a tipikus XP iterációk rövidebbek (az elmúlt 1-2 héten). Általában a SCRUM csapatok nem engedik meg a változásokat a sprintben, de az XP csapatok alig hajlamosak az iterációkon belüli változásokra. Például, a sprint megtervezése után az adott sprint elemkészlete változatlan marad, de egy olyan szolgáltatás, amelyen még nem kezdték el dolgozni, bármikor felcserélhető egy másik szolgáltatással az XP-ben. Egy másik különbség az XP és a SCRUM között az, hogy az XP-ben kifejlesztett szolgáltatások sorrendjét az ügyfél szigorúan prioritási sorrendbe állítja, míg az SCRUM csapata dönt az elemek sorrendjéről (miután a termékmaradást a SCRUM terméktulajdonos priorizálta)..
Az XP-vel ellentétben a SCRUM nem ír elő mérnöki gyakorlatot. Például az XP-t olyan gyakorlatok hajtják, mint a tesztvezérelt fejlesztés (TDD), a páros programozás, a refaktorálás stb. Ugyanakkor egyesek úgy vélik, hogy egy gyakorlatkészlet önrendelkezõ csapatokra gyakorlásának negatív hatása lehet, és ezt meg lehet fontolni az XP hiányosságai. Az Extreme programozás másik hiányossága, hogy a tapasztalatlan csapatok automatizált tesztek vagy TDD (vagy egyszerűen hackelés) nélkül hajlamosak a refaktorra. Ezért egyesek szerint a SCRUM jobb a bámuláshoz (mivel nagy javulást eredményez egyszerűen az összpontosított idődobozba helyezett iterációk révén), az XP pedig kissé érett csapatok számára alkalmas, akik felfedezték a fent említett gyakorlatok értékét (ahelyett, hogy alkalmaznák őket, mert megkérdezték őket) ezt megtenni).