Extreme Programming (XP) to framework rozwoju oprogramowania Agile framework zaprojektowany w celu generowania oprogramowania o wyższej jakości oraz poprawy jakości życia zespołu. XP jest najbardziej szczegółowym frameworkiem Agile pod względem właściwych praktyk inżynieryjnych.
Scrum to framework, w którym ludzie mogą rozwiązywać złożone problemy adaptacyjne, jednocześnie efektywnie i kreatywnie dostarczając produkty o wysokiej wartości. Scrum sam w sobie to prosty framework, który umożliwia skuteczną współpracę zespołu przy złożonych produktach.
Oba Scrum i XP to metodyki Agile, dzieląc wspólne koncepcje, takie jak rozwój iteracyjny, działające oprogramowanie, wersje i planowanie iteracji, codzienne stand-upy, retrospektywy oraz wszystkie inne elementy procesu Agile. Te dwa podejścia są tak zgodne, że trudno rozróżnić zespół praktykujący XP od zespołu praktykującego Scrum.

Extreme Programming

Cykl sprintu
Jednak istnieją pewne różnice, niektóre z nich są dość subtelne, szczególnie w następujących czterech aspektach:
- Zazwyczaj od dwóch do czterech tygodni.
- Zazwyczaj od jednego do dwóch tygodni.
- Nie pozwala na zmiany w swoim sprint.
- Po zakończeniu planowania sprintu i zatwierdzeniu zestawu listy produktuelementów, te elementy pozostają niezmienione do końca sprintu.
- Łatwiej zmienić podczas iteracji.
- Dopóki określona funkcjonalność nie została rozpoczęta, nowa funkcjonalność o podobnym rozmiarze może zostać zamieniona na tę, która nie została jeszcze rozpoczęta w iteracji zespołu XP.
- Pracuj w ściśle ustalonej kolejności priorytetów.
- Funkcjonalności do zrealizowania są priorytetowe dla klienta (producenta produktu w ScrumieProduct Owner), a zespół musi je realizować w kolejności.
- Producent produktu w Scrumie priorytaryzuje backlog produktu, ale zespół decyduje o kolejności realizacji elementów backlogu.
- ZespółScrum teammoże zdecydować się pracować nad drugim najważniejszym elementem.
- Nie nakłada żadnych konkretnych praktyk inżynierskich.
- Tak, XP to robi.
- Na przykład: TDD, programowanie w parach, prosty projekt, refaktoryzacja, itd.
Możemy podsumować różnice między XP a Scrum w następujący sposób:
| Aspekt | Praktyka | XP | Scrum |
| Długość iteracji | Czy wymagania mogą być zmienione podczas iteracji | 1–2 tygodnie | 2–4 tygodnie |
| Obsługa zmian podczas iteracji | Czy wymagania są ściśle uporządkowane według priorytetu | Może zostać zastąpione innym wymaganiem o tej samej wielkości, jeśli jeszcze nie zostało zaimplementowane. | Scrum tego nie pozwala. Po rozpoczęciu sprintu nie są dozwolone żadne zmiany, a Scrum Master stosuje to ściśle. |
| Priorytetyzacja funkcji | Czy wymagania są ściśle uporządkowane według priorytetu | Tak | Nie wymagane |
| Praktyki inżynierskie | Czy ściśle stosowane są metody inżynierskie w celu zapewnienia postępu lub jakości | Bardzo ściśle | Wymaga od programistów świadomego podejścia |
Dlatego uważamy, że podejście XP jest akceptowalne, ale wprowadza paradoks do Agile: łączenie filozofii XP z zasadami Agile wysyła mylący komunikat do zespołów: „Jesteś pełną organizacją samodzielnie zarządzaną, ale musisz zastosować TDD, programowanie w parach itd.”
Jasne jest, że te cztery różnice są dość odmienne:
- W Scrum, nacisk położony jest na samoorganizację.
- W XP, nacisk położony jest na silne ograniczenia praktyk inżynierskich.
Wnioski
Scrum to ramy rozwoju produktu — pojemnik, do którego można dodawać inne praktyki. XP to jedna z praktyk, którą można zastosować w ramach frameworka Scrum. Nie ma powodu, by zespół wybierał między Scrum a XP. Zasady i praktyki XP nie są łatwe, a większość z nich jest nie do zaakceptowania. Wprowadzenie XP do Scrum może być naturalnym krokiem dla zespołu, który zaczyna od Scrum i dąży do stania się profesjonalnym zespołem Scrum.