Mi az a Scrum és miért nem hagyhatja ki, ha összetettebb fejlesztés előtt áll?
- Gyula Kiss
- 2015. márc. 2.
- 6 perc olvasás
Mi a Scrum?
A Scrum egy termékfejlesztési projektek vezetésére kidolgozott rendszer. Alapelvei és technikái rendkívül egyszerűek és letisztultak, amelyek tökéletesen alkalmasak komplex innovatív projektek irányítására. Alkalmazhatóságát jelzi, hogy a legnagyobb szoftvergyártók gyakorlatilag kivétel nélkül alkalmazzák.
A Scrum története
A Scrum alapjait két japán professzor (Hirotaka Takeuchi és Ikujiro Nonaka) fektette le 1986-ban. A szerzők olyan vállalatokat vizsgáltak több szektorban, amelyek az iparági átlagot messze meghaladó sebességgel és minőségben fejlesztettek ki új termékeket. A Scrum az általuk alkalmazott módszerek rendszerbe foglalásával alakult ki.
Gyakorlati modell
A Scrum leginkább abban különbözik a többi a módszertantól, hogy sikeres gyakorlatok rendszerbe foglalásával, nem pedig egy elmélet gyakorlatba ültetésével alakult ki. Ennek köszönhetően igen gyakorlatias, hatékony és bizonyított.
Betartható módszerek
A szoftver iparban elterjedt módszertanok legnagyobb korlátja a komplexitásuk. Az ilyen, bonyolult mechanizmusokon alapuló módszertanok idegenek a gyakorlattól, szigorú betartásuk a megvalósító csapatok tagjait frusztrálja, a hatékony munkavégzésben hátráltatja, idővel öncélúvá válnak. A Scrum egyszerű alapelvei minimális irányítási költséget tesznek lehetővé, a szabályokat a csapatok hamar elfogadják, ezért a projekt rövid idő alatt lényegesen szabályozottabbá válik.
Növekvő hatékonyság
A Scrum egy jól alkalmazható keretrendszert biztosít ahhoz, hogy a megvalósító csapatok kialakítsák és folyamatosan fejlesszék saját módszereiket és szabályaikat. Az induláshoz szükséges kezdeti szabályrendszert a teamek gyorsan továbbfejlesztik és testre szabják, majd egy véget nem érő, állandó fejlődés és hatékonyság-növekedési folyamat veszi kezdetét.
Scrum áttekintés
A Scrum projektek iteratív fejlesztési megközelítést valósítanak meg. A projekt során előállítandó értékeket (funkciók, projekt termékek stb.) a product backlog tartalmazza. A scrum team iterációk során (sprint) készíti el a terméket. A projekt során minden sprint végén kötelező visszacsatolási tevékenységeket kell végrehajtani. A sprintek eredménye minden esetben működő, kipróbálható funkció.

Scrum szerepkörök
A Scrum termék gazdája a product owner, aki meghatározza a fejlesztendő rendszer célját és főbb funkcióit, valamint ezek felhasználói értékét (prioritások). A terméket a megvalósító team készíti el, amely lehetőség szerint a projekt teljes ideje alatt állandó összetételű. A csapat hatékony munkavégzéséhez szükséges feltételek megteremtése a scrum master feladata.
Tevékenységek, folyamat
A legfontosabb tevékenység a sprint végrehajtás, amely során a csapat a fejlesztési munkát végzi. Az egyes sprintek során megvalósítandó funkciókat a sprint tervezés során bontják le végrehajtandó és ellenőrizhető tevékenységekre. A sprint alatt, a napi tervezés során a csapat minden nap kiértékeli az előző nap eredményét és személyre bontva meghatározza az aznapi feladatokat. A sprint lezárását a kiértékelés követi, ahol a team bemutatja a product ownernek az elkészült eredményt, illetve kiértékeli munkamódszereit és meghatározza a szükséges módosításokat.
Termékek, eszközök
A Scrum keretrendszer kulcsponti eleme a product backlog, amely fontossági sorrendben tartalmazza a projekt során megvalósítandó szolgáltatásokat, projekt termékeket. A sprint tervezés során a team készíti el az adott sprint feladatait tartalmazó sprint backlog listát. A Scrum legfontosabb irányítási segédeszközei a release burn-down chart, a sprint burn-down chart és a team-board, amelyek a projekt előrehaladásának mérését szolgálják.
Scrum szerepkörök
A scrum legfontosabb szerepköre a team, amely a termék megvalósítását végzi. A hagyományos értelemben vett projektmenedzseri feladatok két fókuszterülete külön szerepkört kap. A termék üzleti és funkcionális döntéseit a product owner hozza meg, míg a megvalósító csapat hatékony működtetése a scrum master feladata.
Team
A scrum teamek keresztfunkcionális csapatok, azaz a minden team rendelkezik az összes olyan kulcsfontosságú szakértői kompetenciával, ami a termék előállításához szükséges (pl. fejlesztők, tesztelők, üzleti elemzők, adatbázis szakértők stb.). A csapat lehetőleg 7 fő körüli létszámú és magas önállóssággal rendelkezik a saját munkájának megszervezése terén. A csapat a product owner által vezetett product backlog elemeit valósítja meg, fontossági sorrendben. A csapat (és a scrum master) felelőssége, hogy az adott iterációba betervezett feladatmennyiséget a meghatározott minőségben elkészítse és a sprint lezárásakor bemutassa a product ownernek.
Product owner
A product owner határozza meg a termék üzleti paramétereit, ő ismeri a legjobban a leendő felhasználók termékkel szemben támasztott igényeit. Ennek alapján alakítja ki a termék vízióját, amit a projekt ideje alatt a megvalósító csapat felé folyamatosan, érthetően kommunikál. Ő határozza meg a funkciók közötti fontossági sorrendet és az elvárt ütemezést, dönt a lehetséges megvalósítási alternatívák közül. A product owner a projekt finanszírozóinak képviselője, végső soron a termék fejlesztésébe fektetett ráfordítások megtérüléséért/haszosulásáért felelős. A product owner legfontosabb feladata a product backlog vezetése.
Scrum master
A scrum master a megvalósító csapat “edzője”, egy konzultatív típusú vezető, akinek feladata, hogy biztosítsa a csapat magas produktivitását és a scrum eszközrendszerének helyes használatát. Az ő feladata, hogy folyamatosan kövesse a feladatok megvalósulásának állapotát, és ezt egyértelműen láthatóvá tegye a csapat és a menedzsment számára. A scrum masternek kell gondoskodnia a csapat munkáját hátráltató akadályok azonosításáról, priorizálásáról és elhárításáról. Ezek egy része külső tényező, mások a csapaton belül megoldhatók. A magas hatékonyság fenntartásához tartozik a csapaton belül jelentkező esetleges konfliktusok feloldása, a csapategység megteremtése és a motiváció fenntartása.
Scrum események
A Scrum keretrendszerben vezetett projektek végrehajtásának gerincét a fix hosszúságú iterációk, a sprintek adják. A sprintek alatt megvalósítandó feladatok azonosítását és tervezését a sprint tervezés során végzi el a csapat. A napi feladatokat a napi tervezések alkalmával osztják szét. Minden sprint az elért eredmények bemutatásával, a tapasztalatok kiértékelésével és a projekt terv pontosításával zárul.

Sprint tervezés
A termékkel szemben támasztott követelményeket a product backlog tartalmazza, általában üzleti fogalmi rendszerben (user story) megfogalmazva. A sprint tervezés kezdetén a team meghatározza a következő sprint során vállalható feladatok mennyiségét, azaz a team kapacitását a következő iterációra. A tervezés során a team értelmezi és a product ownerrel egyeztetve pontosítja a product backlogban megfogalmazott elvárásokat, majd azokat konkrét fejlesztési feladatokra bontja fel. A tervezés során a team a legmagasabb prioritású user storyk közül annyinak a megvalósítását vállalja, amennyit a kapacitása lehetővé tesz. A tervezés célja tehát kettős: egyrészt egy kötelezettségvállalás a team részéről, másrészt a feladatspecifikáció pontos meghatározása.
Napi tervezés (daily standup)
A sprint végrehajtása alatt a csapat folyamatos, napi feladattervezést végez, az ún. napi standup meetingek során. Ezek maximum 15 perc időtartamú megbeszélések, melyeken a csapat tagjai egyeztetik a következő találkozóig megvalósítandó feladatokat, az előző találkozó óta elért eredményeket és azonosítják a feladatok végrehajtását akadályozó tényezőket, amelyek elhárítása a scrum master feladata. A napi megbeszélés végén a scrum master aktualizálja a sprint előrehaladását mutató burndown chartot, így a teljes csapat tisztában van a team tervekhez viszonyított teljesítményével. Ezek a rövid találkozók nagy fokú átláthatóságot, gyors reakcióképességet és magas motivációs szintet biztosítanak.
Sprint kiértékelés (review)
A sprint review során a csapat bemutatja a product ownernek a sprint során megvalósított funkciókat, aki így azonnal kiértékelheti az eredményt és visszacsatolást adhat a csapatnak. A bemutató után a team kiértékeli a sprint tanulságait, azonosítja az elkövetett hibákat és intézkedéseket határoz meg a folyamatainak javítására. A sprint review eredményeként a product owner módosíthatja a product backlogot, változtathat a prioritásokon és aktualizálja a projekttervet.
Scrum termékek, eszközök
A Scrum projekt során megvalósítandó termékkel szemben támasztott elvárások listáját a product backlog tartalmazza. A csapat a sprint tervezés során ellítja elő a sprint backlogot, ami a következő sprintben megvalósítandó feladatok listája. A sprint tervezett előrehaladását és a csapat tényleges teljesítményét a burndown chart mutatja.
Product backlog
A product backlog egy fontossági sorrendbe rendezett lista azokról az elvárásokról, melyeket a készítendő terméknek ki kell elégítenie. Ezek részben a felhasználók számára értéket jelentő funkcionális szolgáltatások, részben a termékkel szemben támasztott technológiai elvárások. A product backlog elemeinek (user story-k) részletezettsége a fontosságuk szerint nő. A legfontosabb (azaz a lehető legrövidebb időn belül megvalósítandó) elemek elég részletesen kidolgozottak és elég aprók ahhoz, hogy azokat a team egy sprint alatt megvalósítsa. A távolabbi jövőben sorra kerülő elemek kidolgozottsága ennél alacsonyabb szintű is lehet. A product backlog elemeihez hozzávetőleges méretet (komplexitást) kell rendelni.

Sprint backlog
A sprint tervezés során a product backlog elemeit a csapat konkrét fejlesztési feladatokra bontja, melyek lehetőleg 1-2 nap alatt megvalósíthatók. A team meghatározza és összegzi az azonosított feladatok megvalósításának erőforrás-igényét, és összeveti a magas szinten (product backlog) becsült komplexitással. Amennyiben az eltérés jelentős, a product owner feladata, hogy az eredeti user story-t tovább bontsa olyan méretű elemekre, amelyek egy sprint alatt nagy biztonsággal megvalósíthatók.
Team board
A team board - másnéven Scrum board- a scrum csapat elsődleges státuszkövető eszköze. Ez a csapat munkahelységében kifüggesztett tábla, ahol a sprintben megvalósítandó feladatok állapotát követi a team. A feladatokat egy-egy kártya jelzi. A táblán három státuszban lehetnek a feladatok: várakozik, megvalósítás alatt, elkészült. A táblán lévő kártyákat legkésőbb a napi egyeztetések során mozgatja a megfelelő státuszba a csapat. A team board vezetése a Scrum Master feladata.
Burndown chart
A burndown chart az adott sprintben még megvalósítandó (hátra lévő) feladatok mennyiségét ábrázolja. A burndown chart elsődleges szerepe, hogy egyértelmű, a csapat minden tagja számára látható visszajelzést adjon a sprint állapotáról. A grafikont a scrum master minden nap frissíti a napi találkozók során megismert információk alapján. A hátra lévő feladatok mennyisége változik, ha a csapat például elkészült egy feladattal, vagy a megvalósítás során újabb feladatok kerülnek felszínre, vagy kiderül, hogy egy-egy feladat méretét a tervezés során tévesen becsülte meg a team.
Commentaires