El extreme programming (XP), programación extrema en castellano, se considera, y de ahí el nombre de extremo, como la aplicación más radical del desarrollo ágil de software. Dicho de otra manera: es probable que no haya ningún método, y mucho menos una forma tradicional de programación, más ágil que el XP. En este contexto, el extreme programming se diferencia concretamente del desarrollo en cascada, por ejemplo, que, según los desarrolladores de XP, implica múltiples problemas. A mediados de los años 90, los desarrolladores Kent Beck, Ward Cunningham y Ron Jeffries decidieron darle un giro al método de trabajo tradicional e iniciar un nuevo camino.
Por norma general, el extreme programming está orientado a las necesidades del cliente. Aunque esto parece obvio, el desarrollo de software clásico solo puede atender a los deseos de los clientes de manera limitada, lo que se vuelve particularmente complicado siestos requisitos van cambiando continuamente. Además, XP trata de fomentar la creatividad de los desarrolladores y acepta los errores como una parte natural del trabajo.
Además, XP, al igual que otros métodos ágiles, parte de los procesos iterativos. XP rompe con la tradición de completar un proyecto durante meses de principio a fin para que al final el resultado no sea el adecuado. En lugar de esto, se hacen comprobaciones, se habla y se publica constantemente en ciclos cortos. De esta forma se pueden determinar y eliminar los fallos rápidamente.
Para poder cumplir las exigencias, se ha desarrollado un marco bastante definido. Se basa en distintos valores, principios y técnicas. Además, se asignan roles definidos para que las tareas se puedan asignar de forma clara.