Scrum
From Wikipedia
Scrum se javlja polovinom 90-tih godina prošlog veka. Čest utisak da je to akronim je pogrešan. Scrum je pojam preuzet iz ragbija i označava momenat kada se protivnički timovi skupljaju na gomilu i bore za posed lopte. To nije vezano, osim simbolički, za softverski projekat.
Ova metoda je više vezana za agilno upravljanje softverskim projektom, nego za agilno projektovanje softvera. Ona propisuje načine upravljanja zahtevima, formiranja iteracija (planiranje sprinta), kontrole implementacije i isporuke klijentu. Često se upotrebljava kao način vođenja XP, ili drugih projekta koji ne moraju obavezno da se projektuju nekom agilnom metodom.
Osnovu predstavljaju tri ključna pitanja koja se postavljaju na svakodnevnim, jutarnjim “stojećim” petnaestominutnim sastancima, a to su:
- Šta je urađeno juče?
- Šta će se raditi danas?
- Kakve nas danas prepreke očekuju?
Ova pitanja se odnose na:
- Kontrolu izvršenog
- Planiranje budućeg dizajna
- Identifikaciju rizika i nalaženje rešenja
Ciklus iteracije u Scrum procesu traje fiksno 30 dana. Za to vreme se svakodnevno prati napredak i identifikuju sporna i rizična mesta napredovanja.
Scrum je pun iskustvenih trikova i mehanizama koji održavaju koncentraciju na suštinu problema i ne dozvoljavaju degradaciju organizacije, kao što je plaćanje 100 din za kašnjenje na dnevni scrum sastanak, ili stajanje na sastanku. Jezgro scrum metodologije čine određeni elementi i prakse, a to su:
- Sagledavanje delova proizvoda
- Uloge i odgovornosti
- Zalihe proizvoda i planiranje isporuka
- Sprint zalihe i planiranje sprinta
- Sprint
- Dnevni stojeći sastanci
- Karte dogorevanja (burndown charts) i izveštavanje o projektu
- Pregled sprinta i retrospektiva
- 59minutni scrum
Scrum tim broji 5-10 članova od kojih su obaavezni jedan vlasnik proizvoda (product owner) koji je predstavnik klijenta, scrum master koji je vođa tima i ostali članovi tima koji mogu biti specijalisti za pojedine oblasti razvoja.
Kao projektni okvir koristi se za realizaciju različitih razvojnih procesa. Najčešće se kombinuje sa razvojem pomoću ekstremnog programiranja, ili drugih agilnih metoda.