XP – Kent Beck


xp-2La programación extrema o extreme programming (XP) es un enfoque de la ingeniería de software formulado por Kent Beck, autor del primer libro sobre la materia, Extreme Programming Explained: Embrace Change (1999). Es el más destacado de los procesos ágiles de desarrollo de software. Al igual que éstos, la programación extrema se diferencia de las metodologías tradicionales principalmente en que pone más énfasis en la adaptabilidad que en la previsibilidad. Los defensores de XP consideran que los cambios de requisitos sobre la marcha son un aspecto natural, inevitable e incluso deseable del desarrollo de proyectos. Creen que ser capaz de adaptarse a los cambios de requisitos en cualquier punto de la vida del proyecto es una aproximación mejor y más realista que intentar definir todos los requisitos al comienzo del proyecto e invertir esfuerzos después en controlar los cambios en los requisitos.

¿Qué es?

Siguiendo el mismo orden de ideas,  es una metodología ágil centrada en potenciar las relaciones interpersonales como clave para el éxito en desarrollo de software, promoviendo el trabajo en equipo, preocupándose por el aprendizaje de los desarrolladores, y propiciando un buen clima de trabajo. XP se basa en realimentación continua entre el cliente y el equipo de desarrollo, comunicación fluida entre todos los participantes, simplicidad en las soluciones implementadas y coraje para enfrentar los cambios, XP se define como especialmente adecuada para proyectos con requisitos imprecisos y muy cambiantes, y donde existe un alto riesgo técnico.

Objetivos

Por otra parte los objetivos son:

  • Establecer las mejores prácticas de Ingeniería de Software en los desarrollo de proyectos.
  • Mejorar la productividad de los proyectos.
  • Garantizar la Calidad del Software desarrollando, haciendo que este supere las expectativas del cliente,

Contexto

En relación al contexto está:

  • cliente bien definido;
  • los requisitos pueden (y van a) cambiar;
  • grupo pequeño y muy integrado (máximo 12 personas);
  • equipo con formación elevada y capacidad de aprender.

Características

Sus principales características son: Metodología basada en prueba y error; fundamentada en valores y prácticas; expresada en forma de 12 prácticas; conjunto completo; se soportan unas a otras; son conocidas desde hace tiempo. La novedad es juntarlas. Ahora bien el estilo XP está orientado hacia quien produce y usa el software, reduce el costo del cambio en todas las etapas del ciclo de vida del sistema, Combina las que han demostrado ser las mejores prácticas para desarrollar software, y las lleva al extremo.

Prácticas básicas

Es importante destacar que para que todo esto funcione, la programación extrema se basa en doce “prácticas básicas” que deben seguirse al pie de la letra:

  1. Equipo completo: Forman parte del equipo todas las personas que tienen algo que ver con el proyecto, incluido el cliente y el responsable del proyecto.
  2. Planificación: Se hacen las historias de usuario y se planifica en qué orden se van a hacer y las mini-versiones. La planificación se revisa continuamente.
  3. Test del cliente: El cliente, con la ayuda de los desarrolladores, propone sus propias pruebas para validar las mini-versiones.
  4. Versiones pequeñas: Las mini-versiones deben ser lo suficientemente pequeñas como para poder hacer una cada pocas semanas. Deben ser versiones que ofrezcan algo útil al usuario final y no trozos de código que no pueda ver funcionando.
  5. Diseño simple: Hacer siempre lo mínimo imprescindible de la forma más sencilla posible. Mantener siempre sencillo el código.
  6. Pareja de programadores: Los programadores trabajan por parejas (dos delante del mismo ordenador) y se intercambian las parejas con frecuencia (un cambio diario).
  7. Desarrollo guiado por las pruebas automáticas: Se deben realizar programas de prueba automática y deben ejecutarse con mucha frecuencia. Cuantas más pruebas se hagan, mejor.
  8. Integración continua: Deben tenerse siempre un ejecutable del proyecto que funcione y en cuanto se tenga una nueva pequeña funcionalidad, debe recompilarse y probarse. Es un error mantener una versión congelada dos meses mientras se hacen mejoras y luego integrarlas todas de golpe. Cuando falle algo, no se sabe qué es lo que falla de todo lo que hemos metido.
  9. El código es de todos: Cualquiera puede y debe tocar y conocer cualquier parte del código. Para eso se hacen las pruebas automáticas.
  10. Normas de codificación: Debe haber un estilo común de codificación (no importa cual), de forma que parezca que ha sido realizado por una única persona.
  11. Metáforas: Hay que buscar unas frases o nombres que definan cómo funcionan las distintas partes del programa, de forma que sólo con los nombres se pueda uno hacer una idea de qué es lo que hace cada parte del programa. Un ejemplo claro es el “recolector de basura” de java. Ayuda a que todos los programadores (y el cliente) sepan de qué estamos hablando y que no haya mal entendidos.
  12. Ritmo sostenible: Se debe trabajar a un ritmo que se pueda mantener indefinidamente. Esto quiere decir que no debe haber días muertos en que no se sabe qué hacer y que no se deben hacer un exceso de horas otros días. Al tener claro semana a semana lo que debe hacerse, hay que trabajar duro en ello para conseguir el objetivo cercano de terminar una historia de usuario o mini-versión.

Ventajas y Desventajas

Para finalizar sus principales ventajas son:

  • Programación organizada.
  • Menor tasa de errores.
  • Satisfacción del programador

Sus desventajas:

  • Es recomendable emplearlo solo en proyectos a corto plazo.
  • Altas comisiones en caso de fallar.

modelos agiles


Referencias

Consultados el día 21 de Mayo de 2016 de la WWW:

Tarjeta Rocha

Banner De todo un Poco (1) 600 px

Anuncios

Acerca de Luis Castellanos

Luego de unos años en Maracaibo, de regreso en Caracas. Docente Universitario y Bloguero. Orgulloso padre de dos hijos. luiscastellanos @ yahoo.com | @lrcastellanos

Publicado el 08/06/2016 en Año 03, Desarrollo de Sistemas y etiquetado en , , , , , , , , . Guarda el enlace permanente. 1 comentario.

A %d blogueros les gusta esto: