50
Metodologías Ágiles y XP Patricio Letelier [email protected] Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia

Me to Do Log i as a Giles

Embed Size (px)

DESCRIPTION

la metodologia agiles, trata sobre la extrema programacion especialmente para desarrolladores de software

Citation preview

  • Metodologas giles y XPPatricio [email protected] de Sistemas Informticos y ComputacinUniversidad Politcnica de Valencia

    www.dsic.upv.es/~letelier/pub

    ContenidosIntroduccin a Metodologas gilesExtreme Programming (XP)IntroduccinPrcticas de XPConclusiones

    www.dsic.upv.es/~letelier/pub

    Qu es una Metodologa gil? www.agilealliance.comLas Metodologas giles (AMs) valoran:Al individuo y las interacciones en el equipo de desarrollo ms que a las actividades y las herramientas

    Desarrollar software que funciona ms que conseguir una buena documentacin Minimalismo respecto del modelado y la documentacin del sistema

    La colaboracin con el cliente ms que la negociacin de un contrato

    Responder a los cambios ms que seguir estrictamente una planificacin

    www.dsic.upv.es/~letelier/pub

    Por qu surgen las Metodologas giles (AMs)?Dificultad para implantar metodologas tradicionales. Sofisticadas herramientas CASE y notaciones (UML)

    Una solucin a medida para un segmento importante de proyectos de desarrollo de software

    Pugna entre comunidades/gurs

    Aceptar el cambio ...

    www.dsic.upv.es/~letelier/pub

    Costo de los Cambios en SWCostodel cambiotiempo

    www.dsic.upv.es/~letelier/pub

    Manifiesto de las AMs agilemanifesto.orgPrincipios:La prioridad principal es satisfacer al cliente mediante tempranas y continuas entregas de software que le reporte un valor

    Dar la bienvenida a los cambios. Los AMs capturan los cambios para que el cliente tenga una ventaja competitiva

    Entregar frecuentemente software que funcione, desde un par de semanas a un par de meses, con el menor intervalo de tiempo posible entre una entrega y la siguiente

    www.dsic.upv.es/~letelier/pub

    Manifiesto de las AMsLa gente del negocio y los desarrolladores deben trabajar juntos a lo largo del proyecto

    Construir proyecto en torno a individuos motivados. Darles el entorno y el apoyo que necesitan y confiar en ellos para conseguir el trabajo

    El dilogo cara a cara es el mtodo ms eficiente y efectivo para comunicar informacin dentro de un equipo de desarrollo

    El software que funciona es la medida principal de progreso

    www.dsic.upv.es/~letelier/pub

    Manifiesto de las AMsLos procesos giles promueven un desarrollo sostenible. Los promotores, desarrolladores y usuarios deberan ser capaces de mantener una paz constante

    La atencin continua a la calidad tcnica y al buen diseo mejora la agilidad

    La simplicidad es esencial

    Las mejores arquitecturas, requisitos y diseos surgen de los equipos organizados por s mismos

    En intervalos regulares, el equipo reflexiona respecto de cmo llegar a ser ms efectivo, y segn esto ajusta su comportamiento

    www.dsic.upv.es/~letelier/pub

    Comparacin gil - gil

    Metodologa gilMetodologa No gilPocos ArtefactosMs ArtefactosPocos RolesMs RolesNo existe un contrato tradicional o al menos es bastante flexibleExiste un contrato prefijadoCliente es parte del equipo de desarrollo (adems in-situ)El cliente interacta con el equipo de desarrollo mediante reunionesGrupos pequeos (< 10 integrantes) y trabajando en el mismo sitioGrupos grandesMenos nfasis en la arquitecturaLa arquitectura es esencial

    www.dsic.upv.es/~letelier/pub

    Principales AMsCrystal Methodologies, Alistarir Cockburn, www.crystalmethodologies.org

    SCRUM, Ken Schwaber & Jeff Sutherland, www.controlchaos.com

    DSDM (Dynamic Systems Development Method), www.dsdm.org

    Lean Programming, Mary Poppendieck, www.poppendieck.com

    FDD (Feature-Driven Development), Peter Coad & Jeff De Luca, www.nebulon.com/fdd, www.coad.com/peter/#fdd

    Extreme Programming, Kent Beck www.extremeprogramming.org, www.xprogramming.com

    Adaptative Software Development, Jim Highsmith www.adaptivesd.com

    www.dsic.upv.es/~letelier/pub

  • eXtreme Programming

    www.dsic.upv.es/~letelier/pub

    Qu es XP? Es una metodologa gilDiseada para entornos dinmicosPensada para equipos pequeos (hasta 10 programadores)Orientada fuertemente hacia la codificacinnfasis en la comunicacin informal, verbal

    www.dsic.upv.es/~letelier/pub

    Historia de XPCreado por Kent Beck para la plantilla del proyecto C3 en ChryslerKent fue contratado para dirigir el proyectoDurante el proceso naci una nueva metodologa: eXtreme Programming (XP)C3 concluy exitosamente en 1997

    www.dsic.upv.es/~letelier/pub

    Valores que fomenta XP Comunicacin

    Simplicidad

    Retroalimentacin

    Coraje

    www.dsic.upv.es/~letelier/pub

    Roles XP c2.com/cgi/wiki?ExtremeRolesProgramador (Programmer)Responsable de decisiones tcnicasResponsable de construir el sistemaSin distincin entre analistas, diseadores o codificadoresEn XP, los programadores disean, programan y realizan las pruebasJefe de Proyecto (Manager)Organiza y gua las reunionesAsegura condiciones adecuadas para el proyecto

    Cliente (Customer)Es parte del equipoDetermina qu construir y cundoEstablece las pruebas funcionales

    www.dsic.upv.es/~letelier/pub

    ... Roles XPEntrenador (Coach)Responsable del procesoTiende a estar en un segundo plano a medida que el equipo madura

    Encargado de Pruebas (Tester) Ayuda al cliente con las pruebas funcionalesSe asegura de que las pruebas funcionales se superanRastreador (Tracker)Metric ManObserva sin molestarConserva datos histricos

    www.dsic.upv.es/~letelier/pub

    Captura 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 las pruebas funcionales

    www.dsic.upv.es/~letelier/pub

    Captura de Requisitos en XPUna ficha de User-Story

    www.dsic.upv.es/~letelier/pub

    Planificacin en XPPlanificacin por entregas (releases)Se priorizan aquellas user-stories que el cliente selecciona porque son ms importantes para el negocioEntregas:Son lo ms pequeas posiblesSe dividen en iteraciones (iteracin = 2 o 3 semanas)Estn compuestas por historiasA cada programador se le asigna una tarea de la user-story

    www.dsic.upv.es/~letelier/pub

    Programacin 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

    www.dsic.upv.es/~letelier/pub

    Programacin en XP Una ficha de Tarea

    www.dsic.upv.es/~letelier/pub

    Modelo de un Proyecto XP

    www.dsic.upv.es/~letelier/pub

    Espacio de trabajo XPEspacio abiertoMesas centralesCubculos en el espacio exteriorEspacio de trabajo del proyecto C3 de DaimlerChrysler

    www.dsic.upv.es/~letelier/pub

    Prcticas XP

    El juego de la planificacinEntregas pequeas MetforaDiseo simple PruebasRefactoring

    Programacin en parejasPropiedad colectivaIntegracin contnuaSemana de 40 horasCliente in situEstndares de programacin

    www.dsic.upv.es/~letelier/pub

    Prcticas XPEl Juego de la planificacinDecisiones de negocio (cliente):Alcance Cundo debe estar listo el producto para que sea valioso en produccin?Prioridad Prioriza la incorporacin de las user-storiesComposicin de entregas Qu se necesita para que el negocio sea mejor antes de tener el sw?Fechas de entrega Fechas cuando el software funcionando causara una gran diferencia

    www.dsic.upv.es/~letelier/pub

    Prcticas XP... El Juego de la planificacinDecisiones tcnicas (programadores y otros):Estimaciones Cunto tiempo tardar en implementarse una user-story?Consecuencias Tener en cuenta las consecuencias tcnicas de determinadas decisiones de negocioProceso Organizacin del proceso y el equipoPlanificacin detallada Dentro de una entrega, qu user-stories se realizan primero. Intentar trasladar los segmentos de desarrollo ms arriesgados al principio, intentando respetar las prioridades del negocio

    www.dsic.upv.es/~letelier/pub

    Reunin diaria Stand-up Meeting Todo el equipoProblemasSolutionesDe pie en un crculo Evitar discusiones largas Sin conversaciones separadasPrcticas XP... El Juego de la planificacinReunin diaria XP

    www.dsic.upv.es/~letelier/pub

    Prcticas XPEntregas pequeasCada entrega es lo ms corta posible:Contenga requisitos ms valiosos del sistema (bsicos)Reducen el riesgo mayor retroalimentacin desde el cliente, y ms frecuenteMinimizar el n de user-stories que componen una entrega No realizar user-stories a medias

    www.dsic.upv.es/~letelier/pub

    Prcticas XPMetforaCada proyecto XP es guiado por una metfora global

    Da un contexto al equipo para entender los elementos bsicos y sus relaciones

    Proporciona integridad conceptual

    www.dsic.upv.es/~letelier/pub

    Prcticas XPDiseo simpleSe disea la cosa ms simple que pueda funcionarUso de tarjetas CRCDiseo de software correcto, es aquel que:Supera todas las pruebasNo tiene lgica duplicadaPone de manifiesto las intenciones importantes de los programadoresTiene el mnimo nmero de clases y mtodos

    www.dsic.upv.es/~letelier/pub

    Prcticas XPPruebasLas pruebas unitarias se escriben ANTES que el cdigoPruebas automatizadas Permiten el desarrollo de proyectos de forma rpida y seguraPruebas unitarias programadoresPruebas funcionales clienteResultado Un programa cada vez ms seguro

    www.dsic.upv.es/~letelier/pub

    Prcticas XPRefactoringwww.refactoring.comRefactorizacin = Mejora del cdigo

    Intentar eliminar complejidad

    Cdigo duplicado Refactorizacin

    Se plantea su aplicacin despus de implementar cada user-story

    www.dsic.upv.es/~letelier/pub

    www.dsic.upv.es/~letelier/pub

    Prcticas XPProgramacin en parejaswww.pairprogramming.comToda el cdigo se escribe en parejasSe produce cdigo de mayor calidad

    Extiende el conocimiento

    Se realiza el trabajo de 1 persona en casi la mitad del tiempo y mejor (cuestionable)

    www.dsic.upv.es/~letelier/pub

    Prcticas XPPropiedad colectivaCualquiera puede modificar el cdigo en cualquier momento Se evitan cuellos de botella en la codificacin

    Todos asume las responsabilidades sobre el conjunto del sistema

    Todos conocen algo sobre todas las partes y conocen muy bien aqullas en las que trabajan

    www.dsic.upv.es/~letelier/pub

    Prcticas XPIntegracin contnuaEl cdigo se integra y se prueba despus de pocas horas

    Existe una ordenador dedicado para la integracin

    Cada pareja integra su cdigo en dicho ordenador

    www.dsic.upv.es/~letelier/pub

    Prcticas XPSemana de 40 horasFilosofa: Los programadores que descansan son ms productivos

    El exceso de trabajo es un serio problema en un proyecto

    La gente est ms fresca y tiene mejores ideas

    www.dsic.upv.es/~letelier/pub

    Prcticas XPCliente in situCliente real = Aquel que usar el sistema cuando est en produccin

    El cliente real debe estar con el equipo de trabajo:Responder preguntasResolver disputasEstablecer prioridadesDiscutir mejoras

    www.dsic.upv.es/~letelier/pub

    Prcticas XPEstndares de programacinSon fundamentales cuando los programadores cambian de pareja o hacen refactoring del cdigo de otros

    Se consigue un cdigo con el mismo estilo, homogneo, legible

    www.dsic.upv.es/~letelier/pub

    Prcticas XPInteraccin entre PrcticasXP: Kent Beck

  • Conclusiones

    www.dsic.upv.es/~letelier/pub

    Un da de trabajo en XP

    www.dsic.upv.es/~letelier/pub

    No todas las ideas/prcticas giles son buenasStoriesPair ProgrammingFrequent ReleasesDaily Stand-up MeetingsCreate Great ArchitecturesWorking SW >> DocumentationCollective OwnershipImprove Quality IterativelyCollaboration>>Contracts 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)Dont Create Things to Discard (moderation!) x Nightly Builds Refactoring Cliente in situ Integracin contnua No crear cosas que se desecharn Historias de usuario Programacin en parejas Releases frecuentes Reunin Stand-up cada da Crear buenas arquitecturas SW funcionando >> Documentation Propiedad colectiva Mejora de la calidad iterativamente Colaboracin >> Contrato Diapositiva obtenida de la presentacin A History of Agile Methods presentada por Alan Davis en JISBD 2002

    www.dsic.upv.es/~letelier/pub

    Fuerzas que influyen los enfoque para el desarrollo de softwareGrado de Ceremonia/control en el procesoTiempo1950s1960s1970s1980s1990s2000s2010sDiapositiva obtenida de la presentacin A History of Agile Methods presentada por Alan Davis en JISBD 2002

    www.dsic.upv.es/~letelier/pub

    Qu resultado proveen las Metodologas giles?Hay pocos datos concretos del ndice de xito de proyectosEst teniendo un gran augeAumento en el nmero de proyectosPor qu?Tiene el apoyo de muchos gurs en ingeniera de swEs un proceso para gente que odia los procesosTiene sentidoPoltica? ... Pugna entre comunidades

    www.dsic.upv.es/~letelier/pub

    Cundo utilizar una Metodologa gil?Existe ya un proceso? SiReacciona bien a los cambios? SiEst el equipo contento con l? Si

    Mejor esperarSe estn recogiendo datos (red NAME) http://name.case.unibz.it/En un futuro se podrn hacer comparaciones sobre lo que es ms conveniente

    www.dsic.upv.es/~letelier/pub

    ... Cundo utilizar una Metodologa gil?Existe ya un proceso? Noo existe pero no reacciona bien a los cambioso existe pero el equipo no est contento con l

    Una Metodologa gil puede ser una buena forma de empezarFcil de financiarA los programadores les gustaA los clientes les gusta el control aadido

    www.dsic.upv.es/~letelier/pub

    Qu hace la gente con las Metodologas giles?International Conference on eXtreme Programming and Agile Methods in Software Development (XP200x)http://www.xp2003.orgXP Agile Universehttp://www.agileuniverse.com

  • Metodologas giles y XPDepartamento de Sistemas Informticos y ComputacinUniversidad Politcnica de ValenciaFin de la PresentacinPatricio [email protected]

    A Practical Guide to Feature-Driven Development (The Coad Series) by Stephen R Palmer, John M. Felsing , Prentice Hall, 2002

    Kent Beck, Extreme Programming Explained, Addison-Wesley, 1999

    DSDM: Business Focused Development, Second Edition by Jennifer Stapleton (Editor), Consortium Dsdm, Barry Fazackerley, DSDM Consortium, Addison-Wesley, 2003

    Agile Software Development with SCRUM by Schwaber Ken, Mike Beedle, Ken Schwaber, Robert C. Martin, Prentice Hall; 1st edition (October 15, 2001)

    Agile Software Development by Alistair Cockburn , Addison-Wesley Pub Co; 1st edition (December 15, 2001)

    Agile Software Development Ecosystems by Jim Highsmith, Addison Wesley Professional; 1st edition (March 26, 2002)

    Lean Development: An Agile Toolkit for Software Development Managers by Mary Poppendieck, Tom Poppendieck, Addison Wesley Professional; 1st edition (June 4, 2003) Obtenido desde http://www.rolemodelsoft.com/XP/xpStudio.html (actualmente no est disponible)Trasparencia traducida desde A History of Agile Methods presentada por Alan Davis en las JISBD 2003 (Noviembre 2003, El Escorial, Espaa)

    libertario, ria. 1. adj. Que defiende la libertad absoluta y, por lo tanto, la supresin de todo gobierno y de toda ley. V. comunismo ~