metodologias de desarrollo de softwares

Upload: jorge-luis-huayta

Post on 14-Apr-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    1/50

    METODOLOGAS GILES

    Y XPPatricio [email protected]

    Departamento de Sistemas Informticos y ComputacinUniversidad Politcnica de Valencia

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    2/50

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

    CONTENIDOS

    Introduccin a Metodologas gilesExtreme Programming (XP)

    IntroduccinPrcticas de XP

    Conclusiones

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    3/50

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

    QU ES UNA METODOLOGA GIL?WWW.AGILEALLIANCE.COM

    Las 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 unabuena documentacin Minimalismo respecto del modelado yla documentacin del sistema

    La colaboracin con el cliente ms que la negociacin de un

    contrato

    Responder a los cambios ms que seguir estrictamente unaplanificacin

    http://www.agilealliance.com/http://www.agilealliance.com/
  • 7/30/2019 Metodologias de Desarrollo de Softwares

    4/50

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

    POR QU SURGEN LAS METODOLOGASGILES (AMS)?

    Dificultad para implantar metodologas tradicionales.Sofisticadas herramientas CASE y notaciones (UML)

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

    Pugna entre comunidades/gurs

    Aceptarel cambio ...

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    5/50

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

    COSTO DE LOS CAMBIOS EN SW

    Costodel

    cambio

    tiempo

    Tradicional

    Suposicin AMs

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    6/50

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

    MANIFIESTO DE LAS AMSAGILEMANIFESTO.ORG

    Principios:1. La prioridad principal es satisfacer al cliente mediante

    tempranas y continuas entregas de software que lereporte un valor

    2. Dar la bienvenida a los cambios. Los AMs capturan loscambios para que el cliente tenga una ventajacompetitiva

    3. Entregar frecuentemente software que funcione, desdeun par de semanas a un par de meses, con el menorintervalo de tiempo posible entre una entrega y lasiguiente

    http://agilemanifesto.org/http://agilemanifesto.org/
  • 7/30/2019 Metodologias de Desarrollo de Softwares

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

    MANIFIESTO DE LAS AMS

    4. La gente del negocio y los desarrolladores debentrabajar juntos a lo largo del proyecto

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

    6. El dilogo cara a cara es el mtodo ms eficiente y

    efectivo para comunicar informacin dentro de unequipo de desarrollo

    7. El software que funciona es la medida principal deprogreso

  • 7/30/2019 Metodologias de Desarrollo de Softwares

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

    MANIFIESTO DE LAS AMS

    8. Los procesos giles promueven un desarrollosostenible. Los promotores, desarrolladores yusuarios deberan ser capaces de mantener una pazconstante

    9. La atencin continua a la calidad tcnica y al buendiseo mejora la agilidad

    10. La simplicidad es esencial

    11. Las mejores arquitecturas, requisitos y diseos

    surgen de los equipos organizados por s mismos12. En intervalos regulares, el equipo reflexiona respecto

    de cmo llegar a ser ms efectivo, y segn esto ajustasu comportamiento

  • 7/30/2019 Metodologias de Desarrollo de Softwares

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

    COMPARACIN GIL - GIL

    Metodologa gil Metodologa No gilPocos Artefactos Ms Artefactos

    Pocos Roles Ms Roles

    No existe un contrato tradicional o almenos es bastante flexible Existe un contrato prefijado

    Cliente es parte del equipo dedesarrollo (adems in-situ)

    El cliente interacta con el equipode desarrollo mediante reuniones

    Grupos pequeos (< 10 integrantes)y trabajando en el mismo sitio Grupos grandes

    Menos nfasis en la arquitectura La arquitectura es esencial

  • 7/30/2019 Metodologias de Desarrollo de Softwares

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

    PRINCIPALES AMS

    Crystal 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 Highsmithwww.adaptivesd.com

    http://www.crystalmethodologies.org/http://www.controlchaos.com/http://www.dsdm.org/http://www.poppendieck.com/http://www.nebulon.com/fddhttp://www.coad.com/peter/http://www.extremeprogramming.org/http://www.xprogramming.com/http://www.adaptivesd.com/http://www.adaptivesd.com/http://www.xprogramming.com/http://www.extremeprogramming.org/http://www.coad.com/peter/http://www.nebulon.com/fddhttp://www.poppendieck.com/http://www.dsdm.org/http://www.controlchaos.com/http://www.crystalmethodologies.org/
  • 7/30/2019 Metodologias de Desarrollo de Softwares

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

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    12/50

    12

  • 7/30/2019 Metodologias de Desarrollo de Softwares

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

    QU ES XP?

    Es una metodologa gil Diseada para entornos dinmicos

    Pensada para equipos pequeos (hasta 10 programadores)

    Orientada fuertemente hacia la codificacin

    nfasis en la comunicacin informal, verbal

  • 7/30/2019 Metodologias de Desarrollo de Softwares

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

    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 metodologa: eXtreme Programming (XP)

    C3 concluy exitosamente en 1997

  • 7/30/2019 Metodologias de Desarrollo de Softwares

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

    VALORES QUE FOMENTA XPComunicacin

    Simplicidad

    Retroalimentacin

    Coraje

  • 7/30/2019 Metodologias de Desarrollo de Softwares

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

    Programador (Programmer) Responsable de decisiones tcnicas Responsable de construir el sistema Sin distincin entre analistas,

    diseadores o codificadores En XP, los programadores disean,

    programan y realizan las pruebas

    Jefe de Proyecto(Manager)

    Organiza y gua las reunionesAsegura condiciones

    adecuadas para el proyecto

    Cliente(Customer) Es parte del equipo Determina qu construir y

    cundo Establece las pruebas

    funcionales

    ROLES XPC2.COM/CGI/WIKI?EXTREMEROLES

    http://c2.com/cgi/wiki?ExtremeRoleshttp://c2.com/cgi/wiki?ExtremeRoleshttp://c2.com/cgi/wiki?ExtremeRoles
  • 7/30/2019 Metodologias de Desarrollo de Softwares

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

    Entrenador(Coach) Responsable del proceso Tiende a estar en un segundo

    plano a medida que el equipomadura

    Encargado dePruebas(Tester)Ayuda al cliente con las

    pruebas funcionales

    Se asegura de que laspruebas funcionales sesuperan

    Rastreador (Tracker)Metric ManObserva sin molestar Conserva datos histricos

    ... ROLES XP

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    18/50

  • 7/30/2019 Metodologias de Desarrollo de Softwares

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

    CAPTURA DE REQUISITOS EN XPUNA FICHA DE USER-STORY

  • 7/30/2019 Metodologias de Desarrollo de Softwares

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

    PLANIFICACIN EN XP

    Planificacin por entregas (releases)Se priorizan aquellas user-stories que el cliente

    selecciona porque son ms importantes parael negocio

    Entregas: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

  • 7/30/2019 Metodologias de Desarrollo de Softwares

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

    PROGRAMACIN EN XP

    La programacin de tareas se realiza porparejas

    La pareja disea, prueba, implementa eintegra el cdigo de la tarea

    Cdigo dirigido por las pruebas

    Cdigo modular, intentando refactorizarsiempre que se pueda

  • 7/30/2019 Metodologias de Desarrollo de Softwares

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

    PROGRAMACIN EN XP

    UNA FICHA DE TAREA

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    23/50

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

    MODELO DE UN PROYECTO XP

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    24/50

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

    ESPACIO DE TRABAJO XP

    Espacio abiertoMesas centrales

    Cubculos en el espacio exterior

    Espacio de trabajo

    del proyecto C3 de

    DaimlerChrysler

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    25/50

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

    RCTICAS XP

    El juego de laplanificacin

    Entregas pequeas Metfora

    Diseo simple

    Pruebas Refactoring

    Programacin enparejas

    Propiedad colectiva Integracin contnua

    Semana de 40 horas

    Cliente in situ Estndares de

    programacin

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    26/50

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

    RCTICAS XP

    L JUEGO DE LA PLANIFICACIN

    Decisiones 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 softwarefuncionando causara una gran diferencia

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    27/50

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

    PRCTICAS XP

    ... EL JUEGO DE LA PLANIFICACIN

    Decisiones 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 lossegmentos de desarrollo ms arriesgados al principio,intentando respetar las prioridades del negocio

    P ti XP

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    28/50

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

    Reunin diaria Stand-up MeetingTodo el equipo

    ProblemasSolutiones

    De pie en un crculoEvitar discusiones largas

    Sin conversaciones separadas

    Prcticas XP... El Juego de la planificacin

    Reunin diaria XP

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    29/50

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

    PRCTICAS XP

    ENTREGAS PEQUEASCada entrega es lo ms corta posible:Contenga requisitos ms valiosos del sistema

    (bsicos)Reducen el riesgo mayor retroalimentacin desde

    el cliente, y ms frecuente

    Minimizar el n de user-stories quecomponen una entrega No realizaruser-stories a medias

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    30/50

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

    PRCTICAS XP

    METFORA

    Cada proyecto XP es guiado por unametfora global

    Da un contexto al equipo para entender loselementos bsicos y sus relaciones

    Proporciona integridad conceptual

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    31/50

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

    PRCTICAS XP

    DISEO SIMPLE

    Se disea la cosa ms simple que pueda

    funcionar

    Uso 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

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    32/50

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

    PRCTICAS XP

    PRUEBASLas pruebas unitarias se escriben ANTESque el cdigo

    Pruebas automatizadasPermiten el desarrollo de proyectos de

    forma rpida y seguraPruebas unitarias programadoresPruebas funcionales clienteResultado Un programa cada vez ms

    seguro

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    33/50

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

    PRCTICAS XP

    REFACTORINGWWW.REFACTORING.COM

    Refactorizacin = Mejora del cdigo

    Intentar eliminar complejidad

    Cdigo duplicado Refactorizacin

    Se plantea su aplicacin despus deimplementar cada user-story

    http://www.refactoring.com/http://www.refactoring.com/
  • 7/30/2019 Metodologias de Desarrollo de Softwares

    34/50

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

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    35/50

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

    PRCTICAS XP

    PROGRAMACIN EN PAREJASWWW.PAIRPROGRAMMING.COM

    Toda 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)

    http://www.pairprogramming.com/http://www.pairprogramming.com/
  • 7/30/2019 Metodologias de Desarrollo de Softwares

    36/50

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

    PRCTICAS XP

    PROPIEDAD COLECTIVA

    Cualquiera puede modificar el cdigo encualquier momento Se evitan cuellos de

    botella en la codificacin

    Todos asume las responsabilidades sobre elconjunto del sistema

    Todos conocen algo sobre todas las partes yconocen muy bien aqullas en las quetrabajan

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    37/50

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

    PRCTICAS XP

    INTEGRACIN CONTNUA

    El cdigo se integra y se prueba despus depocas horas

    Existe una ordenador dedicado para laintegracin

    Cada pareja integra su cdigo en dichoordenador

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    38/50

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

    PRCTICAS XP

    SEMANA DE 40 HORAS

    Filosofa: Los programadores que descansan

    son ms productivos

    El exceso de trabajo es un serio problema enun proyecto

    La gente est ms fresca y tiene mejores ideas

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    39/50

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

    PRCTICAS XP

    CLIENTE IN SITUCliente real = Aquel que usar el sistemacuando est en produccin

    El cliente real debe estar con el equipo detrabajo:

    Responder preguntasResolver disputasEstablecer prioridadesDiscutir mejoras

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    40/50

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

    PRCTICAS XP

    ESTNDARES DE PROGRAMACIN

    Son fundamentales cuando losprogramadores cambian de pareja o hacen

    refactoringdel cdigo de otros

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

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    41/50

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

    INTERACCIN ENTREPRCTICAS

    XP: Kent Beck

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    42/50

    42

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    43/50

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

    UN DA DE TRABAJO EN XP

    NO TODAS LAS

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    44/50

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

    StoriesPair Programming

    Frequent ReleasesDaily Stand-up MeetingsCreate Great Architectures

    Working SW >>Documentation

    Collective 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

    MalaPrecaucinBuena

    Nightly Builds Refactoring Cliente in situ Integracin contnua No crear cosas que se desecharn

    Historias de usuarioProgramacin en parejas

    Releases frecuentesReunin Stand-up cada daCrear buenas arquitecturas

    SW funcionando >>Documentation

    Propiedad colectiva Mejora de la calidad

    iterativamente Colaboracin >> Contrato

    NO TODAS LASIDEAS/PRCTICAS GILES

    SON BUENAS

    Diapositiva obtenida de la presentacin A History of Agile Methods presentada por Alan Davis en JISBD 2002

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    45/50

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

    ENFOQUE PARA ELDESARROLLO DE SOFTWARE

    Grado deCeremonia/control

    en el proceso

    Tiempo

    1950s 1960s 1970s 1980s 1990s 2000s 2010s

    Diapositiva obtenida de la presentacin A History of Agile Methods presentada por Alan Davis en JISBD 2002

    QU RESULTADO PROVEEN

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    46/50

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

    QU RESULTADO PROVEENLAS METODOLOGAS GILES?

    Hay pocos datos concretos del ndice de xito deproyectos

    Est teniendo un gran augeAumento en el nmero de proyectosPor qu? Tiene el apoyo de muchos gurs en ingeniera de sw Es un proceso para gente que odia los procesos Tiene sentido Poltica? ... Pugna entre comunidades

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    47/50

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

    CUNDO UTILIZAR UNAMETODOLOGA GIL?Existe ya un proceso? SiReacciona bien a los cambios? SiEst el equipo contento con l? Si

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

    conveniente

    http://name.case.unibz.it/http://name.case.unibz.it/
  • 7/30/2019 Metodologias de Desarrollo de Softwares

    48/50

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

    ... CUNDO UTILIZAR UNAMETODOLOGA 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 unabuenaforma de empezar

    Fcil de financiarA los programadores les gustaA los clientes les gusta el control aadido

  • 7/30/2019 Metodologias de Desarrollo de Softwares

    49/50

    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

    http://www.xp2003.org/http://www.agileuniverse.com/http://www.agileuniverse.com/http://www.xp2003.org/
  • 7/30/2019 Metodologias de Desarrollo de Softwares

    50/50

    METODOLOGAS GILES

    Y XP

    Departamento de Sistemas Informticos y ComputacinUniversidad Politcnica de Valencia

    Fin de la Presentacin

    Patricio [email protected]