metodología de desarrollo xp
DESCRIPTION
Metodologia de desarrollo xpTRANSCRIPT
XP – Programación Extrema
•¿Que es XP?Metodología de Desarrollo de Software que se basa en:
Gerencia de Sistemas - 2008
Retroalimentación Comunicación Usuario - Programador
XP – Programación Extrema
•¿Cuando Usar XP?Se recomienda usar esta metodologia de desarrollo en proyectos:
Gerencia de Sistemas - 2008
Dinámicos: Donde sus requerimientos pueden variar constantemente (tiempos de entregas).
XP – Programación Extrema
•¿Cuando Usar XP?Se recomienda usar esta metodología de desarrollo en proyectos:
Gerencia de Sistemas - 2008
Con grupos de trabajos pequeños, de manera que asimilen los cambios del proyecto en forma efectiva.
XP – Programación Extrema
•¿Cuando Usar XP?Se recomienda usar esta metodología de desarrollo en proyectos:
Gerencia de Sistemas - 2008
Donde se disponga de una gran comunicación con el usuario (cliente) .
XP – Programación Extrema
•Filosofía de la metodología
Gerencia de Sistemas - 2008
Reglas(principios)
Practicas(actividades)
XP
XP – Programación Extrema
Gerencia de Sistemas - 2008
Diseño
XP Planificación
Desarrollo
Pruebas
XP – Programación Extrema
Gerencia de Sistemas - 2008
XPPlanificación
Historias de Usuarios
Planificación de Entregas
Liberación de Entregables
Dividir y Planificar Proyecto en Iteraciones
Medir Velocidad del
Proyecto
XP – Programación Extrema
Historias de Usuario por Escrito
Gerencia de Sistemas - 2008
Descripción clara y sencilla de la necesidad a implementar, hecha por el usuari, sin usar palabras tecnicas.
XP – Programación Extrema
Crear Planificación de Entregas
Gerencia de Sistemas - 2008
Estimación del tiempo de desarrollo para cada una de las Hisotrias de Usuarios expresadas en semanas ideales.
XP – Programación Extrema
•Fases - PlanificaciónPequeñas entregas de producto terminadoCon la finalidad de obtener una mayor retroalimentación del cliente, se hace necesario que el grupo de desarrollo libere, en forma constante, pequeñas versiones del sistema como producto de cada iteración.
Gerencia de Sistemas - 2008
XP – Programación Extrema•Fases - PlanificaciónMedir la velocidad del proyecto Planificar la cantidad de Historias de usuarios que se van a desarrollar en cada iteración.
Gerencia de Sistemas - 2008
Tiempo de Ejecución Planificado
(Cantidad de Historias de Usuarios Planificadas)
¿Tiempo de Ejecución
Real
(Cantidad de Historias de Usuarios Ejecutadas)
?=
XP – Programación Extrema
•Fases - PlanificaciónDividir el proyecto en iteraciones
Gerencia de Sistemas - 2008
Proyecto Fideicomiso
Iteracion 1 (de 1 a 3 semanas)
Iteracion N (de 1 a 3 semanas)
..
XP – Programación Extrema
Planificar cada iteración
Gerencia de Sistemas - 2008
Seleccionarlas para cada iteración las Historias de Usuario según su prioridad. Traducir las Historias de usuarios en Tarjeta de Tareas.
XP – Programación Extrema
•Fases - PlanificaciónRotar al personal de desarrolloPara lograr que el código creado por el grupo de desarrollo sea de propiedad colectiva, es necesario que cada pareja de programación rote en la elaboración de las historias de usuario.
Gerencia de Sistemas - 2008
XP – Programación Extrema•Fases - PlanificaciónHacer los cambios a XP que sean requeridos Al comenzar con el proyecto, el grupo de trabajo debe regirse por las “Reglas y Principios” de la metodología XP; esto no quiere decir que las mismas son inmutables. Dichos cambios deben ser producto de un acuerdo de todo el grupo de desarrollo, luego de un análisis de cada una de las reglas y verificar cual y cual no se adapta al proyecto.
Gerencia de Sistemas - 2008
XP – Programación Extrema
Gerencia de Sistemas - 2008
XPDiseño
Diseño Simple
Selección de Metafora
Creación de CRC
Refactorizar
No añadir funcionalidad
Temprana
XP – Programación Extrema
•Fases - DiseñoRealizar un diseño simple
Se emplea menos tiempo que uno complejo.Conduce a codificación facil.
Gerencia de Sistemas - 2008
XP – Programación Extrema•Fases - DiseñoSeleccionar una metáfora del sistema Creando a través de la misma una visión global y común del sistema a desarrollar; debe estar expresada en términos comunes para el grupo de desarrollo, haciendo analogías de cómo trabaja el sistema con aspectos de la vida real. La misma ayudará al equipo a estar sintonizados en cuanto a la denominación de los objetos y las clases en forma consistente.
Gerencia de Sistemas - 2008
XP – Programación Extrema•Fases - DiseñoUsar tarjetas CRC para sesiones de diseño Las tarjetas de Clases, Responsabilidades y Colaboración (CRC) son utilizadas para descubrir las soluciones de problemas técnicos con niveles de complejidad alto. Se hace analogía entre las tarjetas CRC con las clases a implementarse dentro del sistema, es decir, que por cada objeto que compone la aplicación, se usa una tarjeta CRC para representarlo.
Gerencia de Sistemas - 2008
XP – Programación Extrema
Usar tarjetas CRC para sesiones de diseño
Gerencia de Sistemas - 2008
CRC permiete facilitar la comunicación y documentar los resultados.
XP – Programación Extrema•Fases - DiseñoNo añadir funcionalidades en forma temprana Mantener la simplicidad dentro de la codificación para ello se debe evitar añadir funcionalidades extras al diseño, que por lo general implica un uso inadecuado de los recursos. Para esto, se recomienda “colocarse una venda para no ver requerimientos futuros” y solo concentrase en la lista de tareas programadas para el día.
Gerencia de Sistemas - 2008
XP – Programación Extrema
•Fases - DiseñoRefactorizar La refactorización es la sustracción, dentro del diseño y de la codificación del sistema, de aquellas cosas obsoletas como: funcionalidades utilizadas, redundancias, entre otros elementos, donde lo único que aportan al producto es mayor costo de mantenimiento.
Gerencia de Sistemas - 2008
XP – Programación Extrema
Gerencia de Sistemas - 2008
XPDesarrollo
Integrar al cliente en grupo de
trabajo
Codificar bajo Estandares
Crear pruebas unitarias antes
de codificar
Integración Continua
Programación en parejas
XP – Programación Extrema
•Fases - DesarrolloEl cliente siempre debe estar disponible Más que estar disponible, el cliente debe ser parte del grupo de desarrollo dentro de la disciplina XP, debido a que conviene que exista comunicación cara a cara con el mismo en cada una de las fases de desarrollo.
Gerencia de Sistemas - 2008
XP – Programación Extrema
•Fases - DesarrolloCodificar según estándar definidos por el equipoCrear estándares de programación ayuda a que se pueda crear en forma consistente un código colectivo, pues todos los desarrolladores entenderán en forma clara lo que allí esta escrito.
Gerencia de Sistemas - 2008
XP – Programación Extrema
•Fases - DesarrolloCrear prueba unitaria antes de codificar Las pruebas unitarias deben ser construidas antes de codificar, puesto que de ese modo es mucho más fácil y rápida su elaboración. Además permite al desarrollador codificar de tomando en cuenta los aspectos que evalúa las pruebas unitarias, y a su vez estará creando un código fácil de probar.
Gerencia de Sistemas - 2008
XP – Programación Extrema
•Fases - DesarrolloCrear prueba unitaria antes de codificar Para muchos la creación de pruebas unitarias antes de la generación del código es algo contraproducente, incluso, podría ser visto como una perdida de tiempo, pero muchos autores, por el contrario indican que esto es mucho mas productivo, eficiente y económico que tratar de encontrar de un error en un modulo ya elaborado.
Gerencia de Sistemas - 2008
XP – Programación Extrema
Crear prueba unitaria antes de codificar
Gerencia de Sistemas - 2008
XP – Programación Extrema•Fases - DesarrolloProgramación en parejaLejos de aportar mayores costos para el proceso de desarrollo, contribuye con el incremento de la calidad del software a producir. Si bien dos programadores por separado producirían mayor cantidad de código, la potencialidad del producto generado en pareja supera el beneficio de lo primero, por la calidad del desarrollo, permitiendo ahorrar tiempo en correcciones futuras.
Gerencia de Sistemas - 2008
XP – Programación Extrema•Fases - DesarrolloSolo una pareja de desarrolladores integra código por vez Las parejas de desarrolladores se van alternando, en forma secuencial, el turno para integrar con la última versión constituida y almacenada en el repositorio de código fuente, probando en forma simultanea la nueva versión antes de liberarla.
Gerencia de Sistemas - 2008
XP – Programación Extrema
•Fases - DesarrolloSolo una pareja de desarrolladores integra código por vez
Gerencia de Sistemas - 2008
Usar un solo PC para la integración permite controlde
integración
XP – Programación Extrema•Fases - DesarrolloIntegración continúa
Evita redundancias.Permite reusar el codigo. Facilita realizacion de pruebas y detección de
errores tempranamente.Se suprime la integración final.
Gerencia de Sistemas - 2008
XP – Programación Extrema•Fases - DesarrolloUso de código de propiedad colectiva Esta práctica fomenta el aporte de nuevas ideas por parte de todos los integrantes del equipo para todos los segmentos del proyecto. Adicionalmente reduce los cuellos de botellas personales, es decir, que si algún miembro del equipo tiene problemas en realizar cambios en una funcionalidad, cualquier programador puede libremente ayudar a introducir la modificación.
Gerencia de Sistemas - 2008
XP – Programación Extrema
Gerencia de Sistemas - 2008
XPPruebas
Ejecución de Prubas
Unitarias
Todod codigo debe pasar las
pruebas
Al encontrar error se crea una nueva
prueba
Informar al cliente sobre resultados de
pruebas