Programowanie ekstremalne (eXtreme Programming) powstało jako próba zaradzenia problemom związanym z długimi cyklami dostarczania oprogramowania i spadkiem zainteresowania inwestora zadaniem. XP charakteryzują: ewolucyjne podejście do projektowania i programowania oraz ekstremalnie ścisła współpraca z odbiorcą. Zasadą są ekstremalnie krótkie iteracje w dostarczaniu kolejnych wersji oprogramowania prowadzące do szybkich odpowiedzi użytkownika. Przy wytwarzaniu oprogramowania stosuje się programowanie w parach, ustawiczną przebudowę (refactoring) kodu źródłowego, ustawiczną integrację i testowanie połączonych modułów. Jedna z zasad XP głosi, że nie ma uniwersalnej metody prowadzenia projektu informatycznego. Wobec tego praktyki XP powinny być przystosowywane do aktualnych potrzeb i specyfiki projektu.
W cyklu życia projektu XP wyróżnia się fazy: