Extreme Programming (XP; auch Extremprogrammierung) ist eine Methode, die das Lösen einer Programmieraufgabe in den Vordergrund der Softwareentwicklung stellt und dabei einem formalisierten Vorgehen geringere Bedeutung zumisst. Diese Vorgehensweise definiert ein Vorgehensmodell der Softwaretechnik, das sich den Anforderungen des Kunden in kleinen Schritten annähert. Die Wirksamkeit des Ansatzes ist umstritten (siehe Abschnitt Kritik).
Agile Softwareentwicklung ist der Oberbegriff für den Einsatz von Agilität (lateinisch agilis: flink; beweglich) in der Softwareentwicklung. Agile Softwareentwicklung versucht mit geringem bürokratischen Aufwand, wenigen Regeln und meist einem iterativen Vorgehen auszukommen.