Scrum

A Scrum a legnépszerűbb agilis szoftverfejlesztési módszertan, mely gyors alkalmazkodást tesz lehetővé a fejlesztési folyamat bármely szakaszában. A körülmények márpedig változnak, folyamatosan, ezért létfontosságú, hogy a fejlesztési folyamatot hatékonyan és “fájdalommentesen” lehessen adaptálni bármikor, az új feltételeknek megfelelően. A szoftverfejlesztésben bizonyított hatékonysága folytán más területeken is elkezdődött az alkalmazása, mint pl. az üzemeltetés, szoftverkarbantartás, support stb. A ShiwaForce.com design […]

A Scrum a legnépszerűbb agilis szoftverfejlesztési módszertan, mely gyors alkalmazkodást tesz lehetővé a fejlesztési folyamat bármely szakaszában. A körülmények márpedig változnak, folyamatosan, ezért létfontosságú, hogy a fejlesztési folyamatot hatékonyan és “fájdalommentesen” lehessen adaptálni bármikor, az új feltételeknek megfelelően.

scrum_circle_en_big

A szoftverfejlesztésben bizonyított hatékonysága folytán más területeken is elkezdődött az alkalmazása, mint pl. az üzemeltetés, szoftverkarbantartás, support stb. A ShiwaForce.com design divíziója a ShiwaLook pl. sikeresen alkalmazza a Scrum főbb elemeit a grafikai tervezésben, webdesignban is.

Mitől agilis a Scrum?

A Scrum folyamata inkrementális, ciklikus, ezeket a ciklusokat nevezzük sprint-eknek. Egy sprint egy könnyen belátható és tervezhető rövidebb időintervallum, jellemzően 2-4 hét, ami alatt a fejlesztett szoftver egy működő inkrementummal gyarapodik, pl. újabb funkciókkal bővül vagy refaktoráláson esik át. Az adott sprintben elvégzendő feladatokat mindig közvetlenül a sprint előtt, a sprinttervezés alkalmával pontosítják, így lehet mindig az aktuális igényekhez igazodni.

Szerepek a Scrumban

A Scrumban dolgozó csapattagok meghatározott szerepeket kapnak. A főbb szerepkörök a „Scrum Master”, aki a módszertani szabályok betartásáért valamint a csapat erőforrásainak a biztosításáért felelős, a „Product Owner” aki a projektben érdekelt döntéshozókat, ügyfeleket képviseli, és a „Csapat” (Team) ami a nagyjából 5-9 főből áll és lefedi az összes fejlesztési munkafolyamatot.

Product Owner (Terméktulajdonos)
A megrendelőt képviseli. Biztosítja hogy a csapat az üzleti szempontból fontos dolgokkal foglalkozzon. A termék-teendőlistát bővíti a megrendelő szempontjából megfogalmazott bejegyzésekkel, amelyeket prioritással is ellát.

Scrum Master
Az elsődleges feladata hogy elhárítsa az akadályokat amelyek gátolják a csapatot abban, hogy a futam célját megvalósítsa. A scrum master nem a csapat vezetője, (a csapat önszerveződő), hanem a csapat és a zavaró tényezők közötti lökhárító. Ügyel arra, hogy a scrum folyamatot megfelelően alkalmazzák. Ő tartatja be a scrum szabályait. Kulcsfontosságú feladatának számít a csapat védelme és annak biztosítása, hogy a csapat az elvégzendő feladatokra koncentráljon. A scrum master tartja mozgásban a csapatot (facilitator), jelentős szerepet vállal az események lebonyolításában.

Csapat (Scrum Team)
A csapat azért felelős hogy a termék elkészüljön. Általában 5-9 főből áll. A csapattagok különféle képességei lehetővé teszik hogy a feladatot közösen megoldják (fejlesztő, dizájner, tesztelő, …)

Egy sprint folyamata

Minden sprint során a csapat egy működő szoftveregységet hoz létre. A futam során megvalósítandó funkciók a „Product Backlog”-ból (termék teendőlistája) kerülnek ki, ami az elvégzendő munka magas szintű követelményeiből álló, fontossági sorrendbe állított lista. Hogy a sprint során a lista melyik elemei kerülnek megvalósításra, azt a sprint elején tartott sprinttervező megbeszélés során választják ki. A megbeszélés során a „Product Owner” közli a csapattal, hogy a teendők listájából melyek azok, amiket leghamarabb akar, hogy elkészüljenek. Ezután a csapat eldönti, hogy ezek közül melyek azok, amelyeket a következö sprint során meg tud valósítani, és ezek megvalósítására ígéretet tesz. A sprint folyamán a „Sprint Backlog”-ot (a sprint teendőlistáját) nem lehet megváltoztatni, a sprint során elvégzett tevékenységek rögzítettek.

A sprint a végén a csapat egy nyilvános demózáson bemutatja az elkészült funkciókat. A sprint sikerességét a Product Owner értékeli, és ha a csapat hiánytalanul teljesített, a sprintet elfogadja és lezárja. Ha a teljesítés nem elegendő, a sprintet újra kell tervezni. Ezután egy retrospektívnek nevezett megbeszélésen megbeszélik az elmúlt sprint tapasztalatait, és azok alapján megtartandó / javítandó tevékenységeket, ezzel a csapat hatékonyságát igyekeznek maximalizálni.

Mérföldkövek, Release-ek

Ha a sprintek során létrehozott inkrementumok összességükben kitesznek egy üzletileg eladható terméket, akkor megszülethet egy release, amit a fejlesztő cég a belátása szerint értékesíthet, nyilvánosságra hozhat, kirakhat béta-tesztre stb.

Az inkrementumok folyamatos összeillesztésinek következményeként időnként szükségessé válhat refaktorálás, amelynek célja az egyes inkrementumok egységesítése, minél biztosabb integritás elérése valamint a további bővíthetőség fenntartása.

Az agilis fejlesztés filozófiájában ritkán beszélünk véglegesen kész termékről, helyette a piaci igényeknek megfelelő release-ek a bevált fogalmak. Az újabb és újabb release-ek egyre jobb, bővebb terméket eredményeznek. Amikor ezt a folyamatot a fejlsztő cég üzletileg már nem látja indokoltnak folytatni, lezárja a fejlesztést.