Różnica Między Programowaniem Ekstremalnym A SCRUM

Różnica Między Programowaniem Ekstremalnym A SCRUM
Różnica Między Programowaniem Ekstremalnym A SCRUM

Wideo: Różnica Między Programowaniem Ekstremalnym A SCRUM

Wideo: Różnica Między Programowaniem Ekstremalnym A SCRUM
Wideo: #4 AGILE: Co to jest SCRUM? 2024, Listopad
Anonim

Programowanie ekstremalne vs SCRUM | XP vs SCRUM

Na przestrzeni lat w branży oprogramowania stosowano wiele różnych metodologii tworzenia oprogramowania, takich jak metoda Waterfall, V-Model, RUP i kilka innych liniowych, iteracyjnych i kombinowanych liniowo-iteracyjnych metod. Model zwinny (lub bardziej poprawnie, grupa metodologii) to nowszy model rozwoju oprogramowania wprowadzony przez manifest Agile w celu usunięcia niedociągnięć znalezionych w tych tradycyjnych metodologiach wytwarzania oprogramowania.

Metody zwinne opierają się na iteracyjnym rozwoju i wykorzystują informacje zwrotne od użytkowników jako główny mechanizm kontroli. Agile można nazwać podejściem zorientowanym na ludzi niż tradycyjne metody. Model Agile dostarcza działającą wersję produktu bardzo wcześnie, rozkładając system na bardzo małe i łatwe do zarządzania części podrzędne, tak aby klient mógł wcześnie zdać sobie sprawę z niektórych korzyści. Cykl testowania Agile jest stosunkowo krótki w porównaniu z tradycyjnymi metodami, ponieważ testowanie odbywa się równolegle do rozwoju. Ze względu na wszystkie te zalety metody Agile są obecnie preferowane w stosunku do metod tradycyjnych. Programowanie Scrum i Extreme to dwie najpopularniejsze odmiany metod Agile.

Co to jest SCRUM?

Jak wspomniano powyżej, SCRUM jest przyrostowym i iteracyjnym procesem zarządzania projektami, który należy do rodziny metod Agile. SCRUM opiera się na nadaniu wysokiego priorytetu uczestnictwu klienta na wczesnym etapie cyklu rozwoju. Zaleca jak najwcześniejsze i częste przeprowadzanie testów przez klienta. Testowanie jest wykonywane w każdym momencie, gdy dostępna jest stabilna wersja. Podstawą SCRUM jest rozpoczęcie testów od początku projektu i kontynuowanie ich do końca projektu.

Kluczową wartością SCRUM jest „jakość jest odpowiedzialnością zespołu”, co podkreśla, że za jakość oprogramowania odpowiada cały zespół (nie tylko zespół testujący). Innym ważnym aspektem SCRUM jest rozbicie oprogramowania na mniejsze, łatwe do zarządzania części i bardzo szybkie dostarczenie ich do klienta. Dostarczenie działającego produktu jest sprawą najwyższej wagi. Następnie zespół nadal ulepsza oprogramowanie i dostarcza je na każdym ważnym etapie. Osiąga się to poprzez bardzo krótkie cykle wydawania (zwane sprintami) i otrzymywanie informacji zwrotnych na temat ulepszeń pod koniec każdego cyklu.

SCRUM definiuje kilka kluczowych ról dla sprawnego działania zespołu programistów. Są to Właściciel Produktu (który reprezentuje klienta i utrzymuje backlog produktu), Scrum master (który działa jako organizator i koordynator zespołu poprzez prowadzenie spotkań scrumowych, utrzymywanie backlogu sprintu i wypalanie wykresów) oraz inni członkowie zespołu. Zespół może składać się z tradycyjnych ról, ale w większości są to zespoły samozarządzające. Główne artefakty Scruma to: Backlog produktu / Release (lista życzeń), Sprint backlog / defect backlog (zadania w każdej iteracji), Burn down chart (pozostała praca w porównaniu do daty). Główne ceremonie SCRUM to spotkanie dotyczące backlogu produktu, spotkanie Sprint i spotkanie Retrospect.

Co to jest programowanie ekstremalne?

Extreme Programming (w skrócie XP) to metodologia tworzenia oprogramowania należąca do modelu Agile. Ekstremalne programowanie przeprowadza fazy w bardzo małych, ciągłych krokach (w porównaniu do tradycyjnych metod). Pierwszy przejazd, który trwa tylko dzień lub tydzień, jest celowo niekompletny. Aby określić konkretne cele związane z tworzeniem oprogramowania, na początku zapisywane są testy automatyczne. Następnie programiści zajmują się kodowaniem. Nacisk kładziony jest na programowanie w parach. Po pomyślnym przejściu wszystkich testów kodowanie uznaje się za zakończone. Kolejna faza to projektowanie i architektura, która zajmuje się refaktoryzacją kodu przez tę samą grupę programistów. Pod koniec tej fazy niekompletny (ale funkcjonalny) produkt jest przedstawiany interesariuszom. Zaraz po tym rozpoczyna się kolejna faza (skupiająca się na kolejnym zestawie najważniejszych cech).

Jaka jest różnica między Extreme Programming a SCRUM?

Programowanie ekstremalne i SCRUM to, co zrozumiałe, bardzo podobne i dopasowane metodologie. Istnieją jednak subtelne, ale ważne różnice między tymi dwiema metodami. Sprinty SCRUM trwają 2-4 tygodnie, podczas gdy typowe iteracje XP są krótsze (ostatnie 1-2 tygodnie). Zwykle zespoły SCRUM nie pozwalają na zmiany w sprintach, ale zespoły XP są nieco bardziej elastyczne w zakresie zmian w iteracjach. Na przykład po zaplanowaniu sprintu zestaw elementów tego sprintu pozostaje niezmieniony, ale funkcja, nad którą nie zaczęto pracować, można w dowolnym momencie zamienić na inną funkcję w XP. Kolejną różnicą między XP i SCRUM jest to, że kolejność funkcji opracowanych w XP jest ściśle określona przez klienta, podczas gdy zespół SCRUM decyduje o kolejności elementów (po tym, jak backlog produktu zostanie ustalony przez właściciela produktu SCRUM).

W przeciwieństwie do XP, SCRUM nie określa żadnych praktyk inżynieryjnych. Na przykład XP jest napędzany przez takie praktyki, jak programowanie sterowane testami (TDD), programowanie w parach, refaktoryzacja itp. Jednak niektórzy uważają, że nałożenie zestawu praktyk na samoorganizujące się zespoły może mieć negatywny wpływ i można to uznać za wada XP. Inną wadą programowania Extreme jest to, że niedoświadczone zespoły mogą mieć tendencję do refaktoryzacji bez automatycznych testów lub TDD (lub po prostu hakowania). Dlatego niektórzy sugerują, że SCRUM jest lepszy do oderwania się (ponieważ przynosi duże ulepszenia po prostu poprzez skoncentrowane iteracje czasowe), a XP jest odpowiedni dla nieco dojrzałych zespołów, które odkryły wartość wyżej wymienionych praktyk (zamiast używać ich, ponieważ zostały poproszone aby to zrobić).

Zalecane: