La programación extrema es uno de los métodos más recientes de desarrollo de software. Su objetivo es mejorar los métodos tradicionales de desarrollo de software enfatizando el valor comercial y la calidad. Este método de programación intenta ofrecer piezas de software completas y sin errores que satisfagan las necesidades comerciales, en intervalos de tan solo semanas.
En la forma tradicional de desarrollar software, un proyecto dura muchos meses o años. Un equipo de analistas intenta obtener todos los requisitos de los usuarios. Luego, un conjunto de diseñadores crea la estructura amplia del sistema. Después de eso, los programadores codifican el sistema dentro de esa estructura. Luego, los probadores se aseguran de que el código esté libre de errores y cumpla con los requisitos.
El principal problema que se encuentra con el desarrollo tradicional es que los propios usuarios no siempre tienen claros sus requisitos, y los requisitos a menudo cambian durante el tiempo prolongado que lleva crear el software. Diferentes personas están involucradas en diferentes etapas y la documentación casi nunca está completa, por lo que las personas en las etapas posteriores no pueden comprender el proceso de pensamiento de las personas en las etapas anteriores. Esto da como resultado un software de baja calidad y un valor comercial bajo.
Habitualmente, la programación extrema implica entregas frecuentes de software en un lapso de pocas semanas. La motivación es proporcionar un software completamente funcional que aborde algunas necesidades comerciales críticas. Un cambio en los requisitos se acomoda en la próxima entrega.
La programación extrema, o XP para abreviar, enfatiza la calidad escribiendo pruebas antes de llevar a cabo la programación. A medida que se escribe el software, el código se revisa y prueba muchas veces al día. Todo el software se ensambla y prueba una o incluso varias veces al día. Esto se hace para garantizar que ninguna parte del software detenga el sistema.
Uno de los aspectos bien conocidos de la programación extrema es la programación en pareja, en la que dos programadores trabajan juntos en una computadora. Debido a este enfoque, el proceso de pensamiento, el diseño y la codificación necesarios para la creación del software se verifican de inmediato. La responsabilidad de desarrollar cualquier pieza de software se comparte.
Con este método de desarrollo, el software comienza con un diseño simple y evoluciona para satisfacer necesidades comerciales adicionales. Se evita la creación de características hasta que realmente se vuelven de alta prioridad. El énfasis está en el trabajo en equipo para crear sistemas completos, por lo que cada miembro del equipo desempeña el papel de analista, diseñador, programador y evaluador todos los días. Existe una intensa comunicación dentro del equipo de programación, así como entre los programadores y los usuarios a quienes se les entrega el software.
En este método de programación, se enfatiza mucho el concepto de refactorización. La refactorización es un refinamiento interno del código para darle al código una buena estructura y facilitar su comprensión sin afectar la salida. Se espera que todo el trabajo involucrado en la programación extrema se realice a un ritmo sostenible sin noches ni fines de semana. Esto aumenta la moral y reduce la probabilidad de errores.
La programación extrema toma su nombre de la idea de que los aspectos positivos de cómo trabajan los buenos programadores se llevan al extremo para sacar provecho de los beneficios. Este método de desarrollo ha sido bastante eficaz en varios sistemas de software. Como se trata de una metodología todavía nueva, sus prácticas evolucionan continuamente.