Extrém programozás vs SCRUM | XP vs SCRUM
Az évek során számos különböző szoftverfejlesztési módszert használtak a szoftveriparban, mint például a Waterfall fejlesztési módszer, a V-Model, a RUP és néhány egyéb lineáris, iteratív és kombinált lineáris-iteratív módszer. Az agilis modell (vagy helyesebben: módszertanok csoportja) egy újabb szoftverfejlesztési modell, amelyet az Agilis kiáltvány vezet be, hogy orvosolja a hagyományos szoftverfejlesztési módszerekben feltárt hiányosságokat.
Az agilis módszerek iteratív fejlesztésen alapulnak, és a felhasználók visszajelzéseit használják fő ellenőrzési mechanizmusként. Az agilis emberközpontú megközelítésnek nevezhető, mint a hagyományos módszerek. Az agilis modell a termék működőképes verzióját már nagyon korán szállítja a rendszer nagyon kicsi és kezelhető részekre bontásával, így az ügyfél már korán felismerheti az előnyöket. Az Agile tesztelési ciklusideje viszonylag rövid a hagyományos módszerekhez képest, mivel a tesztelés a fejlesztéssel párhuzamosan történik. Mindezen előnyök miatt jelenleg az Agilis módszereket részesítik előnyben a hagyományos módszerekkel szemben. A Scrum és az Extreme programozás az Agilis módszerek két legnépszerűbb változata.
Mi az a SCRUM?
Amint fentebb említettük, a SCRUM egy inkrementális és iteratív projektmenedzsment folyamat, amely az Agilis módszerek családjába tartozik. A SCRUM azon alapul, hogy a fejlesztési ciklus korai szakaszában kiemelten kezeli az ügyfelek részvételét. Azt javasolja, hogy a lehető leggyakrabban és korán beépítsék az ügyfél által végzett tesztelést. A tesztelés minden ponton megtörténik, amikor egy stabil verzió elérhetővé válik. A SCRUM alapja azon alapul, hogy a tesztelést a projekt elejétől kezdik, és a projekt végéig folytatják.
A SCRUM legfontosabb értéke „a minőség a csapat felelőssége”, ami hangsúlyozza, hogy a szoftver minősége az egész csapat felelőssége (nem csak a tesztelő csapat). A SCRUM másik fontos szempontja, hogy a szoftvert kisebb kezelhető részekre bontja, és nagyon gyorsan eljuttatja az ügyfelekhez. A működő termék szállítása rendkívül fontos. Ezt követően a csapat folytatja a szoftver fejlesztését, és minden nagyobb lépésnél folyamatosan szállít. Ez úgy érhető el, hogy nagyon rövid kioldási ciklusokat (úgynevezett sprinteket) használunk, és minden ciklus végén visszajelzést kapunk a fejlesztésről.
A SCRUM számos kulcsszerepet határoz meg a fejlesztőcsapat zavartalan működéséhez. Ők a terméktulajdonos (aki az ügyfelet képviseli és a termékhátralékot karbantartja), a Scrum mester (aki a csapat szervezőjeként és koordinátoraként Scrum értekezleteket vezet, sprint hátralékot és égetési diagramokat vezet) és a csapat többi tagja. Egy csapat hagyományos szerepkörökből állhat, de többnyire önmenedzselő csapatok. A Scrum fő műtermékei a termékhátralék/kiadási hátralék (kívánságlista), a Sprint-hátralékok/hibahátralékok (feladatok minden iterációban), az égési diagramok (a hátralévő munka a dátumhoz képest). A fő SCRUM-ceremóniák a termékhátralék-értekezlet, a Sprint-találkozó és a Retrospect-találkozó.
Mi az extrém programozás?
Extreme Programming (rövidítve XP) egy szoftverfejlesztési módszertan, amely az Agilis modellhez tartozik. Az extrém programozás nagyon kis, folyamatos lépésekben hajtja végre a fázisokat (a hagyományos módszerekhez képest). Az első lépés, amely csak egy napot vagy hetet vesz igénybe, szándékosan hiányos. A szoftverfejlesztés konkrét céljainak megadása érdekében az induláskor automatizált teszteket írnak. Ezután a fejlesztők végzik a kódolást. A hangsúly a páros programozáson van. Ha az összes teszt sikeres, a kódolás befejezettnek tekinthető. A következő fázis a tervezés és az architektúra, amely a kód ugyanazon programozócsoport általi újrafeldolgozásával foglalkozik. Ennek a fázisnak a végén a hiányos (de működőképes) terméket bemutatják az érintetteknek. Közvetlenül ezután kezdődik a következő fázis (amely a legfontosabb jellemzők következő sorozatára összpontosít).
Mi a különbség az Extreme Programming és a SCRUM között?
Az extrém programozás és a SCRUM érthető módon nagyon hasonló és összehangolt módszertanok. A két módszer között azonban vannak finom, de lényeges különbségek. A SCRUM sprintek 2-4 hétig tartanak, míg a tipikus XP iterációk rövidebbek (1-2 hétig tartanak). A SCRUM-csapatok általában nem engedélyezik a sprintek módosítását, de az XP-csapatok kissé rugalmasabbak az iterációkon belüli változtatásokhoz. Például a sprint tervezése után az adott sprint elemeinek halmaza változatlan marad, de egy szolgáltatás, amely még nem indult el, bármikor lecserélhető az XP valamely más funkciójával. További különbség az XP és a SCRUM között, hogy az XP-ben kifejlesztett funkciók sorrendjét szigorúan a vásárló határozza meg, míg a SCRUM csapat dönti el a tételek sorrendjét (miután a termékhátralékot a SCRUM terméktulajdonosa rangsorolja).
Az XP-vel ellentétben a SCRUM nem ír elő semmilyen mérnöki gyakorlatot. Például az XP-t olyan gyakorlatok vezérlik, mint a tesztvezérelt fejlesztés (TDD), páros programozás, újrafaktorálás stb. Néhányan azonban úgy vélik, hogy az önszerveződő csapatokra vonatkozó gyakorlatok kötelezővé tétele negatív hatással lehet, és ez megfontolandó. az XP hiányossága. Az Extreme programozás másik hiányossága, hogy a tapasztalatlan csapatok hajlamosak lehetnek automatizált tesztek vagy TDD (vagy egyszerűen hackelés) nélkül is. Ezért egyesek azt javasolják, hogy a SCRUM jobb a bámulásra (mivel nagy javulást hoz pusztán a fókuszált időkeretes iterációk révén), az XP pedig olyan kissé érett csapatok számára, akik felfedezték a fent említett gyakorlatok értékét (ahelyett, hogy használnák őket, mert megkérdezték őket). ehhez).