programowanie
fot. www.unsplash.com

Agile i Scrum często pojawiają się razem w kontekście zarządzania projektami, zwłaszcza w branży IT. Nie oznaczają jednak tego samego. Jaka jest różnica między Agile a Scrum? Agile to szersze podejście do organizacji pracy, oparte na elastyczności, współpracy i szybkim reagowaniu na zmiany. Scrum jest natomiast konkretnym frameworkiem, który pozwala te założenia realizować w praktyce poprzez określone role, wydarzenia i artefakty.

Jaka jest różnica między Agile a Scrum?

Najprościej można powiedzieć, że Agile jest sposobem myślenia, a Scrum jednym ze sposobów jego wdrożenia.

Agile opiera się na wartościach i zasadach opisanych w Manifeście Agile. Nie narzuca jednego konkretnego procesu pracy, nie definiuje obowiązkowych stanowisk ani dokładnego harmonogramu spotkań.

Scrum jest znacznie bardziej konkretny. Określa odpowiedzialności takie jak Product Owner, Scrum Master i Developers, a także wydarzenia, do których należą Sprint, Sprint Planning, Daily Scrum, Sprint Review oraz Sprint Retrospective.

Można więc pracować zgodnie z podejściem Agile bez stosowania Scruma. Można wykorzystać na przykład Kanban, Extreme Programming albo własny sposób organizacji pracy zgodny z wartościami Agile.

Co to jest agilowe podejście?

Co to jest agilowe podejście? To sposób organizowania pracy, który zakłada, że nie wszystkie wymagania da się dokładnie przewidzieć na początku projektu.

Zamiast tworzyć bardzo szczegółowy plan na wiele miesięcy i realizować go bez zmian, zespół pracuje krótszymi etapami, regularnie ocenia rezultaty i może zmieniać kierunek.

Podejście to szczególnie dobrze sprawdza się tam, gdzie wymagania mogą ewoluować. Przykładem jest tworzenie oprogramowania, rozwijanie produktu cyfrowego czy praca nad usługą, której funkcje są dopracowywane na podstawie informacji od użytkowników.

Agile nie oznacza jednak braku planowania. Planowanie nadal jest potrzebne, ale powinno być elastyczne i aktualizowane wraz z pojawianiem się nowych informacji.

Skąd wzięło się Agile?

W 2001 roku grupa specjalistów zajmujących się tworzeniem oprogramowania przygotowała Manifest Zwinnego Wytwarzania Oprogramowania.

Dokument powstał jako reakcja na problemy związane z bardzo rozbudowanymi procesami zarządzania projektami informatycznymi.

Twórcy Manifestu zauważyli, że ogromna ilość dokumentacji i szczegółowych planów nie gwarantuje powstania dobrego produktu.

Większą wartość dostrzegli w częstej komunikacji, dostarczaniu działających rozwiązań i możliwości reagowania na zmieniające się potrzeby klienta.

Jakie są 4 zasady Agile?

W praktyce mówi się przede wszystkim o czterech wartościach Agile, a nie czterech zasadach. Manifest Agile zawiera cztery wartości oraz dwanaście zasad.

Pierwsza wartość mówi o tym, że ludzie i interakcje są ważniejsze niż procesy i narzędzia. Nie oznacza to, że procesy są zbędne, ale nie powinny utrudniać współpracy.

Druga wartość stawia działające oprogramowanie ponad obszerną dokumentację. Dokumentacja nadal może być potrzebna, ale nie powinna zastępować realnego produktu.

Trzecia wartość mówi o współpracy z klientem ponad negocjacją umów. Chodzi o regularny kontakt i dostosowywanie rozwiązania do rzeczywistych potrzeb.

Czwarta wartość to reagowanie na zmiany ponad realizacją sztywnego planu. Plan jest potrzebny, ale nie powinien blokować zmian, jeśli pojawią się nowe informacje.

Czy Agile oznacza brak dokumentacji?

Agile nie zakłada, że dokumentacja jest niepotrzebna. Chodzi o to, aby jej tworzenie nie stało się celem samym w sobie i nie zastępowało pracy nad rzeczywistym rozwiązaniem. W praktyce zespół powinien tworzyć taką dokumentację, jaka rzeczywiście jest potrzebna.

W niektórych projektach wystarczą krótkie instrukcje i opis architektury. W branżach regulowanych dokumentacja może być natomiast bardzo rozbudowana.

Czy Agile oznacza brak planu?

Agile wymaga planowania, ale plan może być aktualizowany. W tradycyjnym modelu projektowym często próbuje się bardzo szczegółowo ustalić zakres, budżet i harmonogram na początku.

W podejściu zwinnym plan jest tworzony na różnych poziomach. Można mieć ogólną wizję produktu na wiele miesięcy i jednocześnie bardzo dokładny plan tylko na najbliższy okres. Dzięki temu łatwiej reagować na informacje zdobywane podczas realizacji projektu.

Czym jest Scrum?

Scrum to framework pomagający zespołom pracować nad złożonymi problemami i rozwijać produkty w sposób iteracyjny. Praca jest organizowana w Sprintach, czyli ograniczonych czasowo okresach trwających maksymalnie miesiąc. W wielu zespołach popularne są Sprinty dwutygodniowe.

W każdym Sprincie zespół realizuje określony cel i tworzy użyteczny przyrost produktu. Po zakończeniu Sprintu rezultat jest oceniany, a zdobyte informacje mogą wpłynąć na kolejne decyzje.

Czy Scrum jest metodologią?

Scrum często potocznie nazywa się metodologią, ale dokładniej określa się go jako framework. Różnica nie jest wyłącznie językowa. Framework pozostawia zespołowi dużą swobodę dotyczącą sposobu wykonywania pracy.

Scrum mówi, jakie odpowiedzialności, wydarzenia i artefakty powinny istnieć, ale nie określa na przykład technologii używanej do tworzenia oprogramowania, dlatego dwa zespoły stosujące Scrum mogą organizować codzienną pracę w różny sposób.

Jakie role są w Scrumie?

Scrum Team składa się z Product Ownera, Scrum Mastera oraz Developers. Product Owner odpowiada za maksymalizowanie wartości produktu i skuteczne zarządzanie Product Backlogiem.

Scrum Master pomaga zespołowi właściwie rozumieć i stosować Scrum oraz wspiera poprawę sposobu pracy. Developers odpowiadają za tworzenie użytecznego przyrostu podczas każdego Sprintu.

Określenie Developers nie musi odnosić się wyłącznie do programistów. W zależności od produktu w zespole mogą pracować specjaliści posiadający różne kompetencje.

Co to jest Sprint?

Sprint jest podstawowym cyklem pracy w Scrumie. Ma stałą długość wynoszącą maksymalnie jeden miesiąc. Kolejny Sprint rozpoczyna się bezpośrednio po zakończeniu poprzedniego.

Podczas Sprint Planning zespół określa między innymi Sprint Goal i planuje pracę potrzebną do jego osiągnięcia. W czasie Sprintu powstaje kolejny przyrost produktu, który powinien spełniać określone kryteria jakości.

Co to jest Product Backlog?

Product Backlog to uporządkowana lista tego, co jest potrzebne do ulepszania produktu. Mogą znajdować się tam nowe funkcje, poprawki błędów, zadania techniczne i inne elementy wymagające pracy.

Product Owner odpowiada za skuteczne zarządzanie Product Backlogiem. Lista nie jest zamknięta raz na zawsze. Zmienia się wraz z rozwojem produktu, informacjami od użytkowników i zmianami biznesowymi.

Co to jest Sprint Backlog?

Sprint Backlog obejmuje Sprint Goal, elementy Product Backlogu wybrane do realizacji oraz plan dostarczenia przyrostu. Jest więc bezpośrednio związany z pracą wykonywaną podczas konkretnego Sprintu.

Sposób realizacji może być aktualizowany wraz z pojawianiem się nowych informacji. Najważniejsze jest zachowanie koncentracji na celu Sprintu, a nie mechaniczne odhaczanie wcześniej przygotowanej listy.

Co to jest Daily Scrum?

Daily Scrum to krótkie wydarzenie odbywające się podczas Sprintu. Jego celem jest sprawdzenie postępu w kierunku Sprint Goal i dostosowanie planu pracy.

Daily Scrum trwa 15 minut i odbywa się każdego dnia roboczego Sprintu. Nie powinien zamieniać się w rozbudowane raportowanie przełożonemu. Jest przede wszystkim narzędziem Developers służącym do sprawdzania postępów i dostosowywania dalszej pracy.

Co dzieje się podczas Sprint Review?

Sprint Review odbywa się pod koniec Sprintu. Zespół wraz z interesariuszami analizuje rezultat pracy i rozmawia o tym, co warto zrobić dalej.

Nie powinno być to wyłącznie formalne przedstawienie prezentacji. Największą wartość daje rozmowa o produkcie, zmianach otoczenia i potencjalnych kolejnych działaniach.

Do czego służy Sprint Retrospective?

Retrospektywa dotyczy przede wszystkim sposobu pracy zespołu i możliwości zwiększenia jakości oraz skuteczności. Uczestnicy zastanawiają się, co działało dobrze, jakie problemy wystąpiły oraz jakie usprawnienia warto wprowadzić.

Może chodzić o komunikację, proces tworzenia produktu, narzędzia czy współpracę pomiędzy członkami zespołu. Dzięki temu Scrum zakłada nie tylko rozwijanie produktu, ale również ciągłe usprawnianie sposobu działania.

Agile a Scrum na prostym przykładzie

Załóżmy, że firma tworzy aplikację do zamawiania jedzenia. Podejście Agile może oznaczać, że zamiast projektować przez rok kompletną aplikację i pokazać ją użytkownikom dopiero na końcu, firma dostarcza kolejne części wcześniej.

Najpierw może uruchomić podstawowe wyszukiwanie restauracji i możliwość składania zamówień. Później, na podstawie informacji zwrotnych, rozwija płatności, program lojalnościowy i kolejne funkcje. Jeżeli zespół wykorzystuje Scrum, organizuje tę pracę dodatkowo w Sprintach, posiada Product Backlog i Sprint Goal oraz korzysta z określonych wydarzeń Scruma.

Czy można być Agile bez Scruma?

Tak. Jest to jedna z najważniejszych różnic między tymi pojęciami. Scrum jest tylko jednym ze sposobów organizowania zwinnej pracy.

Zespół może korzystać z Kanbanu, Extreme Programming albo stworzyć własny proces oparty na wartościach i zasadach Agile, dlatego stwierdzenie pracujemy Agile, czyli mamy Scrum nie zawsze jest prawdziwe.

Czy można używać Scruma i nie być Agile?

W praktyce jest to możliwe. Firma może formalnie organizować Sprinty, Daily Scrum i retrospektywy, ale jednocześnie podejmować wszystkie decyzje odgórnie i nie reagować na zmiany.

Może również traktować Sprint jako zwykły dwutygodniowy harmonogram i wymagać wykonania każdego zadania niezależnie od nowych informacji. Wtedy zespół wykorzystuje nazwy i elementy Scruma, ale niekoniecznie realizuje wartości zwinnego podejścia.

Samo prowadzenie Daily Scrum nie sprawia automatycznie, że organizacja staje się Agile.

Scrum a Kanban – czym się różnią?

Kanban jest innym sposobem organizowania pracy i często wykorzystywany jest przez zespoły działające zwinnie. W przeciwieństwie do Scruma nie wymaga Sprintów o stałej długości. Praca może przepływać przez system w sposób ciągły.

Duże znaczenie ma wizualizacja zadań oraz ograniczanie liczby elementów wykonywanych jednocześnie. Kanban może dobrze sprawdzać się na przykład w zespołach utrzymaniowych, które regularnie otrzymują nowe zgłoszenia i potrzebują ciągłego przepływu pracy.

Kiedy Scrum sprawdza się najlepiej?

Scrum jest szczególnie przydatny przy złożonych produktach, gdzie nie da się dokładnie przewidzieć wszystkich wymagań na początku. Regularne Sprinty pozwalają często oceniać rezultat i korygować kierunek.

Framework może dobrze działać w rozwoju produktów cyfrowych, aplikacji, platform czy innych rozwiązań wymagających ciągłego udoskonalania. Mniej korzyści może przynosić w pracy całkowicie przewidywalnej i powtarzalnej, gdzie proces jest dobrze poznany i rzadko się zmienia.

Czy Scrum nadaje się tylko do IT?

Nie. Scrum jest mocno kojarzony z tworzeniem oprogramowania, ale może być wykorzystywany także poza branżą IT. Z jego elementów korzystają zespoły rozwijające różnego rodzaju produkty i rozwiązujące złożone problemy. Nie oznacza to jednak, że Scrum będzie właściwy dla każdego rodzaju pracy.

Jeśli proces jest prosty i całkowicie przewidywalny, wprowadzanie wszystkich elementów Scruma może nie przynieść oczekiwanych korzyści.

Jakie są zalety Agile?

Jedną z najważniejszych zalet jest możliwość szybszego reagowania na zmianę wymagań. Kolejną jest częstsze dostarczanie rezultatów, dzięki czemu nie trzeba czekać do końca wielomiesięcznego projektu, aby zweryfikować kierunek rozwoju.

Regularna informacja zwrotna pozwala również wcześniej wykryć, że produkt nie odpowiada potrzebom odbiorców. Agile może poprawić współpracę pomiędzy zespołem a klientem, jeśli obie strony rzeczywiście angażują się w proces.

Jakie są wady Agile?

Elastyczność może być trudna dla organizacji oczekującej dokładnego zakresu projektu ustalonego na wiele miesięcy z góry. Problemy pojawiają się również wtedy, gdy klient lub interesariusze nie mają czasu na regularną współpracę.

Agile wymaga zespołu, który potrafi podejmować decyzje i odpowiedzialnie organizować swoją pracę. Źle rozumiana zwinność może natomiast prowadzić do chaosu, jeśli każda nagła zmiana priorytetów będzie usprawiedliwiana koniecznością bycia elastycznym.

Jakie są zalety Scruma?

Scrum daje zespołowi jasno określony rytm pracy. Sprinty tworzą regularne momenty planowania, oceny produktu i analizy sposobu działania.

Product Backlog pomaga utrzymywać uporządkowany obraz potrzeb związanych z produktem. Retrospektywy umożliwiają natomiast systematyczne wprowadzanie usprawnień zamiast czekania, aż problemy staną się poważne.

Jakie są wady Scruma?

Scrum może być źle wykorzystywany w organizacjach, które traktują go wyłącznie jako zestaw spotkań. Daily Scrum, Sprint Planning i retrospektywy zajmują czas, a bez zrozumienia ich celu mogą stać się pustymi rytuałami.

Problemy pojawiają się także wtedy, gdy Product Owner nie ma możliwości skutecznego zarządzania produktem albo zespół nie może samodzielnie organizować swojej pracy.

Scrum nie rozwiązuje automatycznie problemów organizacyjnych. Często jedynie sprawia, że stają się bardziej widoczne.

Waterfall a Agile – jaka jest różnica?

Waterfall, czyli model kaskadowy, zakłada bardziej sekwencyjną realizację projektu. Najpierw definiuje się wymagania, później projektuje rozwiązanie, następnie realizuje, testuje i wdraża.

W Agile poszczególne działania częściej się przeplatają, a kolejne części produktu powstają iteracyjnie. Nie oznacza to, że model kaskadowy zawsze jest niewłaściwy. Może sprawdzać się w projektach o stabilnych wymaganiach i stosunkowo niewielkiej niepewności.

Czy Agile jest zawsze lepszy od Waterfall?

Nie. Wybór powinien zależeć od charakteru projektu. Jeżeli dokładnie wiadomo, jaki rezultat trzeba osiągnąć, a wymagania prawdopodobnie się nie zmienią, klasyczne planowanie może być skuteczne.

Agile daje większą przewagę tam, gdzie istnieje dużo niewiadomych i konieczne jest reagowanie na zdobywane informacje. Nie należy więc wybierać sposobu zarządzania projektem wyłącznie dlatego, że określone podejście jest popularne.

Jak zacząć pracować w Scrumie?

Najpierw warto zrozumieć problem, który zespół chce rozwiązać. Wdrożenie Scruma tylko po to, aby pracować zwinnie, rzadko jest dobrym celem. Następnie trzeba jasno określić odpowiedzialności Product Ownera, Scrum Mastera i Developers.

Potrzebny jest również Product Backlog obejmujący potrzeby związane z produktem. Pierwsze Sprinty mogą ujawnić problemy organizacyjne. Warto wykorzystać je jako materiał do usprawniania sposobu pracy podczas kolejnych cykli.

Najczęstsze błędy popełniane przy wdrażaniu Scruma

Jednym z nich jest zamiana Daily Scrum w raport dla menedżera. Takie spotkanie przestaje wtedy realizować swój podstawowy cel. Drugim problemem jest ciągłe dokładanie nowych zadań w trakcie Sprintu bez uwzględniania Sprint Goal.

Częstym błędem jest także brak rzeczywistego Product Ownera. Jeśli każda decyzja wymaga zatwierdzenia przez kilka innych osób, odpowiedzialność za produkt staje się niejasna.

Nie warto również oceniać pojedynczych pracowników wyłącznie na podstawie liczby wykonanych zadań czy zdobytych punktów.

Czy trzeba wybierać między Agile a Scrum?

Nie, ponieważ nie są to dwa konkurencyjne rozwiązania tego samego rodzaju. Agile jest szerszym podejściem opartym na określonych wartościach i zasadach, natomiast Scrum to konkretny framework pomagający organizować pracę w sposób iteracyjny.

Można więc jednocześnie działać zgodnie z Agile i stosować Scrum. W rzeczywistości właśnie tak pracuje wiele zespołów produktowych.

Najważniejsze jest zrozumienie celu. Organizowanie Sprintów i codziennych spotkań nie przyniesie większej wartości, jeśli firma nie wykorzystuje informacji zwrotnych i nie potrafi dostosowywać dalszych działań. Z drugiej strony zespół może działać zwinnie bez Scruma, jeżeli regularnie dostarcza wartość, uczy się na podstawie rezultatów i odpowiednio reaguje na zmiany.

Źródło: www.force.org.pl