Please enable JavaScript.
Coggle requires JavaScript to display documents.
Xtreme Programming - Coggle Diagram
Xtreme Programming
Roles XP
Programador: Escribe las pruebas unitarias y produce el código del sistema. Debe existir comunicación y coordinacion adecuada entre los programadores y otros miembros
Cliente: Escribe las historias de usuario y las pruebas funcionales para validar su implementación. Asigna prioridad alas historias de usuario y decide cuales se implementan en cada iteración.
Tester: Ayuda al cliente a escribir las pruebas funcionales. Ejecuta las pruebas regularmente, difunde los resultados del equipo y es responsable de las herramientas del soporte de pruebas
Tracker: Su responsabilidad es verificar el grado de acierto entre las estimaciones realizadas y el tiempo real dedicado. También realiza el seguimiento del proceso de cada iteración y evalúa si los objetivos son alcanzables con las restricciones de tiempo y recursos presentes
Coach: Es responsable del proceso global. Es necesario que conozca a fondo el proceso de XP para proveer guías a los miembros del equipo de forma que se apliquen las practicas XP y se siga el proceso correctamente
Consultor: Es un miembro del equipo con un conocimiento especifico en algún tema necesario para el proyecto. Guía al equipo para resolver un problema especifico
Big boss: Es el vinculo entre clientes y programadores, ayuda a que el equipo trabaje efectivamente creando las condiciones adecuadas. Su labor esencial es de coordinador
Que es?
Consiste en ajustarse estrictamente a una serie de reglas que se centran en las necesidades del cliente para lograr un producto de buena calidad en poco tiempo
La filosofía de XP es satisfacer al completo las necesidades del cliente, por eso lo integra como parte del equipo de desarrollo
Promueve el trabajo en equipo, preocupándose del aprendizaje de los desarrolladores y estableciendo buen clima de trabajo
-
La comunicación debe realizarse entre programadores, jefe de proyectos y cliente
Valores de XP
Comunicacion: Comunicación cara a cara es la mejor forma de comunicación entre los desarrolladores y el cliente. Gracias a esto el equipo puede realizar cambios que al cliente no le gustaron
simplicidad: Ayuda a que los desarrolladores de software encuentren soluciones mas simples a problemas.
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. Estar preparado con una metodología ayuda a enfrentar el cambio. Programa para hoy y no para mañana
Respeto: El equipo debe trabajar como uno, sin hacer decisiones repentinas. Cada integrante del proyecto forman parte integral del equipo encargado de desarrollar software de calidad.
Modelo XP
Xp define cuatro variables para cualquier proyecto de software: costo, tiempo, calidad y alcance. De estas cuatro, solo tres de ellas podrán se fijadas arbitrariamente por actores externos al grupo de desarrolladores.
Este mecanismo indica que , por ejemplo, si el cliente establece el alcance y la calidad, y el jede de proyecto el precio, el grupo de desarrollo tendrá la libertad para determinar el tiempo que durara el proyecto
En cada iteración se realiza un ciclo completo de análisis, diseño, desarrollo y pruebas, pero utilizando un conjunto de reglas y prácticas que caracterizan a XP
-
-
Reglas y practicas
1)Planificación: Xp plantea la planificación como un dialogo entre las partes involucradas en el proyecto, incluyendo al cliente, programadores y a los coordinadores o gerentes. El proyecto comienza recompilando historias de usuarios. Una vez obtenidas las historias de usuario, los programadores evalúan el tiempo de desarrollo de cada una. Si alguna de estas tiene "riesgos" que no establecen con certeza la complejidad del desarrollo, se realizan pequeños programas de prueba para reducir esos riesgos.
-
2)Diseño: XP hace especial énfasis en los diseños simples y claros. Los conceptos mas importantes de diseño en esta metodología son los siguientes
Simplicidad: Un diseño simple se implementa mas rápidamente que uno complejo. Se sugiere nunca adelantar la implementación de las funcionalidades que no correspondan a la iteración en la que se esta trabajando
Soluciones "Spike": Cuando aparecen problemas técnicos, o cuando es difícil de estimar el tiempo para implementar una historia de usuario, pueden utilizarse pequeños programas de prueba (Llamados spike), para explorar diferentes soluciones. Estos programas son únicamente para probar una solución y suelen ser desechados luego de su evaluación
Recodificación: Consiste en escribir nuevamente parte del código de un programa, sin cambiar la funcionalidad, a los efectos de hacerlo mas simple, conciso y/o entendible. Si funciona, rara vez es reescrito. XP sugiere recodificar cada vez que sea necesario ya que esta practica en el futuro tendrá frutos, cuando sea necesario ampliar o cambiar la funcionalidad
Metáforas: Es algo que todos entiendes, sin necesidad de mayores explicaciones. es muy importante que el cliente y el grupo de desarrolladores estén de acuerdo y compartan esta metáfora para que puedan dialogar en el mismo idioma.
3)Desarrollo:
Disponibilidad del cliente: Uno de los requerimientos de XP es tener al cliente disponible durante todo el proyecto. El involucramiento del cliente es fundamental para que pueda desarrollarse un proyecto con la metodología XP.
Uso de estándares: XP promueve la programación basada en estándares, de manera que sea fácilmente entendible por todo el equipo y que facilite la codificación
Programación dirigida por las pruebas: Xp propone en modelo en el que, lo primero que se escribe son los test que el sistema debe pasar. Luego, el desarrollo debe ser el mínimo necesario para pasar las pruebas previamente definidas.
Programación en pares: Xp propone que se desarrolle en pares de programadores, ambos trabajando juntos en un mismo ordenador. Esta practica minimiza los errores y se logran mejores diseños, compensando la inversión en horas.
Integraciones permanentes: Todos los desarrolladores necesitan trabajar siempre con la ultima versión. Realizar cambios o mejoras sobre versiones antiguas causan graves problemas, y retrasan el proyecto.
Propiedad colectiva del código: En un proyecto XP todo el equipo puede contribuir con nuevas ideas que apliquen cualquier parte del proyecto. Así mismo, cualquier pareja de programadores pueden cambiar el código que sea necesario.
Ritmo sostenido: el concepto que se desea establecer con esta practica es el de planificar el trabajo de manera de mantener un ritmo constante y razonable, sin sobrecargar al equipo
4)Pruebas:
Pruebas unitarias: Las pruebas son una de las piedras angulares de X. Todos los módulos deben pasar las pruebas unitarias antes de ser liberados o publicados. Las pruebas deben ser definidas antes de realizar el código. El sistema y el conjunto de pruebas debe ser guardado junto con el código, para que pueda ser utilizado por otros desarrolladores.
Detección y corrección de errores: Cuando se encuentra un error, este debe ser corregido inmediatamente, y se deben tener precauciones para que errores similares no vuelvan a ocurrir. Asimismo, se generan nuevas pruebas para verificar que el error haya sido resuelto
Pruebas de aceptación: Son creadas en base a las historias de usuario, en cada ciclo de la iteración del desarrollo. El cliente debe especificar los escenarios para comprobar que una historia de usuario ha sido correctamente implementada. Los clientes son responsables de verificar que los resultados de estas pruebas sean correctos
Proceso XP
Un proyecto XP tiene éxito cuando el cliente selecciona el valor de negocio a implementar basado en la habilidad del equipo para medir la funcionalidad que puede entregar a través del tiempo
Si bien el ciclo de vida de un proyecto XP es muy dinámico, se puede separar en las siguientes fases
1)Exploracion: Los clientes plantean a grandes rasgos las historias de usuario que son de interés para la primera entrega del producto. El equipo de desarrollo se familiariza con las herramientas, tecnologías y practicas que se utilizaran en el proyecto
2)Planificación de entrega: El cliente establece la prioridad de cada historia de usuario. Se toman acuerdos sobre el tema de la primera entrega y se determina un cronograma en conjunto con el cliente. El equipo de desarrollo mantiene un registro de la velocidad de desarrollo.
3)Iteraciones: El plan de entrega esta compuesto por iteraciones de no mas de tres semanas. Los elementos que deben tomarse en cuenta durante la elaboración del plan de iteración son: Historias de usuario no abordadas velocidad del proyecto, pruebas de aceptación no superadas en la iteración anterior y tareas no terminadas en la iteración anterior
4)Producción: La fase de producción requiere de pruebas y revisiones de rendimiento antes de que el sistema sea trasladado del entorno del cliente. Se debe tomar decisiones sobre la inclusión de nuevas características a la versión actual. En esta fase no se realizan mas desarrollos funcionales, pero pueden ser necesarias tareas de ajuste
5)Mantenimiento: Mientras la primera versión se encuentra en producción, el proyecto XP debe de mantener el sistema en funcionamiento al mismo tiempo que desarrolla nuevas iteraciones. Para realizar esto se requiere de tareas de soporte para el cliente. Esta fase puede requerir nuevo personal dentro del equipo y cambios en su estructura
6)Muerte del proyecto: Es cuando el cliente no tiene mas historias para ser incluidas en el sistema. Esto requiere que se satisfagas las necesidades del cliente en otros aspectos como rendimiento y confiabilidad del sistema. La muerte del sistema tambien ocurre cuando no genera los beneficios esperados por el cliente o cuando no hay presupuesto para mantenerlo
Ventajas y desventajas
Ventajas
-
El proceso de integración es continuo, por lo que el esfuerzo final pera la integración es nulo.
-
Se consiguen productos mas fiables y robustos contra los fallos gracias al diseño de los test de forma previa a la codificación
Se obtiene código mas simple y mas fácil de entender, reduciendo el numero de errores
-
-
Desventajas
-
No se puede aplicar a proyectos de gran escalla, que requieran mucho personal, a menos que se las subdivida en proyectos mas pequeños
Es complicado medir los avances del proyecto, pues es muy complicado el uso de una medida estándar
-