thumb|400px|right|A Scrum folyamata. A 30 nap sprint hosszúság csak példa, bárhol lehet 1-4 hét között.
A Scrum egy összetett (komplex) problémák megoldására kifejlesztett általános keretrendszer. A szoftverfejlesztés területén gyakran használják az agilis szoftverfejlesztés egyik fontos összetevőjeként, de ugyanúgy megtaláljuk szolgáltatások fejlesztésénél, szervezetek irányításánál, még iskolákban is. Nem kizárólag termékek létrehozására kitalált folyamat vagy technika; sokkal inkább egy olyan keretrendszer, melyen belül különböző folyamatokat és technikákat lehet alkalmazni. A Scrum láthatóvá teszi a termék menedzsmentjének és a fejlesztési gyakorlatainak relatív hatékonyságát, így elősegíti annak tökéletesítését.
A Scrum keretrendszer a Scrum Csapatokból, valamint a hozzájuk rendelt szerepekből, eseményekből, munkaanyagokból (artifacts) és szabályokból áll. A keretrendszeren belül minden egyes komponens meghatározott célt szolgál, és mindegyik alapvetően szükséges a Scrum sikeréhez és használatához. A Scrum szabályai kapcsolják össze az eseményeket, szerepköröket és a munkaanyagokat, meghatározva a köztük lévő viszonyokat és kölcsönhatásokat. A Scrum szabályait a Scrum Guide ismerteti.https://www.scrumguides.org/docs/scrumguide/v2017/2017-Scrum-Guide-Hungarian.pdf A Scrum egyszerű, könnyen érthető, ám kihívás lehet mesteri szintre fejleszteni.
Kialakulása
Az 1986-os cikkükben Takeucsi Hirotaka és Nonaka Ikudzsiró leírnak egy módszert, ami nagyban felgyorsítja és rugalmasabbá teszi új termékek fejlesztését:Takeuchi and Nonaka: The New New Product Development Game (Harvard Business Review, Jan-Feb 1986) A tradicionális módszert (vízesés modell), amelyben az egymást sorban követő fejlesztési fázisokat más-más szakembercsapat kezeli, a váltófutáshoz hasonlítják, ahol egyszerre csak egy ember fut, és a futók egymásnak adják a stafétát. Az új módszert, amiben a fázisok erősen átlapolódnak, és a különböző területeket képviselő szakemberek egy kis csoportja végig, minden fázisban együtt dolgozik, a rögbihez hasonlítják, ahol egyszerre az egész csapat fut, és egymás között passzolgatják a labdát. Az esettanulmányok az autóiparból, a fényképezőgép-, számítógép-, és nyomtatógyártásból merítenek.
1991-ben DeGrace és StahlWicked Problems, Righteous Solutions () hivatkozott rá először úgy, hogy Scrum, amely egy rögbis szakkifejezés, ami már Takeucsi és Nonaka cikkében is szerepel. Ken Schwaber is használt scrum-szerű módszert az 1990-es évek elején. Ezzel egyidejűleg fejlesztett ki Jeff Sutherland egy hasonló módszert az Easel Corporationnél.http://jeffsutherland.com/scrum/FirstScrum2004.pdf Sutherland és Schwaber közös cikkben mutatták be a Scrumot az OOPSLA ’96-on Austinban. Schwaber és Sutherland az azt követő években közösen dolgozott a megjelent írások, a saját tapasztalataik és az szoftveriparban látott gyakorlatok összegyúrásán, melynek eredménye a ma Scrum néven ismert módszertan. 2001-ben Schwaber könyvet írt Mike Beedle-lel közösen Agile Software Development with SCRUM címmel.
Jellemzői
A Scrum egy keretrendszer, amely magában foglal bizonyos tevékenységeket és meghatározott szerepeket. A Scrum főbb szerepkörei a „Scrum Mester”, aki a folyamatot felügyeli és a projektmenedzserrel ellentétben, a csapat önálló munkavégzését coachként segíti, a „Product Owner” (magyarul terméktulajdonos), aki a projektben érdekelt döntéshozókat képviseli, és a „Csapat” (Team) ami 3-9 főből áll és lefedi az összes munkafolyamatot.
Minden sprint során – amely 1 és 4 hét közötti időtartamot jelent (a csapat döntésétől függően) – a csapat egy működő terméket (szoftvert vagy más eredményt) hoz létre. A sprint 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 teendőlistáját” nem lehet megváltoztatni, a sprint során elvégzett tevékenységek rögzítettek. Amint a sprint a végéhez ért, a csapat bemutatja az elkészült funkciókat (demo).
Az önszerveződő csapatok kialakulásának elősegítése végett a Scrum arra ösztönöz, hogy a projekt résztvevői egy helyen dolgozzanak, és szóban kommunikáljanak egymással.
A Scrum egyik legfontosabb alapelve az, hogy felismeri és elfogadja, hogy a megrendelő a fejlesztés során meggondolhatja magát a követelményekkel kapcsolatban, és a váratlan változások nem kezelhetők könnyen a hagyományos, előzetes tervezési fázison alapuló módszerekkel. Ezért a Scrum gyakorlati megközelítést választ, és elfogadja, hogy nincs lehetőség a probléma teljes megértésére és definiálására. Inkább azt próbálja maximálisan elősegíteni, hogy a csapat gyorsan meg tudja valósítani a funkciókat, és gyorsan tudjon reagálni a változó követelményekre.
Szerepek
Scrum Csapat A 2020-as Scrum Útmutató módosítása jelentős változtatást hozott a Scrum keretrendszerbe: kivették a Fejlesztőcsapat kifejezést, ami azt az érzetet keltette, hogy az egy kisebb csapat a csapatban. Az új változatban egy Scrum csapat létezik, aminek a Terméktulajdonos és a Scrum Mester is szerves része. Ők együttesen felelősek a létrehozott eredményekért.
Terméktulajdonos (Product Owner) 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 igényekkel, ami rendszerint a "User story"-k keretében kerül megfogalmazásra (Ki, mit, miért szeretne).
A Terméktulajdonos felelős a termék értékének maximalizálásáért. Ennek megvalósítása szervezeti formától, Scrum Csapatoktól és egyénektől függően nagyon eltérő lehet. A Terméktulajdonos az egyetlen személy, aki felelős a Termék Backlog (Termék Teendőlista - Product Backlog) kezeléséért, mely a következőket foglalja magában:
a Termék Backlog tételeinek egyértelmű leírása, a Termék Backlogban szereplő tételeknek sorba rendezése aszerint, hogy azok a célok és küldetések legjobb, leghatékonyabb elérését szolgálják, a Fejlesztők által végzett munka értékének optimalizálása, annak biztosítása, hogy a Termék Backlog elérhető, könnyen áttekinthető és mindenki számára világos legyen, továbbá egyértelmű legyen, hogy a Scrum Csapatnak mi lesz a következő munkája, valamint annak biztosítása, hogy a Fejlesztők legalább a munkavégzéshez szükséges szinten értsék a Termék Backlog egyes tételeit.
A Terméktulajdonos saját maga is elvégezheti a fenti teendőket, vagy a Fejlesztők is elvégezhetik azokat, viszont ez utóbbi esetben is a Terméktulajdonosé a felelősség. A Terméktulajdonos nem egy bizottság, hanem egyetlen személy. A Terméktulajdonos képviselheti egy bizottság kívánságait a Termék Backlogban, de ha a bizottság meg szeretné változtatni valamelyik Termék Backlog elem prioritását, akkor ezt csak a Terméktulajdonoson keresztül teheti meg.
Ahhoz, hogy a Terméktulajdonos sikeresen el tudja végezni a feladatát, a teljes szervezetnek tiszteletben kell tartania a döntéseit. A Terméktulajdonos döntései a Termék Backlog tartalmában és az elemek sorrendjében nyilvánulnak meg. Senki nincs felhatalmazva arra, hogy a Fejlesztőkkel a meghatározottól eltérő követelmény-rendszer szerint dolgoztasson, és a Fejlesztők sem fogadhatnak el utasításokat másoktól.
Fejlesztők (Developers)
A Fejlesztők azért felelősek, hogy a termék elkészüljön. A csapattagok különféle képességei lehetővé teszik hogy a feladatot közösen megoldják (üzleti elemzők, UX tervezők, programozók, grafikusok, tesztelők, stb.)
A Fejlesztők olyan szakemberek, akik azon dolgoznak, hogy minden egyes Sprint végén leszállítható legyen a termék egy “Kész” potenciálisan kibocsátható növekménye. A növekmény elkészítésében csak a Fejlesztők vesznek részt. A Fejlesztők maguk szervezik és menedzselik a saját munkájukat. Az így létrejövő szinergia optimalizálja a Scrum csapat hatékonyságát és termelékenységét.
A Fejlesztők az alábbi tulajdonságokkal rendelkeznek:
Önszerveződőek. Senki – még a Scrum Mester – sem mondja meg a Fejlesztőknek, hogy miként hozzanak létre a Termék Backlogból potenciálisan szállítható funkcionalitást tartalmazó növekményeket, A Fejlesztők, beleértve a teljes Scrum csapatot keresztfunkcionális, és csapatként minden olyan ismerettel és készséggel rendelkeznek, ami szükséges a termék növekmények elkészítéséhez, A Scrum a „Fejlesztő”-n kívül nem alkalmaz külön titulust az egyes tagokra, függetlenül attól, hogy egyénenként milyen tevékenységet végeznek. Ez alól a szabály alól nincs kivétel. A Fejlesztők körében nincsenek alcsoportok egyes célfeladatok – pl. tesztelés vagy üzleti elemzés – elvégzésére; ez alól a szabály alól nincs kivétel, illetve A Fejlesztők körében az egyes tagok speciális ismeretekkel, készségekkel és szakterületi tudással rendelkezhetnek, de a felelősség a teljes Scrum csapatra, mint egy egységre hárul.
Scrum Mester
A Scrum Mester a Scrum népszerűsítéséért és támogatásáért felelős, a Scrum Útmutatóban foglaltaknak megfelelően. A Scrum Mesterek ezt az által érik el, hogy mindenkinek segítenek megérteni a Scrum elméletét, gyakorlati elemeit, szabályait és értékeit. A Scrum Mester a Scrum Csapat szolgáló-vezetője (servant-leader). A Scrum Mester segíti a Scrum Csapaton kívülieknek megérteni azt, hogy mely Scrum Csapattal való interakciójuk lesz hasznos és melyik nem. A Scrum Mester mindenkinek segít oly módon megváltoztatni ezeket az interakciókat azért, hogy azok a Scrum Csapat által létrehozott értéket maximalizálják.https://scrumguides.org/docs/scrumguide/v2017/2017-Scrum-Guide-Hungarian.pdf
A Scrum mester szerepe többrétű. Ez egy támogató vezető szerepkör, fő célja a csapat teljesítményének növelése és a munkát akadályozó tényezők elhárítása, amelyek gátolják a csapatot abban, hogy a sprint célját megvalósítsa. A scrum mester nem a csapat vezetője, (a csapat önszerveződő), hanem a csapat és a külső tényezők közötti szereplő. Ü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 mester tartja mozgásban a csapatot (facilitátor), jelentős szerepet vállal az események lebonyolításában.
A Scrum mesterek nyolc feladatkörét Barry Overeem így fogalmazta meg:https://www.scrum.org/resources/8-stances-scrum-master
Támogató vezető, aki a csapat tagjaira és az általuk megteremtett ügyfél-érték megteremtésére összpontosít annak érdekében, hogy eredményeket érjenek el a szervezet értékeivel, alapelvekkel és üzleti célokkal összhangban. Facilitátor, aki a keretek tiszta meghatározásával segíti az együttműködést. Ide tartozik a megbeszélések adminisztrációja, moderálása és dokumentálása is. Coach, aki segít fejlődni az egyéneknek a gondolkodásmódra és a viselkedésre összpontosítva. A csapatot a folyamatos fejlődésben, míg a szervezetet a Scrum csapattal való valódi együttműködésben támogatja. Menedzser, aki az akadályok kezeléséért, a pazarló folyamatok csökkentéséért, a folyamatokért és a csapat egészségének, az önszerveződés határainak kezeléséért és a kultúra támogatásáért felelős. Támogatást nyújt a projekten kívüli megrendelők számára a megfelelő riportok és eszkalációs anyagok összeállításában. Folyamatosan követi a sprint állapotát és a projekt állapotát. Időben észreveszi, ha a tervek veszélybe kerülnek és a csapattal közösen kitalálja, hogy megoldható a team-en belül a probléma vagy eszkalálni kell. Utóbbi esetben megoldási javaslattal együtt eszkalál.