METODOLOGÍA XP
Se puede considerar la programación extrema como 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.
Kent Beck:
Kent Beck |
Beck posee un máster en ciencias en el área de ciencias de la computación de la Universidad de Oregon.
Fue pionero en patrones de diseño de software, el redescubrimiento del test-driven development, así como también del la aplicación comercial de Smalltalk. Con Ward Cunningham popularizó la metodología de tarjetas CRC, y con Erich Gamma el framework de pruebas unitarias para Java conocido como JUnit.
Kent vive en Medford, Oregon y actualmente trabaja para Facebook
INTRODUCCION:
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.
¿Que es Programación Extrema o XP?
- Metodología liviana de desarrollo de software.
- Conjunto de practicas y reglas empleadas para desarrollar software.
- Basada en diferentes ideas acerca de cómo enfrentar ambientes muy cambiantes.
- Originada en el proyecto C3 para Chrysler.
- En vez de planificar, analizar y diseñar para el futuro distante, hacer todo esto un poco cada vez, a través de todo el proceso de desarrollo.
Valores:
Los Valores originales de la programación extrema son: simplicidad, comunicación, retroalimentación (feedback) y coraje. Un quinto valor, respeto, fue añadido en la segunda edición de Extreme Programming Explained. Los cinco valores se detallan a continuación:
- Simplicidad: La simplicidad es la base de la programación extrema. Se simplifica el diseño para agilizar el desarrollo y facilitar el mantenimiento.
- Comunicación: La comunicación se realiza de diferentes formas. Para los programadores el código comunica mejor cuanto más simple sea. Si el código es complejo hay que esforzarse para hacerlo inteligible. El código autodocumentado es más fiable que los comentarios ya que éstos últimos pronto quedan desfasados con el código a medida que es modificado.
- Retroalimentación (feedback): Al estar el cliente integrado en el proyecto, su opinión sobre el estado del proyecto se conoce en tiempo real. Al realizarse ciclos muy cortos tras los cuales se muestran resultados, se minimiza el tener que rehacer partes que no cumplen con los requisitos y ayuda a los programadores a centrarse en lo que es más importante. Considérense los problemas que derivan de tener ciclos muy largos.
- Coraje o valentía: Muchas de las prácticas implican valentía. Una de ellas es siempre diseñar y programar para hoy y no para mañana. Esto es un esfuerzo para evitar empantanarse en el diseño y requerir demasiado tiempo y trabajo para implementar todo lo demás del proyecto.
- 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.
Ventajas:
- Programación organizada.
- Menor taza de errores.
- Satisfacción del programador.
Desventajas:
- Es recomendable emplearlo solo en proyectos a corto plazo.
- Altas comisiones en caso de fallar.
CONCLUSIONES
- Apostolado de metodologías exitosas.
- Aporte de la experiencia práctica a los modelos teóricos.
- Enfoque de conjunto de prácticas como rompecabezas.
- Tecnología en expansión.
- Importancia de revisitar las metodologías desde la experiencia práctica.