jueves, 28 de abril de 2011

Agile Software Development - Extreme Programming

XP fue creado por Kent Beck entre otros mientras trabajaba para corporación Chrysler, publicada por primera vez sobre el 1999. El nombre refleja la idea que el modelo quería conceptualizar, los ingenieros debían llevar las buenas y probadas prácticas de ingeniería al extremo.

XP busca estresar la satisfacción del usuario, con rápidas creaciones de software operativo, con técnicas sostenibles de desarrollo buscando la agilidad ante la necesidad de respuesta ante el cambio.

XP aboga por los siguientes valores: Comunicación, simplicidad, feedback y valentía. Pudiendo ser caracterizado por 5 principios:
  1. Feedback rápido
  2. Asunción de simplicidad
  3. Cambios incrementales
  4. Aceptación del cambio
  5. Realización de un trabajo de calidad

 

















Así mismo, se elaboraron 12 practicas relativas al desarrollo software:
  1. Pequeñas entregas
  2. El juego de planificación
  3. Preparación para la reprogramación (Refactoring)
  4. Desarrollo dirigido por las pruebas
  5. Programación en parejas
  6. Ritmo sostenible de desarrollo
  7. Responsabilidad colectiva del código
  8. Cumplimiento de estándares de codificación
  9. Simplicidad de diseño
  10. Aplicación de metáforas
  11. Integración continua
  12. Integración en cliente

XP hace énfasis en la programación y en la calidad del software generado, pero también en la comunicación y la implantación del concepto de equipo por encima de todo. Dando prioridad al código desarrollado y a los test generados por encima de documentos de especificación.
La comunicación oral es la vía sugerida para el trabajo de requerimientos y diseño. Y se espera que tanto clientes, como gestores, como equipo de producción trabajen juntos en un mismo espacio común, para facilitar las entregas de software de elevado valor de negocio.

La responsabilidad del cliente es la de elaborar las historias, los requerimientos o especificaciones de funcionalidades (una descripción de las mismas) priorizando estas según el valor de negocio. Así mismo elaborar test que validen el correcto funcionamiento de la funcionalidad.

El desarrollador XP no distingue entre programadores, diseñadores o testers etc todos trabajan como equipo y comparten responsabilidades. Así mismo deben estimar el esfuerzo para cada historia recibida y entregar toda pieza de código con sus necesarios tests unitarios. 

El gestor (XP coach/Project Manager) debe monitorizar la correcta aplicación de las prácticas XP y salvaguardar el progreso.

Podéis encontrar mucha más información en la web de eXtreme Programming

Saludos,