top of page
Keresés

Mi az a Scrum és miért nem hagyhatja ki, ha összetettebb fejlesztés előtt áll?


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 metódus - Következő lépés a fejlesztésben

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.

Scrum a gyakorlatban

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.

scrum-to-lean-kanban-board-typical.png

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


bottom of page