Metodologia Xp

Embed Size (px)

Citation preview

METODOLOGIA XP

METODOLOGIA XPPROGRAMACIONTECNOLOGIAS DE LA INFORMACION

Qu es Extreme Programming?En qu consiste XP?

La Programacin Extrema es una metodologa ligera de desarrollo de software que se basa en la simplicidad, la comunicacin y la realimentacin o reutilizacin del cdigo desarrollado.ES UN METODO LIGEROOrigen de la metodologa XPFue formulada porKent Beck, autor del primer libro sobre la materia,Extreme Programming Explained: Embrace Change(1999). Es el ms destacado de losprocesos gilesde desarrollo de software.XP Nace en busca de simplificar el desarrollo del software y que se lograra reducir el costo del proyecto. Todo en el software cambia. Los requisitos cambian. El diseo cambia. El negocio cambia. La tecnologa cambia. El equipo cambia. Los miembros del equipo cambian. El problema no es el cambio en s mismo, puesto que sabemos que el cambio va a suceder; el problema es la incapacidad de adaptarnos a dicho cambio cuando ste tiene lugar.OBJETIVOSObtencin del producto, software funcionando, y con la satisfaccin del cliente.

Minimizacin del riesgo actuando sobre:Variables del proyecto :CosteTiempoCalidadAlcanceVALORESLos valores originales de la programacin extrema son: simplicidad, comunicacin, retroalimentacin (feedback) y coraje. Un quinto valor, respeto, fue aadido en la segunda edicin deExtreme Programming Explained. Los cinco valores se detallan a continuacin:FEEDBACKCORAJECOMUNICACINSIMPLICIDADRESPETOSimplicidadLa simplicidad consiste en desarrollar slo el sistema que realmente se necesita. Implica resolver en cada momento slo las necesidades actuales.Los costes y la complejidad de predecir el futuro son muy elevados, y la mejor forma de acertar es esperar al futuro. Con este principio de simplicidad, junto con la comunicacin y el feedback resulta ms fcil conocer las necesidades reales

ComunicacinXP pone en comunicacin directa y continua a clientes y desarrolladores. El cliente se integra en el equipo para establecer prioridades y resolver dudas. De esta forma ve el avance da a da, y es posible ajustar la agenda y las funcionalidades de forma consecuente Feedback rpido y continuoUna metodologa basada en el desarrollo incremental de pequeas partes, con entregas y pruebas frecuentes y continuas, proporciona un flujo de retro-informacin valioso para detectar los problemas o desviaciones.De esta forma fallos se localizan muy pronto.La planificacin no puede evitar algunos errores, que slo se evidencian al desarrollar el sistema.La retro-informacin es la herramienta que permite reajustar la agenda y los planes. CorajeDisciplina en la aplicacin de XPParar cuando se est cansadoPermitir que el usuario tome las decisiones de negocioPermitir que el desarrollador tome las decisiones tcnicasDescartar cdigo si es necesarioIntroducir cambios cuando las cosas no funcionanRespetoEl 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 compaeros. Los miembros respetan su trabajo porque siempre estn luchando por la alta calidad en el producto y buscando el diseo ptimo o ms eficiente para la solucin a travs de la refactorizacin del cdigo. Los miembros del equipo respetan el trabajo del resto no haciendo menos a otros, una mejor autoestima en el equipo eleva su ritmo de produccin.Roles en XPProgramadorEscribe las pruebas unitarias y produce el cdigo del sistema.Pieza bsica en desarrollos XPMs responsabilidad que en otros modos de desarrolloResponsable sobre el cdigo Responsable sobre el diseo (refactorizacin, simplicidad)Responsable sobre la integridad del sistema (pruebas)Capacidad de comunicacin (pair-programming)Acepta crticas (cdigo colectivo)ClienteEscribe las historias de usuario y las pruebas funcionales para validar su implementacin. Asigna la prioridad a las historias de usuario y decide cules se implementan en cada iteracin centrndose en aportar el mayor valor de negocio.Pieza bsica en desarrollos XPDefine especificaciones (user stories)Influye sin controlarConfa en el grupo de desarrolloDefine pruebas funcionales

Tester Encargado de pruebasAyuda al cliente a escribir las pruebas funcionales. Ejecuta pruebas regularmente, difunde los resultados en el equipo y es responsable de las herramientas de soporte para pruebas.Apoya al cliente en la preparacin/realizacin de las pruebas funcionalesEjecuta las pruebas funcionales y publica los resultados

Tracker Encargado de SeguimientoEs el encargado de seguimiento. Proporciona realimentacin al equipo. Debe verificar el grado de acierto entre las estimaciones realizadas y el tiempo real dedicado, comunicando los resultados para mejorar futuras estimaciones.Recoge, analiza y publica informacin sobre la marcha del proyecto sin afectar demasiado el procesoSupervisa el cumplimiento de la estimaciones en cada iteracinInforma sobre la marcha de la iteracin en cursoControla la marcha de las pruebas funcionales, de los errores reportados, de las responsabilidades aceptadas y de las prueba aadidas por los errores encontrados

Entrenador (Coach)Responsable del proceso global. Gua a los miembros del equipo para seguir el proceso correctamente.Experto en XPResponsable del proceso en su conjuntoIdentifica las desviaciones y reclama atencin sobre las mismasGua al grupo de forma indirecta (sin daar su seguridad ni confianza)Interviene directamente si es necesarioAtajar rpidamente el problemaConsultorEs un miembro externo del equipo con un conocimiento especfico en algn tema necesario para el proyecto. Ayuda al equipo a resolver un problema especfico.- Apoya al equipo XP en cuestiones puntualesGestor (Big boss) Encargado de proyectoEs el dueo de la tienda y el vinculo entre clientes y programadores. Su labor esencial es la coordinacin.Favorece la relacin entre usuarios y desarrolladoresConfa en el equipo XP Cubre las necesidades del equipo XPAsegura que alcanza sus objetivosCaptura de Requisitos en XPHistorias del Usuario (User-Stories)Establecen los requisitos del cliente Trozos de funcionalidad que aportan valorSe les asignan tareas de programacin con un n de horas de desarrolloLas establece el clienteSon la base para lasProgramacin en XPLa programacin de tareas se realiza por parejas

La pareja disea, prueba, implementa e integra el cdigo de la tarea

Cdigo dirigido por las pruebas

Cdigo modular, intentando refactorizar siempre que se pueda

Modelo de un Proyecto XP

Prcticas de XPPRCTICAS DE CODIFICACIN1.- Simplicidad de cdigo y de diseo para producir software fcil de modificar.2.- Reingeniera continua para lograr que el cdigo tenga un diseo ptimo.3.- Desarrollar estndares de codificacin, para comunicar ideas con claridad a travs del cdigo.4.- Desarrollar un vocabulario comn, para comunicar las ideas sobre el cdigo con claridad.PRCTICAS DE DESARROLLO1.- Adoptar un mtodo de desarrollo basado en las pruebas para asegurar que el cdigo se comporta segn lo esperado.2.- Programacin por parejas, para incrementar el conocimiento, la experiencia y las ideas.3.- Asumir la propiedad colectiva del cdigo, para que todo el equipo sea responsable de l.4.- Integracin continua, para reducir el impacto de la incorporacin de nuevas funcionalidades.PRCTICAS DE NEGOCIO1.- Integracin de un representante del cliente en el equipo, para encauzar las cuestiones de negocio del sistema de forma directa, sin retrasos o prdidas por intermediacin.2.- Adoptar el juego de la planificacin para centrar en la agenda el trabajo ms importante.3.- Entregas regulares y frecuentes para satisfacer la inversin del cliente.4.- Ritmo de trabajo sostenible, para terminar la jornada cansado pero no agotado.

Ventajas y desventajas de Extreme ProgrammingVentajas:Programacin organizada.Menor taza de errores.Satisfaccin del programador.Desventajas:Es recomendable emplearlo solo en proyectos a corto plazo.Altas comisiones en caso de fallar.

CONCLUSIONES-Apostolado de metodologas exitosas-Aporte de la experiencia prctica a los modelos tericos-Enfoque de conjunto de prcticas como rompecabezas-Tecnologa en expansin-Importancia de revisitar las metodologas desde la experiencia prctica