Scrum jest frameworkiem (czyli czymś, co składa się ze struktury (szkieletu) oraz posiada jasno określony sposób, jak z tej struktury korzystać), dzięki któremu możemy poprzez efektywną współpracę w małych grupach osób, dostarczać złożone produkty o najwyższej możliwej wartości.
Powstał w odpowiedzi na sposób, w jaki było wytwarzane oprogramowanie (jednak nie tylko tam, może on być stosowany). Mam tu na myśli oczywiście metodę Waterfall – która jest szczegółowym planem zakładającym sekwencyjną realizację poszczególnych etapów, w której przejście do następnej fazy możliwe jest dopiero po zakończeniu poprzedniej. W dzisiejszych czasach, takie podejście się oczywiście nadal sprawdza w niektórych dziedzinach, ale stoimy przed wyzwaniem dostosowywania się do zmieniającego świata i w tym właśnie pomaga nam Scrum. Dlaczego?
Najważniejsze aspekty:
Nie będę tutaj przepisywać informacji, które znajdują się w Scrum Guide lub są ogólnie dostępne w internecie – pozwolę sobie na zacytowanie tylko jednego fragmentu.
„Scrum in not a process, technique, or definitive method. Rather, it is a framework within which you can employ various processes and techniques”.
Oznacza to, że w różnych firmach Scrum może funkcjonować inaczej i dostosowywać się do danej organizacji. Zmiany nie są czymś złym, pod warunkiem, że doskonale rozumiemy, dlaczego podstawowe założenia wyglądają tak, a nie inaczej i czemu mają one służyć. Brak zrozumienia i wprowadzanie zmian, prowadzi do powstania wielu antywzorców – które niestety bardzo często są praktykowane.
Scrum jest oparty na empirycznym procesie, który składa się z trzech rzeczy (nazywane również filarami Scruma):
Przejrzystość – elementy procesów są jawne i zrozumiałe dla wszystkich.
Inspekcja – każdy element, cyklicznie poddawany jest weryfikacji w celu wyeliminowania przeszkód, które sprawiają, że proces nie jest optymalny.
Adaptacja – po znalezieniu przeszkody / utrudnienia, pozbywamy się go najszybciej jak to możliwe.
Wartości:
Odwaga – w podejmowaniu decyzji, działaniu, próbowaniu nowych rzeczy i proszeniu o pomoc.
Skupienie – na pracy w sprincie i realizacji jego celów.
Zaangażowanie – zespół pracuje wspólnie i razem tworzą „drużynę”, wzajemnie się wspierając.
Poszanowanie – dla każdego z kim pracujemy, niezależnie od różnic które nas dzielą.
Otwartość – podchodzimy pozytywnie do sugestii i zmian.
Zespół Scrumowy:
Product Owner – odpowiedzialny za maksymalizację wartości produktu.
Scrum Master – odpowiedzialny za promowanie i wspieranie Scruma.
Development Team – odpowiedzialny za dostarczanie przyrostu na koniec sprintu.
Wydarzenia Scrumowe:
Sprint – określony czas, w którym wykonywany jest przyrost.
Sprint Planning – spotkanie, na którym zespół prognozuje i planuje rzeczy, które zostaną wykonane w sprincie.
Daily Scrum – codzienne spotkania zespołu.
Sprint Review – spotkanie, na którym pokazywane są ukończone elementy oraz zbierany jest cenny feedback od interesariuszy.
Sprint Retrospective – spotkanie dla zespołu Scrumowego, na którym odbywa się inspekcja ostatniego sprintu oraz wyciągnięcie akcji do poprawy (adaptacja).
Jednym z nieoficjalnych, ale często stosowanych wydarzeń jest Sprint Refinement, czyli spotkania, na którym pielęgnujemy backlog.
Artefakty:
Backlog produktu – uporządkowana lista rzeczy, które mają być wprowadzone w produkcie.
Backlog sprintu – lista rzeczy, którą zespół wybrał na sprint.
Przyrost – elementy, które zostały ukończone w sprincie, a także suma wszelkich poprzednich ukończonych elementów.
Gdy już posiadamy zespół, stosujemy się do wyżej wymienionych wydarzeń, wartości oraz artefaktów, jesteśmy na dobrej drodze, żeby zacząć mówić o Scrumie.