SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
Ingeniería del software y
     metodologías ágiles
Rodrigo Corral
rcorral@plainconcepts.com
http://geeks.ms/blogs/rcorral
MVP Team System / CSM / CSP
Plain Concepts
Ingeniería del software

Integración               TDD
         ATDD
  continua
                                Mock
                       Gated
                      Checkins
   SCM                    Documentación
                       Comunicación
                Calidad         Testeo Unitario
   ROI
                Gestión de la
      Construcción
                configuración Gestión del
      automatizada             cambio
SOCORRO                         !
      Pruebas unitarias


 Gestión de la configuración


     Integración continua



Más en próximos capítulos… ;)
¿Qué es la ingeniería del software?
¿Es posible la agilidad sin buenos
fundamentos de ingeniería del software?



              Posible, quizás…



              Probable… ¡NO!
Pruebas unitarias
• La detección más temprana posible
• Demostración de que no hemos roto nada
• Documentación
• Marcador claro de que una tarea está
  completada
• Mejora el diseño
• Verifica la correcta corrección de errores
• El tiempo de depuración se reduce
Pruebas unitarias
• ¿Cómo son las buenas pruebas unitarias?
  – Se ejecuta rápido, se ejecuta rápido, se ejecuta
    rápido
  – Tiene escasas dependencias
  – Su alcance es claro y limitado
  – Se ejecutan y pasan de manera independiente.
  – Revelan claramente su intención
  – Tienen la mayor cobertura posible
  – No alteran el estado del sistema
Gestión de la configuración
• Desarrollo concurrente y en equipo
• ‘Aislar’ el entorno de pruebas
• Lograr incrementos de funcionalidad
  potencialmente entregables
• Habilitar mecanismos ágiles y operativos para
  la corrección de errores
Desarrollo concurrente y en equipo

                                               Estructura de ramas              Estructura de carpetas

                       DEV-401                                                    $   PROJECT

Antes de comenzar                     DEV-402                                         +   DEV
 a trabajar en una
historia de usuario
creamos una rama
                                                                                          -     FEATURES
                                      Branch




                                                      Branch

                                                                                                +



                                                                      RI



                                                                           RI
    sobre la que                                                                                    DEV-401
   realizamos el
     desarrollo

                      DEV
                                                                                                +   DEV-402




                                    Concluido el desarrollo de la
                                 historia de usuario, integramos el
                                   código en la rama principal de
                                             desarrollo
‘Aislar’ el entorno de pruebas
                                    Estructura de ramas                    Estructura de carpetas
        DEV-401
                                                                              $    PROJECT

                DEV-402
                                                                                    +    DEV




                                                          RI
                                                                                          -
                           Branch




                                                                                                FEATURES
                                      Branch




                                               RI                                               +   DEV-401
      DEV

                                                                                                +   DEV-402
                  Branch




                                                    RI


     MAIN
                                                                                    +    MAIN




                                                               Cuando se cumplen las
     Cuando se cumplen las
                                                           condiciones de calidad el código
 condiciones de calidad el código
                                                          en desarrollo se integra en la rama
en desarrollo se integra en la rama
                                                              MAIN para que los testers
    MAIN para que los testers
                                                               comiencen el trabajo de
     comiencen el trabajo de
                                                                    estabilización
          estabilización
Incrementos de funcionalidad
                   potencialmente entregables
                                    Estructura de ramas                           Estructura de carpetas
       DEV-401
                                                                                     $    PROJECT

               DEV-402
                                                                                           +    DEV




                                                                  RI
                                                                                                 -
                           Branch




                                                                                                       FEATURES
                                      Branch




                                               RI                                                       +   DEV-401
     DEV

                                                                                                        +   DEV-402
                  Branch




                                                    RI    Fin de Sprint


   MAIN
                                                                                           +     MAIN




                                                                    Usar ramas de característica
Realizar el desarrollo de nuevas
                                                                  garantiza que a la rama principal,
  funcionalidades sobre ramas
                                                                     sobre la que realizamos la
  dedicadas permite que si una
                                                                   estabilización del software, solo
 funcionalidad no se completa a
                                                                      contendrá características
tiempo para incluirla en el Sprint
                                                                 completas y que han alcanzado un
  Review el resto de la base de
                                                                   mínimo de calidad que permita
   código principal siga siendo
                                                                   que el trabajo de los testers sea
     coherente y no incluya
                                                                              productivo
   características incompletas
Corrección de errores
                                                                                 Los errores que no son
                                                                                   urgentes se corrigen
                                                                                  sobre la línea principal
                                                                                 de desarrollo y se llevan
                                       Estructura de ramas                       a las ramas de release,     Estructura de carpetas
                                                                                     si es necesario,
  DEV-401                                                                          haciendo merge del          $   PROJECT
                                                                                 changeset asociado a la
                                                                                   corrección del error
         DEV-402
                                                                                                                   +   DEV




                                                                       RI
                                                                                                                       -
                     Branch




                                                                                                                             FEATURES
                              Branch




                                            RI



                                                                                                                              +   DEV-401
DEV

                                                                                                                              +   DEV-402
            Branch




                                                                            RI
                                                  RI




                                                                 FI
MAIN                                                                                                               +   MAIN
                                                        Branch

                                                                 RI




                                                                                   V1.0.1
                                                                            FI                                     +   RELEASE
                                        RELEASE 1.0

     Contar con una rama de                            V1.0 (hotfix)                                                   +     RELEASE x.y.z
   RELEASE nos permite liberar
   parches de emergencia, para
  ‘showstopers’, minimizando los
posibles impactos sobre el entorno
 de producción y minimizando las
   necesidades de validación por
        parte de los testers
Construcción automatizada
• Construcción automatizada: patrón ‘one command
  complete build’
• ¿Qué es completo?
   – Define tu nivel de completo para tu ‘build’.
• Automatiza, automatiza, automatiza.
• Se puede compilar un kernel luego se puede compilar
  automáticamente tu proyecto.
• ¡No hay escusas!
• Entorno neutral
   – En mi máquina compila.
   – En mi máquina pasan los test.
   – En mi máquina funciona.
Integración continua
• Precondición: construcción automatizada.
• Detección más temprana posible de:
   – Errores de integración.
   – Regresiones en las pruebas unitarias.
• Evita que la ejecución de los test unitarios se
  supedite a la voluntad del desarrollador.
• Debe proteger todas las ramas donde se integra
  código.
• Ocurre en cada check-in.
• Si se rompe una build la prioridad es corregirla.
Integración continua
                                Source Control
                                    Client                                                    6
                                                                                  Build
                                                                                 Service      Execute Build
                           1
                                       Check In
                                                                                                     Build
                                                                                                                      Build Drop
                                                                                                  Scripts and
                                                                                                                         Site
                                                                                                   Targets
                                                                                                                7
                    2     Store changeset
          Source                                                          Build Server                          Copy Binaries
          Control                             Repository
          Service
                                                               5
                                                               Start Build
                                       Source Control
      3                                                                      8
Poll for changes                                                             Build Finished
              4
             Retrieve latest version




          Continous Integration Service                               Build
                                                                      Store
                                                   9
    Continuous Integration Server                      Store Build Data
Integración contínua
• Ventajas:
  – Los problemas de integración se detectan y
    corrigen continuamente.
  – Alerta temprana de código erroneo/incompatible.
  – Test unitario inmediato de todos los cambios.
  – Disponibilidad total de una build “actual” para una
    demo de pruebas o para ser liberada.
  – El impacto inmediato del check in de código
    erroneo actua como actua como incentivo para no
    meter la pata.
Integración contínua
• Inversiones:
  – Necesita mucho mantenimiento.
  – Necesita servidores de compilación.
  – El impacto de los fallos actua como incentivo
    negativo para hacer check-ins frecuentes (backup
    check-in).
  – El código erroneo solo se detecta una vez
    añadido al repositorio.
Gated check-ins
• Cuando se rompe la build
   – Es tarde el código ya está integrado
• Todo el equipo se ve afectado
• Alternativa: gated check-ins.
¿Preguntas?

Más contenido relacionado

Destacado

Depresión Postparto. Psicologos Renacer
Depresión Postparto. Psicologos RenacerDepresión Postparto. Psicologos Renacer
Depresión Postparto. Psicologos RenacerPsicologos Renacer
 
Como afrontar la gestion de proyectos para la administracion publica
Como afrontar la gestion de proyectos para la administracion publicaComo afrontar la gestion de proyectos para la administracion publica
Como afrontar la gestion de proyectos para la administracion publicaCein
 
Evaluación diagnóstica, 2011
Evaluación diagnóstica, 2011Evaluación diagnóstica, 2011
Evaluación diagnóstica, 2011profetavoatenas
 
Psicomotricidad 3 años
Psicomotricidad 3 añosPsicomotricidad 3 años
Psicomotricidad 3 añoselenatormos
 
Eva Gálvez (FAO). METATENDENCIAS. Agroalimentación y futuro. El escenario int...
Eva Gálvez (FAO). METATENDENCIAS. Agroalimentación y futuro. El escenario int...Eva Gálvez (FAO). METATENDENCIAS. Agroalimentación y futuro. El escenario int...
Eva Gálvez (FAO). METATENDENCIAS. Agroalimentación y futuro. El escenario int...Cein
 
Psicomotricidad 3 años
Psicomotricidad 3 añosPsicomotricidad 3 años
Psicomotricidad 3 añoselenatormos
 
Presentación WakeUpNow Agosto 2014
Presentación WakeUpNow Agosto 2014Presentación WakeUpNow Agosto 2014
Presentación WakeUpNow Agosto 2014Isaias Valladares
 
Francisca y la muerte
Francisca y la muerteFrancisca y la muerte
Francisca y la muerteedilma-garcia
 
OSCAR MEJIA QUINTANA ,ELITES , ETICIDADES Y CONSTITUCION
 OSCAR MEJIA QUINTANA ,ELITES , ETICIDADES Y CONSTITUCION OSCAR MEJIA QUINTANA ,ELITES , ETICIDADES Y CONSTITUCION
OSCAR MEJIA QUINTANA ,ELITES , ETICIDADES Y CONSTITUCIONJennii Torres
 
Cesnavarra 2009-boletín 7
Cesnavarra 2009-boletín 7Cesnavarra 2009-boletín 7
Cesnavarra 2009-boletín 7Cein
 
Tecnologias y vino en navarra resumen
Tecnologias y vino en navarra   resumenTecnologias y vino en navarra   resumen
Tecnologias y vino en navarra resumenCein
 
El cambio climático
El cambio climáticoEl cambio climático
El cambio climáticoagueedaa
 
Presentación1
Presentación1Presentación1
Presentación1xevixe91
 
Congreso amo2012programapreliminar2
Congreso amo2012programapreliminar2Congreso amo2012programapreliminar2
Congreso amo2012programapreliminar2Iara Gjinovich
 
Aprendizaje colaborativo
Aprendizaje colaborativoAprendizaje colaborativo
Aprendizaje colaborativoedsalbez
 
Información sobre colecciones de la Biblioteca EARTH
Información sobre colecciones de la Biblioteca EARTHInformación sobre colecciones de la Biblioteca EARTH
Información sobre colecciones de la Biblioteca EARTHBiblioteca-EARTH
 
Karadima el senor-de-los-infiernos
Karadima el senor-de-los-infiernosKaradima el senor-de-los-infiernos
Karadima el senor-de-los-infiernosAníbal Jimenez
 

Destacado (20)

Depresión Postparto. Psicologos Renacer
Depresión Postparto. Psicologos RenacerDepresión Postparto. Psicologos Renacer
Depresión Postparto. Psicologos Renacer
 
Como afrontar la gestion de proyectos para la administracion publica
Como afrontar la gestion de proyectos para la administracion publicaComo afrontar la gestion de proyectos para la administracion publica
Como afrontar la gestion de proyectos para la administracion publica
 
Evaluación diagnóstica, 2011
Evaluación diagnóstica, 2011Evaluación diagnóstica, 2011
Evaluación diagnóstica, 2011
 
Psicomotricidad 3 años
Psicomotricidad 3 añosPsicomotricidad 3 años
Psicomotricidad 3 años
 
Eva Gálvez (FAO). METATENDENCIAS. Agroalimentación y futuro. El escenario int...
Eva Gálvez (FAO). METATENDENCIAS. Agroalimentación y futuro. El escenario int...Eva Gálvez (FAO). METATENDENCIAS. Agroalimentación y futuro. El escenario int...
Eva Gálvez (FAO). METATENDENCIAS. Agroalimentación y futuro. El escenario int...
 
Psicomotricidad 3 años
Psicomotricidad 3 añosPsicomotricidad 3 años
Psicomotricidad 3 años
 
Presentación WakeUpNow Agosto 2014
Presentación WakeUpNow Agosto 2014Presentación WakeUpNow Agosto 2014
Presentación WakeUpNow Agosto 2014
 
Francisca y la muerte
Francisca y la muerteFrancisca y la muerte
Francisca y la muerte
 
Ped chiapas-2013-2018
Ped chiapas-2013-2018Ped chiapas-2013-2018
Ped chiapas-2013-2018
 
OSCAR MEJIA QUINTANA ,ELITES , ETICIDADES Y CONSTITUCION
 OSCAR MEJIA QUINTANA ,ELITES , ETICIDADES Y CONSTITUCION OSCAR MEJIA QUINTANA ,ELITES , ETICIDADES Y CONSTITUCION
OSCAR MEJIA QUINTANA ,ELITES , ETICIDADES Y CONSTITUCION
 
Cesnavarra 2009-boletín 7
Cesnavarra 2009-boletín 7Cesnavarra 2009-boletín 7
Cesnavarra 2009-boletín 7
 
Wlan
WlanWlan
Wlan
 
Tecnologias y vino en navarra resumen
Tecnologias y vino en navarra   resumenTecnologias y vino en navarra   resumen
Tecnologias y vino en navarra resumen
 
El cambio climático
El cambio climáticoEl cambio climático
El cambio climático
 
Presentación1
Presentación1Presentación1
Presentación1
 
Congreso amo2012programapreliminar2
Congreso amo2012programapreliminar2Congreso amo2012programapreliminar2
Congreso amo2012programapreliminar2
 
Tarea 4
Tarea 4Tarea 4
Tarea 4
 
Aprendizaje colaborativo
Aprendizaje colaborativoAprendizaje colaborativo
Aprendizaje colaborativo
 
Información sobre colecciones de la Biblioteca EARTH
Información sobre colecciones de la Biblioteca EARTHInformación sobre colecciones de la Biblioteca EARTH
Información sobre colecciones de la Biblioteca EARTH
 
Karadima el senor-de-los-infiernos
Karadima el senor-de-los-infiernosKaradima el senor-de-los-infiernos
Karadima el senor-de-los-infiernos
 

Similar a Ingenieria del software y metodologias agiles

Dynamics saturday madrid 2018 otro alm es posible para dynamics 365 - alber...
Dynamics saturday madrid 2018   otro alm es posible para dynamics 365 - alber...Dynamics saturday madrid 2018   otro alm es posible para dynamics 365 - alber...
Dynamics saturday madrid 2018 otro alm es posible para dynamics 365 - alber...Demian Raschkovan
 
Dynamics saturday madrid 2018 - Otro alm es posible para dynamics 365
Dynamics saturday madrid 2018 - Otro alm es posible para dynamics 365Dynamics saturday madrid 2018 - Otro alm es posible para dynamics 365
Dynamics saturday madrid 2018 - Otro alm es posible para dynamics 365Alberto Diaz Martin
 
Dynamics 365 Saturday Madrid 2018 - Otro ALM es posible para Dynamics 365
Dynamics 365 Saturday Madrid 2018 - Otro ALM es posible para Dynamics 365Dynamics 365 Saturday Madrid 2018 - Otro ALM es posible para Dynamics 365
Dynamics 365 Saturday Madrid 2018 - Otro ALM es posible para Dynamics 365Alberto Diaz Martin
 
Invoin presentación general
Invoin presentación generalInvoin presentación general
Invoin presentación generaldavidinvoin
 
Mejoras en el proceso de desarrollo con Team Foundation Server
Mejoras en el proceso de desarrollo con Team Foundation ServerMejoras en el proceso de desarrollo con Team Foundation Server
Mejoras en el proceso de desarrollo con Team Foundation ServerDaniel Laco
 
ExpoCloud2013 - Seguridad y entornos críticos en Cloud
ExpoCloud2013 - Seguridad y entornos críticos en CloudExpoCloud2013 - Seguridad y entornos críticos en Cloud
ExpoCloud2013 - Seguridad y entornos críticos en CloudInside_Marketing
 
Brochure Dba Remoto
Brochure Dba RemotoBrochure Dba Remoto
Brochure Dba Remotodibanez100
 
Actividad producto
Actividad productoActividad producto
Actividad productoLu Martinez
 
Raona Cloud Day 2011 - Overview
Raona Cloud Day 2011 - OverviewRaona Cloud Day 2011 - Overview
Raona Cloud Day 2011 - OverviewRaona
 
08 Cast V Semana CMMI 2009
08 Cast V Semana CMMI 200908 Cast V Semana CMMI 2009
08 Cast V Semana CMMI 2009Pepe
 
¿Cómo aprovechar los $4.3B de Inversión en R&D de Oracle?
¿Cómo aprovechar los $4.3B de Inversión en R&D de Oracle?¿Cómo aprovechar los $4.3B de Inversión en R&D de Oracle?
¿Cómo aprovechar los $4.3B de Inversión en R&D de Oracle?GeneXus
 
Aperio Services
Aperio ServicesAperio Services
Aperio ServicesAperioIT
 
Cas 2011 Integración continua vs controlada
Cas 2011 Integración continua vs controladaCas 2011 Integración continua vs controlada
Cas 2011 Integración continua vs controladapsluaces
 
SCM ágil – integración continua vs controlada – the raise of DVCS
SCM ágil – integración continua vs controlada – the raise of DVCSSCM ágil – integración continua vs controlada – the raise of DVCS
SCM ágil – integración continua vs controlada – the raise of DVCSAgile Spain
 
Plan de gestion de configuración de software
Plan de gestion de configuración de softwarePlan de gestion de configuración de software
Plan de gestion de configuración de softwareilianacon
 
Credenciales Atomo Interactive
Credenciales Atomo InteractiveCredenciales Atomo Interactive
Credenciales Atomo InteractiveRogelio Romero
 

Similar a Ingenieria del software y metodologias agiles (20)

Dynamics saturday madrid 2018 otro alm es posible para dynamics 365 - alber...
Dynamics saturday madrid 2018   otro alm es posible para dynamics 365 - alber...Dynamics saturday madrid 2018   otro alm es posible para dynamics 365 - alber...
Dynamics saturday madrid 2018 otro alm es posible para dynamics 365 - alber...
 
Dynamics saturday madrid 2018 - Otro alm es posible para dynamics 365
Dynamics saturday madrid 2018 - Otro alm es posible para dynamics 365Dynamics saturday madrid 2018 - Otro alm es posible para dynamics 365
Dynamics saturday madrid 2018 - Otro alm es posible para dynamics 365
 
Dynamics 365 Saturday Madrid 2018 - Otro ALM es posible para Dynamics 365
Dynamics 365 Saturday Madrid 2018 - Otro ALM es posible para Dynamics 365Dynamics 365 Saturday Madrid 2018 - Otro ALM es posible para Dynamics 365
Dynamics 365 Saturday Madrid 2018 - Otro ALM es posible para Dynamics 365
 
Invoin presentación general
Invoin presentación generalInvoin presentación general
Invoin presentación general
 
Un "TFS" para gobernarlos a todos
Un "TFS" para gobernarlos a todosUn "TFS" para gobernarlos a todos
Un "TFS" para gobernarlos a todos
 
Mejoras en el proceso de desarrollo con Team Foundation Server
Mejoras en el proceso de desarrollo con Team Foundation ServerMejoras en el proceso de desarrollo con Team Foundation Server
Mejoras en el proceso de desarrollo con Team Foundation Server
 
ExpoCloud2013 - Seguridad y entornos críticos en Cloud
ExpoCloud2013 - Seguridad y entornos críticos en CloudExpoCloud2013 - Seguridad y entornos críticos en Cloud
ExpoCloud2013 - Seguridad y entornos críticos en Cloud
 
Brochure Dba Remoto
Brochure Dba RemotoBrochure Dba Remoto
Brochure Dba Remoto
 
helpPEOPLE itSM resumen de funcionalidades
helpPEOPLE itSM resumen de funcionalidadeshelpPEOPLE itSM resumen de funcionalidades
helpPEOPLE itSM resumen de funcionalidades
 
Actividad producto
Actividad productoActividad producto
Actividad producto
 
Raona Cloud Day 2011 - Overview
Raona Cloud Day 2011 - OverviewRaona Cloud Day 2011 - Overview
Raona Cloud Day 2011 - Overview
 
08 Cast V Semana CMMI 2009
08 Cast V Semana CMMI 200908 Cast V Semana CMMI 2009
08 Cast V Semana CMMI 2009
 
¿Cómo aprovechar los $4.3B de Inversión en R&D de Oracle?
¿Cómo aprovechar los $4.3B de Inversión en R&D de Oracle?¿Cómo aprovechar los $4.3B de Inversión en R&D de Oracle?
¿Cómo aprovechar los $4.3B de Inversión en R&D de Oracle?
 
Aperio Services
Aperio ServicesAperio Services
Aperio Services
 
Trabajo de desarrollo de software I
Trabajo de desarrollo de software ITrabajo de desarrollo de software I
Trabajo de desarrollo de software I
 
Diapositivas java
Diapositivas javaDiapositivas java
Diapositivas java
 
Cas 2011 Integración continua vs controlada
Cas 2011 Integración continua vs controladaCas 2011 Integración continua vs controlada
Cas 2011 Integración continua vs controlada
 
SCM ágil – integración continua vs controlada – the raise of DVCS
SCM ágil – integración continua vs controlada – the raise of DVCSSCM ágil – integración continua vs controlada – the raise of DVCS
SCM ágil – integración continua vs controlada – the raise of DVCS
 
Plan de gestion de configuración de software
Plan de gestion de configuración de softwarePlan de gestion de configuración de software
Plan de gestion de configuración de software
 
Credenciales Atomo Interactive
Credenciales Atomo InteractiveCredenciales Atomo Interactive
Credenciales Atomo Interactive
 

Más de Cein

Directorio Viveros CEIN 2022 Septiembre.pptx
Directorio Viveros CEIN 2022 Septiembre.pptxDirectorio Viveros CEIN 2022 Septiembre.pptx
Directorio Viveros CEIN 2022 Septiembre.pptxCein
 
II Feria del Trabajo Autónomo de Navarra 2019
II Feria del Trabajo Autónomo de Navarra 2019II Feria del Trabajo Autónomo de Navarra 2019
II Feria del Trabajo Autónomo de Navarra 2019Cein
 
Jornada Energy Trends-ciudades inteligentes-Zabala
Jornada Energy Trends-ciudades inteligentes-ZabalaJornada Energy Trends-ciudades inteligentes-Zabala
Jornada Energy Trends-ciudades inteligentes-ZabalaCein
 
Jornada Energy Trends-Retos tecnológicos
Jornada Energy Trends-Retos tecnológicosJornada Energy Trends-Retos tecnológicos
Jornada Energy Trends-Retos tecnológicosCein
 
Showroom energy trends
Showroom energy trends Showroom energy trends
Showroom energy trends Cein
 
Completa showroom new industry
Completa showroom new industryCompleta showroom new industry
Completa showroom new industryCein
 
Tecnalia modelos oppsnegocioeradigitalindustrial_cein_151028
Tecnalia modelos oppsnegocioeradigitalindustrial_cein_151028Tecnalia modelos oppsnegocioeradigitalindustrial_cein_151028
Tecnalia modelos oppsnegocioeradigitalindustrial_cein_151028Cein
 
Workshop completo.Jornada Biomed XXI
Workshop completo.Jornada Biomed XXIWorkshop completo.Jornada Biomed XXI
Workshop completo.Jornada Biomed XXICein
 
Luis gabilondo gobierno de navarra-Jornada Biomed XXI
Luis gabilondo gobierno de navarra-Jornada Biomed XXILuis gabilondo gobierno de navarra-Jornada Biomed XXI
Luis gabilondo gobierno de navarra-Jornada Biomed XXICein
 
Juan ramón de la torre aditech-Jornada Biomed XXI
Juan ramón de la torre aditech-Jornada Biomed XXIJuan ramón de la torre aditech-Jornada Biomed XXI
Juan ramón de la torre aditech-Jornada Biomed XXICein
 
María rosario luquin idisna-Jornada Biomed XXI
María rosario luquin idisna-Jornada Biomed XXIMaría rosario luquin idisna-Jornada Biomed XXI
María rosario luquin idisna-Jornada Biomed XXICein
 
Julio maset cinfa-Jornada Biomed XXI
Julio maset cinfa-Jornada Biomed XXIJulio maset cinfa-Jornada Biomed XXI
Julio maset cinfa-Jornada Biomed XXICein
 
Presentaciones Showroom Jornada "Agrofuture&Ventures"
Presentaciones Showroom Jornada "Agrofuture&Ventures"Presentaciones Showroom Jornada "Agrofuture&Ventures"
Presentaciones Showroom Jornada "Agrofuture&Ventures"Cein
 
Sodena y CEIN. ORIZONT. Construye una propuesta ganadora
Sodena y CEIN. ORIZONT. Construye una propuesta ganadoraSodena y CEIN. ORIZONT. Construye una propuesta ganadora
Sodena y CEIN. ORIZONT. Construye una propuesta ganadoraCein
 
Luis Goñi (Fundación MODERNA). Financiación de la innovación en agroalimentación
Luis Goñi (Fundación MODERNA). Financiación de la innovación en agroalimentaciónLuis Goñi (Fundación MODERNA). Financiación de la innovación en agroalimentación
Luis Goñi (Fundación MODERNA). Financiación de la innovación en agroalimentaciónCein
 
Carlos Franco (CDTI). Financiación de la innovación en agroalimentación
Carlos Franco (CDTI). Financiación de la innovación en agroalimentaciónCarlos Franco (CDTI). Financiación de la innovación en agroalimentación
Carlos Franco (CDTI). Financiación de la innovación en agroalimentaciónCein
 
Alberto Moratial (ENISA). Financiación de la innovación en agroalimentación
Alberto Moratial (ENISA). Financiación de la innovación en agroalimentaciónAlberto Moratial (ENISA). Financiación de la innovación en agroalimentación
Alberto Moratial (ENISA). Financiación de la innovación en agroalimentaciónCein
 
Victoria Iriarte (Sodena). Financiación de la innovación en agroalimentación
Victoria Iriarte (Sodena). Financiación de la innovación en agroalimentaciónVictoria Iriarte (Sodena). Financiación de la innovación en agroalimentación
Victoria Iriarte (Sodena). Financiación de la innovación en agroalimentaciónCein
 
María Arbeloa (Gobierno de Navarra). Financiación de la innovación en agroali...
María Arbeloa (Gobierno de Navarra). Financiación de la innovación en agroali...María Arbeloa (Gobierno de Navarra). Financiación de la innovación en agroali...
María Arbeloa (Gobierno de Navarra). Financiación de la innovación en agroali...Cein
 
Jorge Fernández (Planasa). INSPIRING SESSION. La anticipación y la I+D+i en l...
Jorge Fernández (Planasa). INSPIRING SESSION. La anticipación y la I+D+i en l...Jorge Fernández (Planasa). INSPIRING SESSION. La anticipación y la I+D+i en l...
Jorge Fernández (Planasa). INSPIRING SESSION. La anticipación y la I+D+i en l...Cein
 

Más de Cein (20)

Directorio Viveros CEIN 2022 Septiembre.pptx
Directorio Viveros CEIN 2022 Septiembre.pptxDirectorio Viveros CEIN 2022 Septiembre.pptx
Directorio Viveros CEIN 2022 Septiembre.pptx
 
II Feria del Trabajo Autónomo de Navarra 2019
II Feria del Trabajo Autónomo de Navarra 2019II Feria del Trabajo Autónomo de Navarra 2019
II Feria del Trabajo Autónomo de Navarra 2019
 
Jornada Energy Trends-ciudades inteligentes-Zabala
Jornada Energy Trends-ciudades inteligentes-ZabalaJornada Energy Trends-ciudades inteligentes-Zabala
Jornada Energy Trends-ciudades inteligentes-Zabala
 
Jornada Energy Trends-Retos tecnológicos
Jornada Energy Trends-Retos tecnológicosJornada Energy Trends-Retos tecnológicos
Jornada Energy Trends-Retos tecnológicos
 
Showroom energy trends
Showroom energy trends Showroom energy trends
Showroom energy trends
 
Completa showroom new industry
Completa showroom new industryCompleta showroom new industry
Completa showroom new industry
 
Tecnalia modelos oppsnegocioeradigitalindustrial_cein_151028
Tecnalia modelos oppsnegocioeradigitalindustrial_cein_151028Tecnalia modelos oppsnegocioeradigitalindustrial_cein_151028
Tecnalia modelos oppsnegocioeradigitalindustrial_cein_151028
 
Workshop completo.Jornada Biomed XXI
Workshop completo.Jornada Biomed XXIWorkshop completo.Jornada Biomed XXI
Workshop completo.Jornada Biomed XXI
 
Luis gabilondo gobierno de navarra-Jornada Biomed XXI
Luis gabilondo gobierno de navarra-Jornada Biomed XXILuis gabilondo gobierno de navarra-Jornada Biomed XXI
Luis gabilondo gobierno de navarra-Jornada Biomed XXI
 
Juan ramón de la torre aditech-Jornada Biomed XXI
Juan ramón de la torre aditech-Jornada Biomed XXIJuan ramón de la torre aditech-Jornada Biomed XXI
Juan ramón de la torre aditech-Jornada Biomed XXI
 
María rosario luquin idisna-Jornada Biomed XXI
María rosario luquin idisna-Jornada Biomed XXIMaría rosario luquin idisna-Jornada Biomed XXI
María rosario luquin idisna-Jornada Biomed XXI
 
Julio maset cinfa-Jornada Biomed XXI
Julio maset cinfa-Jornada Biomed XXIJulio maset cinfa-Jornada Biomed XXI
Julio maset cinfa-Jornada Biomed XXI
 
Presentaciones Showroom Jornada "Agrofuture&Ventures"
Presentaciones Showroom Jornada "Agrofuture&Ventures"Presentaciones Showroom Jornada "Agrofuture&Ventures"
Presentaciones Showroom Jornada "Agrofuture&Ventures"
 
Sodena y CEIN. ORIZONT. Construye una propuesta ganadora
Sodena y CEIN. ORIZONT. Construye una propuesta ganadoraSodena y CEIN. ORIZONT. Construye una propuesta ganadora
Sodena y CEIN. ORIZONT. Construye una propuesta ganadora
 
Luis Goñi (Fundación MODERNA). Financiación de la innovación en agroalimentación
Luis Goñi (Fundación MODERNA). Financiación de la innovación en agroalimentaciónLuis Goñi (Fundación MODERNA). Financiación de la innovación en agroalimentación
Luis Goñi (Fundación MODERNA). Financiación de la innovación en agroalimentación
 
Carlos Franco (CDTI). Financiación de la innovación en agroalimentación
Carlos Franco (CDTI). Financiación de la innovación en agroalimentaciónCarlos Franco (CDTI). Financiación de la innovación en agroalimentación
Carlos Franco (CDTI). Financiación de la innovación en agroalimentación
 
Alberto Moratial (ENISA). Financiación de la innovación en agroalimentación
Alberto Moratial (ENISA). Financiación de la innovación en agroalimentaciónAlberto Moratial (ENISA). Financiación de la innovación en agroalimentación
Alberto Moratial (ENISA). Financiación de la innovación en agroalimentación
 
Victoria Iriarte (Sodena). Financiación de la innovación en agroalimentación
Victoria Iriarte (Sodena). Financiación de la innovación en agroalimentaciónVictoria Iriarte (Sodena). Financiación de la innovación en agroalimentación
Victoria Iriarte (Sodena). Financiación de la innovación en agroalimentación
 
María Arbeloa (Gobierno de Navarra). Financiación de la innovación en agroali...
María Arbeloa (Gobierno de Navarra). Financiación de la innovación en agroali...María Arbeloa (Gobierno de Navarra). Financiación de la innovación en agroali...
María Arbeloa (Gobierno de Navarra). Financiación de la innovación en agroali...
 
Jorge Fernández (Planasa). INSPIRING SESSION. La anticipación y la I+D+i en l...
Jorge Fernández (Planasa). INSPIRING SESSION. La anticipación y la I+D+i en l...Jorge Fernández (Planasa). INSPIRING SESSION. La anticipación y la I+D+i en l...
Jorge Fernández (Planasa). INSPIRING SESSION. La anticipación y la I+D+i en l...
 

Ingenieria del software y metodologias agiles

  • 1. Ingeniería del software y metodologías ágiles Rodrigo Corral rcorral@plainconcepts.com http://geeks.ms/blogs/rcorral MVP Team System / CSM / CSP Plain Concepts
  • 2. Ingeniería del software Integración TDD ATDD continua Mock Gated Checkins SCM Documentación Comunicación Calidad Testeo Unitario ROI Gestión de la Construcción configuración Gestión del automatizada cambio
  • 3. SOCORRO ! Pruebas unitarias Gestión de la configuración Integración continua Más en próximos capítulos… ;)
  • 4. ¿Qué es la ingeniería del software?
  • 5. ¿Es posible la agilidad sin buenos fundamentos de ingeniería del software? Posible, quizás… Probable… ¡NO!
  • 6. Pruebas unitarias • La detección más temprana posible • Demostración de que no hemos roto nada • Documentación • Marcador claro de que una tarea está completada • Mejora el diseño • Verifica la correcta corrección de errores • El tiempo de depuración se reduce
  • 7. Pruebas unitarias • ¿Cómo son las buenas pruebas unitarias? – Se ejecuta rápido, se ejecuta rápido, se ejecuta rápido – Tiene escasas dependencias – Su alcance es claro y limitado – Se ejecutan y pasan de manera independiente. – Revelan claramente su intención – Tienen la mayor cobertura posible – No alteran el estado del sistema
  • 8. Gestión de la configuración • Desarrollo concurrente y en equipo • ‘Aislar’ el entorno de pruebas • Lograr incrementos de funcionalidad potencialmente entregables • Habilitar mecanismos ágiles y operativos para la corrección de errores
  • 9. Desarrollo concurrente y en equipo Estructura de ramas Estructura de carpetas DEV-401 $ PROJECT Antes de comenzar DEV-402 + DEV a trabajar en una historia de usuario creamos una rama - FEATURES Branch Branch + RI RI sobre la que DEV-401 realizamos el desarrollo DEV + DEV-402 Concluido el desarrollo de la historia de usuario, integramos el código en la rama principal de desarrollo
  • 10. ‘Aislar’ el entorno de pruebas Estructura de ramas Estructura de carpetas DEV-401 $ PROJECT DEV-402 + DEV RI - Branch FEATURES Branch RI + DEV-401 DEV + DEV-402 Branch RI MAIN + MAIN Cuando se cumplen las Cuando se cumplen las condiciones de calidad el código condiciones de calidad el código en desarrollo se integra en la rama en desarrollo se integra en la rama MAIN para que los testers MAIN para que los testers comiencen el trabajo de comiencen el trabajo de estabilización estabilización
  • 11. Incrementos de funcionalidad potencialmente entregables Estructura de ramas Estructura de carpetas DEV-401 $ PROJECT DEV-402 + DEV RI - Branch FEATURES Branch RI + DEV-401 DEV + DEV-402 Branch RI Fin de Sprint MAIN + MAIN Usar ramas de característica Realizar el desarrollo de nuevas garantiza que a la rama principal, funcionalidades sobre ramas sobre la que realizamos la dedicadas permite que si una estabilización del software, solo funcionalidad no se completa a contendrá características tiempo para incluirla en el Sprint completas y que han alcanzado un Review el resto de la base de mínimo de calidad que permita código principal siga siendo que el trabajo de los testers sea coherente y no incluya productivo características incompletas
  • 12. Corrección de errores Los errores que no son urgentes se corrigen sobre la línea principal de desarrollo y se llevan Estructura de ramas a las ramas de release, Estructura de carpetas si es necesario, DEV-401 haciendo merge del $ PROJECT changeset asociado a la corrección del error DEV-402 + DEV RI - Branch FEATURES Branch RI + DEV-401 DEV + DEV-402 Branch RI RI FI MAIN + MAIN Branch RI V1.0.1 FI + RELEASE RELEASE 1.0 Contar con una rama de V1.0 (hotfix) + RELEASE x.y.z RELEASE nos permite liberar parches de emergencia, para ‘showstopers’, minimizando los posibles impactos sobre el entorno de producción y minimizando las necesidades de validación por parte de los testers
  • 13. Construcción automatizada • Construcción automatizada: patrón ‘one command complete build’ • ¿Qué es completo? – Define tu nivel de completo para tu ‘build’. • Automatiza, automatiza, automatiza. • Se puede compilar un kernel luego se puede compilar automáticamente tu proyecto. • ¡No hay escusas! • Entorno neutral – En mi máquina compila. – En mi máquina pasan los test. – En mi máquina funciona.
  • 14. Integración continua • Precondición: construcción automatizada. • Detección más temprana posible de: – Errores de integración. – Regresiones en las pruebas unitarias. • Evita que la ejecución de los test unitarios se supedite a la voluntad del desarrollador. • Debe proteger todas las ramas donde se integra código. • Ocurre en cada check-in. • Si se rompe una build la prioridad es corregirla.
  • 15. Integración continua Source Control Client 6 Build Service Execute Build 1 Check In Build Build Drop Scripts and Site Targets 7 2 Store changeset Source Build Server Copy Binaries Control Repository Service 5 Start Build Source Control 3 8 Poll for changes Build Finished 4 Retrieve latest version Continous Integration Service Build Store 9 Continuous Integration Server Store Build Data
  • 16. Integración contínua • Ventajas: – Los problemas de integración se detectan y corrigen continuamente. – Alerta temprana de código erroneo/incompatible. – Test unitario inmediato de todos los cambios. – Disponibilidad total de una build “actual” para una demo de pruebas o para ser liberada. – El impacto inmediato del check in de código erroneo actua como actua como incentivo para no meter la pata.
  • 17. Integración contínua • Inversiones: – Necesita mucho mantenimiento. – Necesita servidores de compilación. – El impacto de los fallos actua como incentivo negativo para hacer check-ins frecuentes (backup check-in). – El código erroneo solo se detecta una vez añadido al repositorio.
  • 18. Gated check-ins • Cuando se rompe la build – Es tarde el código ya está integrado • Todo el equipo se ve afectado • Alternativa: gated check-ins.