Autor:10.09.2024
Przed erą Scrum, dominującym podejściem do tworzenia oprogramowania był model kaskadowy. Proces rozpoczynał się od zbierania wymagań, które były ustalane wspólnie z klientem. Następnie opracowywano design, czyli ogólny plan, jak ma działać i wyglądać program. Kolejny krok to programowanie, gdzie tworzono kod zgodny z opracowanym designem.
Po zakończeniu programowania przechodzono do testowania, aby upewnić się, że kod działa zgodnie z założeniami. Na końcu klient otrzymywał gotowy produkt, a firma IT zapewniała wsparcie w przypadku problemów.
Powyższy proces wydaje się prosty i logiczny, ale ma kilka poważnych wad.
Każda faza musi być zakończona przed rozpoczęciem kolejnej. Programiści nie mogli rozpocząć pracy, dopóki faza designu (projektu) nie była w pełni zakończona.
Klient ma wpływ tylko na początku procesu, podczas zbierania wymagań. Gdy programowanie się rozpoczyna, jego rola jest zminimalizowana. Klient czekał na finalny produkt, często bez możliwości wprowadzania jakichkolwiek zmian w trakcie realizacji projektu.
Model zakłada, że klient dokładnie wie, czego chce na samym początku projektu. W rzeczywistości jednak klienci często nie są w stanie precyzyjnie określić swoich potrzeb od razu. To prowadziło do sytuacji, gdzie projekt rozwijał się w oparciu o niepełne lub błędne założenia.
Gdy okazało się, że kod jest pełen błędów lub nie spełnia oczekiwań, osoby, które go napisały, mogły już być zaangażowane w inne projekty lub nawet pracować w innej firmie.
Sztywność procesu, brak możliwości wprowadzania zmian w trakcie realizacji oraz długi czas realizacji sprawiały, że finalny produkt często nie spełniał oczekiwań klienta.
Te problemy przyczyniły się do powstania nowych, bardziej elastycznych metod, takich jak Scrum, które lepiej odpowiadają na dynamiczne potrzeby rynku i klientów.
Scrum jest bardzo elastyczną metodyką, która pozwala zespołom na szybkie dostosowywanie się do zmian i efektywne zarządzanie projektami.
Scrum narodził się z potrzeby zmiany w sposobie wytwarzania oprogramowania. Jest jedną z najpopularniejszych metodyk zwinnych (ang. Agile) na świecie, z powodzeniem stosowaną w różnych branżach - nie tylko w IT.
Scrum jest w praktyce realizowany dzięki trzem elementom: zespołom, artefaktom i zdarzeniom.
Składa się z kilku osób i pozwala na efektywną komunikację oraz współpracę. Kluczowym założeniem jest to, że zespół samodzielnie zarządza swoją pracą. Członkowie zespołu podejmują decyzje dotyczące przydzielania zadań, planowania i wykonywania pracy. Kluczowe role to: Developerzy (np. programiści), Product Owner oraz Scrum Master.
W Scrum używa się trzech głównych artefaktów (koncepcji): backlogu produktu, backlogu sprintu oraz przyrostu. Są one niezbędne, aby zespół mógł skutecznie zarządzać pracą i dostarczać klientowi wartość.
Kolejnym ważnym elementem są zdarzenia.
Warto poświęcić trochę czasu na zapoznanie się z oficjalnym przewodnikiem po Scrum, znanym jako Scrum Guide. Jego autorami są twórcy Scrum: Ken Schwaber i Jeff Sutherland.
W przewodniku zebrano założenia Scrum, dobre praktyki pracy oraz wiele innych informacji przydatnych osobom, które chcą wdrozyć Scrum w swoje firmie.
Warto na koniec omówić rolę Scrum Mastera. Rola ta czasami jest niezrozumiała, zwlaszcza dla osób, które nie maja dużego doświadczenia z pracą w zespole Scrumowym.
Na pierwszy rzut oka, obowiązki Scrum Mastera mogą wydawać się ograniczone do organizacji spotkań i przestrzegania zasad Scrum. Rzeczywistość jest jednak bardziej złożona.
Wspieranie zespołu to kluczowy aspekt pracy Scrum Mastera. Może to oznaczać tworzenie narzędzi automatyzujących procesy, takie jak przesuwanie zadań w systemach zarządzania projektami, co odciąża deweloperów i zapewnia płynność pracy.
Scrum Master nie tylko dba o zespół, ale również pełni rolę mediatora i koordynatora między zespołem oraz interesariuszami. W niektórych przypadkach jest odpowiedzialny za codzienne informowanie partnerów zewnętrznych o postępach prac. Wymaga to skrupulatności i dobrej organizacji.
Scrum Master często ustanawia metryki, które mierzą postępy i jakość pracy zespołu. Analizuje te dane, aby wyciągać wnioski i wprowadzać usprawnienia.
Scrum Master to bardzo istotna rola i warto sobie zdawać sprawę z jej znaczenia dla sprawnej pracy zespołu.
Metodyka Scrum powstała jako odpowiedź na wady tradycyjnego, kaskadowego modelu wytwarzania oprogramowania. Scrum to elastyczne podejście, które umożliwia zespołom efektywne dostosowywanie się do zmieniających się wymagań.