Rodrguez Cotorruelo, Enrique 1. INTRODUCCIN 2. OBJETIVOS 3. CARACTERSTICAS 4. PRINCIPIOS DEL MTODO XP 5. PRCTICAS BASADAS EN XP 6. CICLO DE VIDA 7. VENTAJAS E INCONVENIENTES 1. INTRODUCCIN Qu es la Programacin Breve Resea Histrica Extrema o XP? La programacin extrema Metodologa liviana de o eXtreme Programming desarrollo de software. (XP) es un enfoque de la Conjunto de practicas y reglas empleadas para ingeniera de software desarrollar software. formulado por Kent Beck, Basada en diferentes ideas autor del primer libro acerca de cmo enfrentar sobre la materia, Extreme ambientes cambiantes. Programming Explained: En vez de planificar, Embrace Change (1999). analizar y disear para el Es el ms destacado de los futuro, hacer todo esto un poco cada vez, a travs de procesos giles de todo el proceso de desarrollo de software. desarrollo. 2. OBJETIVOS
Establecer las mejores prcticas de Ingeniera 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.
Asumir que con cierta planificacin, codificacin y pruebas
se puede decidir si se est siguiendo un camino correcto o equivocado, evitando retroceder cuando sea demasiado tarde. 3. CARACTERSTICAS
Metodologa basada en prueba y error para obtener un
software que funcione realmente.
Fundamentada en Principios.
Expresada en forma de 12 Prcticas (conjunto completo,
complementndose unas a otras). Las cuales son conocidas pero su novedad es juntarlas.
Esta orientada hacia quien produce y usa el software (el
cliente participa muy activamente). 3. CARACTERSTICAS
Reduce el coste del cambio en todas las etapas del ciclo de
vida del sistema.
Combina las que han demostrado ser las mejores prcticas
para desarrollar software, y las lleva al extremo.
Cliente bien definido.
Los requisitos pueden cambiar.
Grupo pequeo y muy integrado (2 - 12 personas).
Fundamentalmente se trabaja en parejas.
Equipo con formacin elevada y capacidad de aprender.
4. PRINCIPIOS DEL MTODO X.P. Este mtodo se basa principalmente en 4 valores o principios bien definidos:
1. Simplicidad: La simplicidad consiste en desarrollar slo el
sistema que realmente se necesita. Implica resolver en cada momento slo las necesidades actuales.
2. Feedback: Una metodologa basada en el desarrollo
iterativo de pequeas partes, con entregas y pruebas frecuentes y continuas, proporciona un flujo de retro- informacin valioso para detectar los problemas o desviaciones. 4. PRINCIPIOS DEL MTODO X.P. 3. Decisin: Implica saber tomar decisiones difciles.
Reparar un error cuando se detecta.
Mejorar el cdigo siempre que tras el feedback y las
sucesivas iteraciones.
4. Comunicacin : Algunos problemas en los proyectos tienen
origen en que alguien no dijo algo importante en algn momento. XP hace casi imposible la falta de comunicacin, ya que pone en comunicacin directa y continua a clientes y desarrolladores. 5. PRCTICAS BASADAS EN X.P. 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. Planificacin: Se hacen las historias de usuario y se
planifica en qu orden se van a hacer y las mini-versiones. La planificacin se revisa continuamente.
3. Test del cliente: El cliente, con la ayuda de los
desarrolladores, propone sus propias pruebas para validar las mini-versiones. 5. PRCTICAS BASADAS EN X.P. 4. Versiones pequeas: Las mini-versiones deben ser lo suficientemente pequeas como para poder hacer una cada pocas semanas. Deben ser versiones que ofrezcan algo til al usuario final y no fragmentos de cdigo que no pueda ver funcionando.
5. Diseo simple: Hacer siempre lo mnimo imprescindible
de la forma ms sencilla posible. Mantener siempre sencillo el cdigo.
6. Pareja de programadores: Los programadores trabajan
por parejas (dos delante del mismo ordenador) y se intercambian las parejas con frecuencia. 5. PRCTICAS BASADAS EN X.P. 7. Desarrollo guiado por las pruebas automticas: Se deben realizar programas de prueba automtica y deben ejecutarse con mucha frecuencia. Cuantas ms pruebas se hagan, mejor.
8. Integracin continua: Deben tenerse siempre un
ejecutable del proyecto que funcione y en cuanto se tenga una nueva pequea funcionalidad, debe recompilarse y probarse. Es un error mantener una versin congelada dos meses mientras se hacen mejoras y luego integrarlas todas de golpe. 5. PRCTICAS BASADAS EN X.P. 9. El cdigo es de todos: Cualquiera puede y debe tocar y conocer cualquier parte del cdigo. Para eso se hacen las pruebas automticas.
10. Normas de codificacin: Debe haber un estilo comn de
codificacin (no importa cual), de forma que parezca que ha sido realizado por una nica persona.
11. Metforas: Hay que buscar unas frases o nombres que
definan cmo funcionan las distintas partes del programa, de forma que slo con los nombres se pueda uno hacer una idea de qu es lo que hace cada parte del programa. 5. PRCTICAS BASADAS EN X.P. 12. Ritmo sostenible: Se debe trabajar a un ritmo que se pueda mantener indefinidamente. Esto quiere decir que no debe haber das muertos en que no se sabe qu hacer y que no se deben hacer un exceso de horas otros das. Hay que trabajar para conseguir el objetivo cercano de terminar una historia de usuario o mini-versin. 5. PRCTICAS BASADAS EN X.P. 6. CICLO DE VIDA Ejemplo grfico: 7. VENTAJAS E INCONVENIENTES Ventajas:
Da lugar a una programacin sumamente organizada.
Cuenta con una tasa de errores muy pequea.
Propicia la satisfaccin del programador.
Facilita los cambios.
Permite ahorrar mucho tiempo y dinero.
Puede ser aplicada a cualquier lenguaje de programacin.
El cliente tiene el control sobre las prioridades.
Se hacen pruebas continuas durante el proyecto.
7. VENTAJAS E INCONVENIENTES Inconvenientes:
Es recomendable emplearla solo en proyectos a corto plazo.
En caso de fallar, las comisiones son muy altas.
Requiere de un rgido ajuste a los principios de XP.
Puede no siempre ser ms fcil que el desarrollo tradicional.