me to do log i as a giles
DESCRIPTION
la metodologia agiles, trata sobre la extrema programacion especialmente para desarrolladores de softwareTRANSCRIPT
-
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 ~