La Programación Extrema es ideal en aquellos proyectos en donde se requiere un desarrollo a corto plazo, en donde los requerimientos pueden ser cambiados en cualquier instante, de hecho, su principal objetivo es reducir los costos generados por los cambios en los requerimientos. Se propone como un paradigma en donde se proveen numerosas ventajas en la reutilización del código.
Se evita el diseño extensivo que presentan los modelos tradicionales, en donde los requerimientos del sistema son determinados al inicio del desarrollo del proyecto y a menudo son corregidos desde ese punto, esto implica que los costos ocasionados por los cambios de los requerimientos en una fase avanzada del proyecto sean bastante elevados, esto evidentemente es un problema para empresas que presentan cambios constantes.
Las prácticas principales en la Programación Extrema son aquellas que generalmente son aceptadas como buenas, pero en este paradigma se llevan al extremo.
La comunicación entre los desarrolladores y los clientes debe ser excelente. De hecho, se supone que un grupo de desarrollores tenga al menos un cliente en el sitio, que especifique y dé prioridad al trabajo que realizan los desarrolladores, que responda las preguntas tan pronto como se presenten.
Se busca la simplicidad en la escritura del código fuente, cuando éste se vuelve complejo, se recomienda una reescritura del código.
Las revisiones del código también se llevan al extremo, el paradigma de la Programación Extrema propone que los desarrolladores trabajen en parejas, compartiendo la pantalla y el teclado del ordenador, esto a la vez de promover la comunicación entre los desarrolladores permite que el código sea revisado mientras se escribe.
La Programación Extrema asegura la calidad en la aplicación desarrollada al momento de realizar lo que ellos llaman refactorización, el cual es un proceso de reestructuración del sistema, en donde se elimina la duplicación, se promueve simplificación y se le agrega flexibilidad sin cambiar la funcionalidad de operación del código.
Este paradigma funciona mejor en proyectos de pequeña o mediana escala (los grupos de desarrolladores no deben sobrepasar las 10 personas cada uno). Ideal en aquellas aplicaciones que necesitan una nueva versión cada 2 ó 3 semanas.