Scrum #1 – Scrum tai sistema sudėtingiems produktams kurti

Updated: Oct 23, 2018

Prasidėjus naujiesiems mokslo metams pats laikas pradėti straipsnių ciklą apie Scrum pagrindus. Scrum tapus vienu iš populiariausių Agile metodų natūraliai atsiranda visokių „Scrum versijų”. Man jau teko girdėti  terminus „grynas Scrum” (“pure Scrum”), „beveik Scrum” (“almost Scrum”) ir pan. Norit išsklaidyti nesusipratimus kas yra Scrum, o kas nėra Scrum, jo autoriai Ken Schwaber ir Jeff Sutherland paruošė trumpą Scrum gidą, kuriuo pagrinde ir remsiuosi šiame straipsnių cikle pridėdamas savo patirtį ir paaiškinimus. Taigi, pirmas straipsnis apie Scrum sistemą. 


Scrum nėra procesas ar technika kaip kurti produktus. Scrum yra sistema (framework), kurioje galima taikyti skirtingus procesus ir technikas. Scrum vaidmuo yra parodyti jūsų gamybos procesų ir technikų veiksmingumą, tam kad galėtumėte jas tobulinti pasinaudodami Scrum suteikiama sistema, kurioje kuriami sudėtingi produktai.


Scrum ir krepšinis: kas bendro?


Palyginimui galima būtų pasižiūrėti į krepšinį (ką tik baigėsi bronzinis pasaulio čempionatas (dar kartą AČIŪ krepšininkams už jį), tad nepaminėti krepšinio būtų tikra nuodėmė ;) ). Fiba yra išleidusi krepšinio taisykles, kuriose aiškiai ir vienareikšmiškai yra aprašomos visos detalės: kokio dydžio yra aikštė, kiek žaidėjų komandoje, kada įskaitomi taškai, o kada fiksuojama pražanga. Bet kuris žmogus gali jas perskaityti, tačiau gerai žaisti krepšinį to neužtenka. Komandos vedamos jų trenerių turi surasti būdus kaip žaisti efektyviai, kaip tobulinti metimus, kaip varytis kamuolį, kokius derinius naudoti ir t.t. Šių technikų visuma ir nulemia kiek gera bus komanda, o taisyklės yra rėmai į kuriuos krepšininkai turi sutilpti. Jeigu nesivadovausime bent viena taisykle (pvz. spardysime kamuolį koja į krepšį) tai jau bus NE krepšinis. Lygiai taip pat yra su Scrum. Jei nesivadovausime bent viena taisykle, tai jau bus NE Scrum.


Kaip „užmirštamos” Scrum taisyklės


Kodėl tai taip svarbu suvokti? Ogi todėl, kad krepšinio aikštelėje yra teisėjai, kurie neleidžia nukrypti nuo taisyklių, o programinės įrangos kūrime jų dažniausiai nėra. Jeigu krepšininkas nemoka pagal taisykles varytis kamuolio, teisėjai sušvilpia žingsnius ir žaidėjui viskas aišku – reikia mokytis, kad daugiau tai nepasikartotų. Kai Scrum komanda susiduria su kokia nors taisykle kurią sunkiau įgyvendinti jie dažniausiai nori tiesiog nesivadovauti ja  (juk tai daug paprasčiau nei išmokti taisyklingai varytis kamuolį!). O tada bandoma sakyti: Scrum mums neveikia, neatneša žadėtosios vertės. Įdomu kiek žiūrovų (krepšinio vertė) susilauktų rungtynės jei jose krepšininkai nustotų vadovatis taisyklėmis?


Dažniausias (jų be abejo yra labai daug) mano matytas pavyzdys diegiant Scrum: testuotojo buvimas tarpfunkcinės komandos nariu. Komanda pamato, kad sunku susidėlioti užduotis sprinte taip, kad testuotojas visą sprintą turėtų vienodą ir pakankamą kiekį darbų. Kokius siūlymus esu girdėjęs? Testuotojas negali būti tarpfunkcinės komandos narys; testavimo užduotis reikia rašyti atskirai ir pagal tai spręsti ką padarysime sprinte; reikia brėžti atskirą nuo komandos testuotojo užduočių deginimo kreivę ir t.t. Kai esminis priminimas ir klausimas, kurį reikia užduoti sau, yra: Scrum sistemoje produktą kuria tarpfunkcinė komanda, tai yra taisyklė kurios laužyti negalima (kitaip teisėjas švilps); testuotojas yra daugiausia testavimo įgūdžių turintis asmuo komandoje (pvz. kaip ir įžaidėjas komandoje); kaip galime organizuoti savo sprintą, kad jis būtų efektyvus, kurtų produktą kurį susiplanavome, ir naudingiausiai išnaudotume testuotojo įgūdžius – ką galime jam padėti padaryti, ką jis gali padėti padaryti kitiems. Juk Mantas Kalnietis neįžaidė kamuolio vienas visas 40 min., jam padėjo tai daryti. Taip pat kaip ir jis pats padėjo kitiems: puolė, statė užtvaras ir gynėsi.


Iš tikrųjų Scrum sistema turi teisėją, tai Scrum Meistras ;) Bet apie šią rolę ir jos atsakomybės vėliau.


Galbūt kažkas galit pasidalinti daugiau pavyzdžių iš savo praktikos kur užuot radę sprendimą kaip sutilpti į Scrum taisykles jas praignoravote/pakeitėte? Rašykit komentaruose.


Kiti Scrum pagrindai ciklo straipsniai:


Scrum #2- „vištos” negali „kiaulėms” aiškinti kaip atlikti jų darbą

Scrum #3 – Scrum meistras – komandos lyderis ir mokytojas

Scrum #4 – Produkto šeimininkas – atsakingas už komandos kuriamą vertę