Extrém programozás vs SCRUM | XP vs SCRUM
Az évek során számos különféle szoftverfejlesztési módszert alkalmaztak a szoftveriparban, mint például a Waterfall fejlesztési módszert, a V-modellt, a RUP-ot és néhány más lineáris, iteratív és kombinált lineáris-iteratív módszert. Az agilis modell (vagy helyesebben: a módszerek egy csoportja) egy újabb szoftverfejlesztési modell, amelyet az Agile kiáltvány vezetett be az említett hagyományos szoftverfejlesztési módszertanokban tapasztalt 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ési mechanizmusként. Az agilis emberközpontú megközelítésnek nevezhető, mint a hagyományos módszerek. Az agilis modell nagyon korán szállítja a termék működő verzióját azzal, hogy nagyon apró és kezelhető részekre bontja a rendszert, hogy az ügyfél korán felismerhesse az előnyök egy részét. Az Agile tesztelési ideje viszonylag rövid a hagyományos módszerekhez képest, mert 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 fent 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 a fejlesztési ciklus elején kiemelten kezeljük az ügyfelek részvételét. Javasolja, hogy a vásárló a lehető leghamarabb és gyakran végezzen teszteket. A tesztelés minden ponton megtörténik, amikor elérhetővé válik egy stabil verzió. A SCRUM alapja a tesztelés kezdetén alapul a projekt kezdetétől, és a projekt végéig tart.
A SCRUM legfontosabb é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). A SCRUM másik fontos aspektusa a szoftver apróbb, kezelhető részekre bontása és nagyon gyors eljuttatása az ügyfelekhez. A működő termék szállítása rendkívül fontos. Ezután a csapat tovább fejleszti a szoftvert és minden nagyobb lépésnél folyamatosan szállít. Ez úgy érhető el, hogy nagyon rövid kiadási ciklusok vannak (úgynevezett sprintek), és minden egyes ciklus végén visszajelzést kapunk a fejlesztésről.
A SCRUM több kulcsfontosságú szerepet is meghatároz egy fejlesztői csapat zavartalan működéséhez. Ők a Terméktulajdonos (aki képviseli az ügyfelet és karbantartja a termékhátralékot), a Scrum mester (aki a csapat szervezőjeként és koordinátoraként jár el a scrum találkozók lebonyolításával, a sprint lemaradásának és a táblázatok leégésével) és a csapat többi tagja. Lehet, hogy egy csapat hagyományos szerepekből áll, de többnyire önirányító csapatok. A fő Scrum artefaktumok a termékhátralék / kiadási lemaradás (kívánságlista), a Sprint lemaradásai / hibahátralékok (feladatok minden iterációban), a táblázatok leégése (a munka hátralévő része és a dátum). A fő SCRUM-szertartások a termékhátralékos találkozó, a Sprint-találkozó és a retrospektív értekezlet.
Mi az extrém programozás?
Az Extreme Programming (rövidítve XP) egy szoftverfejlesztési módszertan, amely az Agile modellhez tartozik. Az extrém programozás nagyon kicsi, folyamatos lépésekben hajtja végre a fázisokat (összehasonlítva a hagyományos módszerekkel). Az első menet, amely csak egy napot vagy egy hetet vesz igénybe, szándékosan hiányos. A szoftver fejlesztésének konkrét céljai érdekében az elején automatizált teszteket írnak. Ezután a fejlesztők elvégzik a kódolást. A hangsúly a programozás párban történő elvégzésén van. Miután az összes teszt sikeres volt, a kódolás befejezettnek tekinthető. A következő szakasz a tervezés és az architektúra, amely a kód ugyanazon programozók által történő visszafejlesztésével foglalkozik. Ennek a szakasznak a végén a hiányos (de funkcionális) terméket bemutatják az érdekelt feleknek. Rögtön ezután kezdődik a következő szakasz (amely a legfontosabb funkciók következő csoportjá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. E két módszer között azonban vannak finom, de fontos különbségek. A SCRUM sprintek 2-4 hétig tartanak, míg a tipikus XP-s iterációk rövidebbek (1-2 hétig). Általában a SCRUM csapatok nem engedélyezik a sprintek megváltoztatását, de az XP csapatok kissé rugalmasabbak az iterációkon belüli változásokhoz. Például a sprinttervezés után az adott sprint elemkészlete változatlan marad, de egy olyan funkció, amely még nem kezdett el dolgozni, bármikor felcserélhető az XP valamelyik más szolgáltatásával. Egy másik különbség az XP és az SCRUM között az, hogy az XP-ben kifejlesztett funkciók sorrendjét az ügyfél szigorúan prioritásként kezeli, míg az SCRUM csapata dönt a tételek sorrendjéről (miután a termékhátrányt az SCRUM terméktulajdonosa prioritásként kezeli).
Az XP-vel ellentétben a SCRUM nem határoz meg semmilyen mérnöki gyakorlatot. Például az XP-t olyan gyakorlatok vezérlik, mint a tesztvezérelt fejlesztés (TDD), a páros programozás, a refaktorálás stb. Egyesek azonban úgy vélik, hogy az önszerveződő csapatokra vonatkozó gyakorlati előírások negatív hatással lehetnek, és ez megfontolható az XP hiányossága. Az Extreme programozás másik hiányossága, hogy a tapasztalatlan csapatok hajlamosak refaktorozni mindenféle automatizált teszt vagy TDD (vagy egyszerűen hackelés) nélkül. Ezért egyesek azt állítják, hogy a SCRUM jobb a bámulathoz (mivel nagy előrelépéseket hoz egyszerűen az összpontosított időzített iterációk révén), az XP pedig alkalmas 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érték őket) hogy így tegyek).