eXtreme Programming

Roles

-Programador: Escribe las pruebas unitarias y produce el código del sistema. Es la esencia del equipo.

-Cliente: Escribe las historias de usuario y las pruebas funcionales para validar su implementacion.

-Tester: Interpreta el pedido del cliente y ayuda al equipo de desarrollo a escribir las pruebas funcionales.

-Tracker: Es el encargado de seguimiento. Proporciona realimentación al equipo.

-Consultor: Es un miembro externo del equipo con un conocimiento especifico en algún tema necesario para el proyecto.

Valores

Simplicidad: Es la base de la programación extrema. Se simplifica el diseño para agilizar el desarrollo y facilitar el mantenimiento. Un diseño complejo del código junto a sucesivas modificaciones por parte de diferentes desarrolladores hacen que la complejidad aumente exponencialmente.

Comunicación: Se realiza de diferentes formas, para los programadores el código comunica mejor cuanto mas simple sea. Si el código es complejo hay que esforzarse para hacerlo inteligible

Retroalimentación:La retroalimentación continua del cliente permite a los desarrolladores llevar y dirigir el proyecto en una dirección correcta hacia donde el cliente quiera.

Valentía: Requiere que los desarrolladores vayan a la par con
el cambio, por que sabemos que este cambio es inevitable, pero el estar preparado con una metodología ayuda a ese cambio. Programa para hoy y no para
mañana.

Respeto: El respeto se manifiesta de varias formas. Los miembros del equipo se respetan los unos a otros, porque los programadores no pueden realizar cambios que hacen que las pruebas existentes fallen o que demore el trabajo de sus compañeros.

¿Qué es XP?

XP o Programación extrema es una metodología de desarrollo de la ingenieria de software formulado por Kent Beck, se diferencia de las metodologías tradicionales que ponen mas énfasis a la adaptabilidad que en la previsibilidad. Es la adopción de las mejores metodologías de desarrollo de acuerdo a lo que se pretende llevar a cabo con el proyecto, y aplicarlo de manera dinámica durante el ciclo de vida del software.

Caracteristicas

Frecuente integracion del equipo de programacion con el cliente o usuario, se recomienda que un representante del cliente trabaje junto al equipo de desarrollo.

Programación en parejas se recomienda que las tareas de desarrollo se lleven a cabo por dos personas en un mismo puesto.

Refactorizacón del código, es decir reescribir ciertas partes del código para aumentar su legibilidad y mantenibilidad sin modificar sus comportamientos.

Desarrollo iterativo o incremental: pequeñas mejoras, unas tras otras.

Pruebas unitarias continuas frecuentemente repetidas y automatizadas, incluyendo pruebas de regresión.

Corrección de todos los errores antes de añadir nuevas funcionalidades. Hacer entregas frecuentes.

Simplicidad en el código, es la mejor manera de que las cosas funcionen. Cuando todo funcione se podrá añadir funcionalidad si es necesario.