1 / 40

Metodologías Ágiles y XP

Metodologías Ágiles y XP. Patricio Letelier letelier@dsic.upv.es. Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia. e X treme P rogramming. ¿Qué es XP?. Es una metodología ágil Diseñada para entornos dinámicos

stacie
Download Presentation

Metodologías Ágiles y XP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Metodologías Ágiles y XP Patricio Letelier letelier@dsic.upv.es Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia

  2. eXtreme Programming

  3. ¿Qué es XP? • Es una metodología ágil • Diseñada para entornos dinámicos • Pensada para equipos pequeños (hasta 10 programadores) • Orientada fuertemente hacia la codificación • Énfasis en la comunicación informal, verbal

  4. Historia de XP • Creado por Kent Beck para la plantilla del proyecto C3 en Chrysler • Kent fue contratado para dirigir el proyecto • Durante el proceso nació una nueva metodología: eXtreme Programming (XP) • C3 concluyó exitosamente en 1997

  5. Valores que fomenta XP • Comunicación • Simplicidad • Retroalimentación • Coraje

  6. Programador (Programmer) Responsable de decisiones técnicas Responsable de construir el sistema Sin distinción entre analistas, diseñadores o codificadores En XP, los programadores diseñan, programan y realizan las pruebas Jefe de Proyecto(Manager) Organiza y guía las reuniones Asegura condiciones adecuadas para el proyecto Cliente(Customer) Es parte del equipo Determina qué construir y cuándo Establece las pruebas funcionales Roles XPc2.com/cgi/wiki?ExtremeRoles

  7. Entrenador(Coach) Responsable del proceso Tiende a estar en un segundo plano a medida que el equipo madura Encargado de Pruebas(Tester) Ayuda al cliente con las pruebas funcionales Se asegura de que las pruebas funcionales se superan Rastreador (Tracker) Metric Man Observa sin molestar Conserva datos históricos ... Roles XP

  8. Captura de Requisitos en XP • Historias del Usuario (User-Stories) • Establecen los requisitos del cliente • Trozos de funcionalidad que aportan valor • Se les asignan tareas de programación con un nº de horas de desarrollo • Las establece el cliente • Son la base para las pruebas funcionales

  9. Captura de Requisitos en XPUna ficha de User-Story

  10. Planificación en XP • Planificación por entregas (releases) • Se priorizan aquellas user-stories que el cliente selecciona porque son más importantes para el negocio • Entregas: • Son lo más pequeñas posibles • Se dividen en iteraciones (iteración = 2 o 3 semanas) • Están compuestas por historias • A cada programador se le asigna una tarea de la user-story

  11. Programación en XP • La programación de tareas se realiza por parejas • La pareja diseña, prueba, implementa e integra el código de la tarea • Código dirigido por las pruebas • Código modular, intentando refactorizar siempre que se pueda

  12. Programación en XP Una ficha de Tarea

  13. Modelo de un Proyecto XP

  14. Espacio de trabajo XP • Espacio abierto • Mesas centrales • Cubículos en el espacio exterior Espacio de trabajo del proyecto C3de DaimlerChrysler

  15. Prácticas XP • El juego de la planificación • Entregas pequeñas • Metáfora • Diseño simple • Pruebas • Refactoring • Programación en parejas • Propiedad colectiva • Integración contínua • Semana de 40 horas • Cliente in situ • Estándares de programación

  16. Prácticas XPEl Juego de la planificación • Decisiones de negocio (cliente): • Alcance ¿Cuándo debe estar listo el producto para que sea valioso en producción? • Prioridad  Prioriza la incorporación de las user-stories • Composición de entregas  ¿Qué se necesita para que el negocio sea mejor antes de tener el sw? • Fechas de entrega Fechas cuando el software funcionando causaría una gran diferencia

  17. Prácticas XP... El Juego de la planificación • Decisiones técnicas (programadores y otros): • Estimaciones ¿Cuánto tiempo tardará en implementarse una user-story? • Consecuencias  Tener en cuenta las consecuencias técnicas de determinadas decisiones de negocio • Proceso  Organización del proceso y el equipo • Planificación detallada  Dentro de una entrega, qué user-stories se realizan primero. Intentar trasladar los segmentos de desarrollo más arriesgados al principio, intentando respetar las prioridades del negocio

  18. Prácticas XP... El Juego de la planificaciónReunión diaria XP • Reunión diaria “Stand-up Meeting” • Todo el equipo • Problemas • Soluciones • De pie en un círculo • Evitar discusiones largas • Sin conversaciones separadas

  19. Prácticas XPEntregas pequeñas • Cada entrega es lo más corta posible: • Contenga requisitos más valiosos del sistema (básicos) • Reducen el riesgo  mayor retroalimentación desde el cliente, y más frecuente • Minimizar el nº de user-stories que componen una entrega  No realizar user-stories a medias

  20. Prácticas XPMetáfora • Cada proyecto XP es guiado por una metáfora global • Da un contexto al equipo para entender los elementos básicos y sus relaciones • Proporciona integridad conceptual

  21. Prácticas XPDiseño simple • Se diseña “la cosa más simple que pueda funcionar” • Uso de tarjetas CRC • Diseño de software correcto, es aquel que: • Supera todas las pruebas • No tiene lógica duplicada • Pone de manifiesto las intenciones importantes de los programadores • Tiene el mínimo número de clases y métodos

  22. Prácticas XPPruebas • Las pruebas unitarias se escriben ANTES que el código • Pruebas automatizadas • Permiten el desarrollo de proyectos de forma rápida y segura • Pruebas unitarias  programadores • Pruebas funcionales  cliente • Resultado  Un programa cada vez más seguro

  23. Prácticas XPRefactoringwww.refactoring.com • Refactorización = Mejora del código • Intentar eliminar complejidad • Código duplicado  Refactorización • Se plantea su aplicación después de implementar cada user-story

  24. Prácticas XPProgramación en parejaswww.pairprogramming.com • Todo el código se escribe en parejas • Se produce código de mayor calidad • Extiende el conocimiento • “Se realiza el trabajo de 1 persona en casi la mitad del tiempo y mejor” (cuestionable)

  25. Prácticas XPPropiedad colectiva • Cualquiera puede modificar el código en cualquier momento  Se evitan cuellos de botella en la codificación • Todos asumen las responsabilidades sobre el conjunto del sistema • Todos conocen algo sobre todas las partes y conocen muy bien aquéllas en las que trabajan

  26. Prácticas XPIntegración contínua • El código se integra y se prueba después de pocas horas • Existe una ordenador dedicado para la integración • Cada pareja integra su código en dicho ordenador

  27. Prácticas XPSemana de 40 horas • Filosofía: “Los programadores que descansan son más productivos” • El exceso de trabajo es un serio problema en un proyecto • La gente está más fresca y tiene mejores ideas

  28. Prácticas XPCliente in situ • Cliente real = Aquel que usará el sistema cuando esté en producción • El cliente real debe estar con el equipo de trabajo: • Responder preguntas • Resolver disputas • Establecer prioridades • Discutir mejoras

  29. Prácticas XPEstándares de programación • Son fundamentales cuando los programadores cambian de pareja o hacen refactoring del código de otros • Se consigue un código con el mismo estilo, homogéneo, legible

  30. Prácticas XPInteracción entre Prácticas XP: Kent Beck

  31. Conclusiones

  32. Un día de trabajo en XP

  33. Mala Precaución Buena No todas las ideas/prácticas ágiles son buenas • SW funcionando >> Documentation • Propiedad colectiva • Mejora de la calidad • iterativamente • Colaboración >> Contrato Stories Pair Programming Frequent Releases Daily Stand-up Meetings Create Great Architectures Working SW >> Documentation Collective Ownership Improve Quality Iteratively Collaboration>>Contracts Historias de usuario Programación en parejas Releases frecuentes Reunión “Stand-up” cada día Crear buenas arquitecturas Nightly Builds (too early to tell) Refactor (when time appropriate) Ever-Present Customers (unlikely to work in real world) Continuous Integration (unlikely for non-trivial) Don’t Create Things to Discard (moderation!) x • Nightly Builds • Refactoring • Cliente in situ • Integración contínua • No crear cosas que se desecharán Diapositiva obtenida de la presentación “A History of Agile Methods” presentada por Alan Davis en JISBD 2002

  34. Fundamentalistas Tendencia global Libertarios Fuerzas que influyen los enfoque para el desarrollo de software Grado de Ceremonia/control en el proceso Tiempo 1950’s 1960’s 1970’s 1980’s 1990’s 2000’s 2010’s Diapositiva obtenida de la presentación “A History of Agile Methods” presentada por Alan Davis en JISBD 2002

  35. ¿Qué resultado proveen las Metodologías Ágiles? • Hay pocos datos concretos del índice de éxito de proyectos • Está teniendo un gran auge • Aumento en el número de proyectos • ¿Por qué? • Tiene el apoyo de muchos gurúes en ingeniería de sw • Es un proceso para gente que odia los procesos • Tiene sentido • ¿Política? ... Pugna entre comunidades

  36. ¿Cuándo utilizar una Metodología Ágil? • ¿Existe ya un proceso? Si • ¿Reacciona bien a los cambios? Si • ¿Está el equipo contento con él? Si  Mejor esperar • Se están recogiendo datos (red NAME) http://name.case.unibz.it/ • En un futuro se podrán hacer comparaciones sobre lo que es más conveniente

  37. ... ¿Cuándo utilizar una Metodología Ágil? • ¿Existe ya un proceso? No o existe pero no reacciona bien a los cambios o existe pero el equipo no está contento con él Una Metodología Ágil puede ser una buena forma de empezar • Fácil de financiar • A los programadores les gusta • A los clientes les gusta el control añadido

  38. ¿Qué hace la gente con las Metodologías Ágiles? • International Conference on eXtreme Programming and Agile Methods in Software Development (XP200x) • http://www.xp2003.org • XP Agile Universe • http://www.agileuniverse.com

  39. Fin de la Presentación Metodologías Ágiles y XP Patricio Letelier letelier@dsic.upv.es Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia

More Related