SCM ágil – integración continua vs controlada – the raise of DVCS
Integración continua vs controlada

                         pablo santos luaces

                                   @psluaces

                                 @plasticscm
Sobre mi
• Plastic SCM - founder
• Coder
• Blog writer… (a ratos) ;)
                              @psluaces
En el show de hoy…
• La guerra de la
  integración

• Qué método es más «agile»?
Hay una guerra ahí fuera
Y hay que elegir un bando
Una guerra ahí fuera
Una guerra … de bandos… ;)
De opciones
Las opciones son
• Integración continua

• Integración controlada
Las opciones son
• Integración continua   (piedra angular
 de agile)


• Integración controlada
Las opciones son
• Integración continua   != integración
 constante (!)


• Integración controlada
Pero antes un paso atrás…
SCM es importante en «agile»
porque:
• Collective code ownership
• Continuous Integration
• Mapeo entre tareas y código
• Coordinación del equipo
Qué es «mainline» development?
• Trabajar en una única rama…
Qué es «mainline» development?
• Trabajar en una única rama…

• ¿Es bueno?
Qué es «mainline» development?
• Trabajar en una única rama…

• ¿Es bueno?

• Sí, si no hay otra opción … :P
¿Cómo reconocer «mainline»?
• Fácil… sólo hay una rama…

 0
¿Cómo reconocer «mainline»?
• Fácil… sólo hay una rama…
¿Cómo reconocer «mainline»?
• Fácil… sólo hay una rama…
¿Cómo reconocer «mainline»?
• Fácil… sólo hay una rama…
¿Cómo reconocer «mainline»?
• Fácil… sólo hay una rama…
¿Cómo reconocer «mainline»?
• Si tu desarrollo tiene esta pinta… es lineal, mainline,
  no paralelo!
Esto es desarrollo lineal
Y esto es desarrollo paralelo
Si no hay ramas… no es paralelo
Refuerzo positivo…
La batalla entre diferentes visiones
De dónde viene todo esto?
Ventajas del desarrollo paralelo
• Romper la dependencia de tareas
Ventajas del desarrollo paralelo
• Romper la dependencia de tareas
Ventajas del desarrollo paralelo
• Puntos de partida conocidos – do not
  shoot a moving target!!!
Ventajas del desarrollo paralelo
• Puntos de partida conocidos
Ventajas del desarrollo paralelo
• Reforzar la creación de baselines
  estables
Ventajas del desarrollo paralelo
• Código siempre bajo control
SCM ágil – integración continua vs controlada – the raise of DVCS
Ventajas del desarrollo paralelo
• Detener la «bug spreading»
Ventajas del desarrollo paralelo
• Detener la «bug spreading»
Ventajas del desarrollo paralelo
• Trazabilidad mejorada
Ventajas del desarrollo paralelo
• Keep the mainline … pristine
SCM ágil – integración continua vs controlada – the raise of DVCS
Integración continua – mainline
             glorificado
• The «poorman’s approach»
Refuerzo positivo…
Lo opuesto solía ser «big bang»
Lo opuesto solía ser «big bang»
Y para arreglarlo, integración
          frecuente
El futuro de CI
                      • How can builds get
                        faster?
                      • How can broken builds
                        be prevented?


http://codicesoftware.blogspot.com/2008/03/continuous-integration-future.html
El futuro de CI
El futuro de CI
SCM ágil – integración continua vs controlada – the raise of DVCS
SCM ágil – integración continua vs controlada – the raise of DVCS
Feature branches
¿Qué es una tarea?
  • ¿Usáis un issue tracker?
  • Cada entrada en el issue tracker

  Nota: las tareas son cortas…

http://www.plasticscm.com/infocenter/quick-start/intro-task-driven-development.aspx
Integración controlada




http://drdobbs.com/architecture-and-design/205917960
Alternativas de integración

•   El integrador hace merge
•   El integrador ejecuta tests
•   El integrador empaqueta y etiqueta
                                                          Integration Server     For each task
                                                                                 to check whether it is
                                                                                 valid or not



                 baseline   main line                        baseline


                             task 1120



                                              task 1140
                                                                      Release
                                                                      Engineer
                                                                 rebased
                                                                                                          Release
             Developer                                                                                    Engineer



                                  task 1121




                                              task 1129



             Developer
Alternativas
•   Los desarrolladores hacen merge y ejecutan tests
•   El integrador empaqueta y etiqueta…
•   Evita mini-big-bangs
•   Recorta tiempos de compilación

                                                          Integration Server




                baseline   main line                     baseline


                            task 1120


                                                                                 Integration is just
                                             task 1140                           labelling and packing
                                                                      Release    and running specific
                                                                      Engineer   integration tests
                                                            rebased
            Developer




                                 task 1121




                                             task 1129



            Developer
Alternativas de integración
•   Desarrolladores hacen merge y ejecutan tests
•   La línea principal se mantiene limpia


                 baseline   main line                                                        baseline


                             task 1120

                                                                                                                       Integration is just
                                                  task 1140
                                                                                                                       promoting, labelling
                                                                                                                       and packing and
                                                                                                            Release    running specific
                                                                                                            Engineer




                                                                                      line
                                                                                                  rebased              integration tests
             Developer




                                                                                e main
                                                                        te to th
                                                                   Promo
                                  task 1121




                                                       task 1129



             Developer


                               integration line




                                                                    Integration Server
En el mundo distribuido – integration
        manager workflow
                     1. The project maintainer pushes to
                        their public repository.
                     2. A contributor clones that
                        repository and makes changes.
                     3. The contributor pushes to their
                        own public copy.
                     4. The contributor sends the
                        maintainer an e-mail asking them
                        to pull changes.
                     5. The maintainer adds the
                        contributor’s repo as a remote and
                        merges locally.
                     6. The maintainer pushes merged
                        changes to the main repository.
Dictator…
    1. Regular developers work on their topic
       branch and rebase their work on top of
       master. The master branch is that of the
       dictator.
    2. Lieutenants merge the developers’ topic
       branches into their master branch.
    3. The dictator merges the lieutenants’
       master branches into the dictator’s master
       branch.
    4. The dictator pushes their master to the
       reference repository so the other
       developers can rebase on it.
Distributed branch per task
SCM ágil – integración continua vs controlada – the raise of DVCS
Conclusión - Alternativas
Conclusión –
Que no te limite
    tu SCM
pablo santos luaces
          @psluaces
        @plasticscm

Más contenido relacionado

PPT
Scrum ¿Qué es y porqué debería interesarme? - UNMSM
PDF
Porqué Cervantes programaba mejor que tú
ODP
Introducción a la agilidad
PPS
El Proyecto Matriz #62. MICROCHIPS EN HUMANOS. AVANZA EL PROCESO GLOBAL
PPT
Pensamiento agil, un estilo de vida!
PDF
Cas2010 desarrollo-de-aplicaciones-en-la-nube-con-scrum-y-xp
PDF
Visual Scrum – WYSWYG
PPT
Quiero hacer ágil, ¿y ahora qué: Java, Ruby o Scala?
Scrum ¿Qué es y porqué debería interesarme? - UNMSM
Porqué Cervantes programaba mejor que tú
Introducción a la agilidad
El Proyecto Matriz #62. MICROCHIPS EN HUMANOS. AVANZA EL PROCESO GLOBAL
Pensamiento agil, un estilo de vida!
Cas2010 desarrollo-de-aplicaciones-en-la-nube-con-scrum-y-xp
Visual Scrum – WYSWYG
Quiero hacer ágil, ¿y ahora qué: Java, Ruby o Scala?

Similar a SCM ágil – integración continua vs controlada – the raise of DVCS (20)

PPT
Integracion continua
PDF
Ecuador jug 2017 -incrementando la productividad de proyectos java ee con c...
PPTX
Escribiendo Código con Visual Studio Team System
PDF
Conferencia Rails: Integracion Continua Y Rails
PDF
Ecosistemas de Desarrollo Software - Automatización
PPTX
El coste de no usar integración continua
PDF
Integracion Continua
PPTX
Ingeniería del software y metodologías ágiles
PPTX
Un "TFS" para gobernarlos a todos
PPTX
Una introducción a la Integración continua
PPTX
Plan de gestion de configuración de software
PDF
Intro agile
PDF
DSDM Atern en CDL
PDF
Ingenieria del software y metodologias agiles
PDF
Bcn Dev Conference - Mejorando la gestion de los equipos de desarrollo
PPTX
Modern CI_CD for Microservices_software.pptx
PPTX
CASO RED DE EGRESADOS: “Un nuevo desafío”
PDF
Agilizando la gestion de proyectos
PDF
Informatica - Microsoft project 2002
PDF
Presentación atSistemas en AUG Barcelona
Integracion continua
Ecuador jug 2017 -incrementando la productividad de proyectos java ee con c...
Escribiendo Código con Visual Studio Team System
Conferencia Rails: Integracion Continua Y Rails
Ecosistemas de Desarrollo Software - Automatización
El coste de no usar integración continua
Integracion Continua
Ingeniería del software y metodologías ágiles
Un "TFS" para gobernarlos a todos
Una introducción a la Integración continua
Plan de gestion de configuración de software
Intro agile
DSDM Atern en CDL
Ingenieria del software y metodologias agiles
Bcn Dev Conference - Mejorando la gestion de los equipos de desarrollo
Modern CI_CD for Microservices_software.pptx
CASO RED DE EGRESADOS: “Un nuevo desafío”
Agilizando la gestion de proyectos
Informatica - Microsoft project 2002
Presentación atSistemas en AUG Barcelona
Publicidad

Más de Agile Spain (20)

PDF
Lessons learned from contrasting Design Thinking and Agile Project Management...
PDF
Visual Scrum - What you see is What you get
PDF
Un Primer Paso a la Agilidad: Retrospectivas para el Aprendizaje de la Ingeni...
PDF
Análisis de la implementación de prácticas ágiles en Argentina
PDF
Como cocinar tu contrato ágil
PDF
Cas2010 gestion-agil-de-la-configuracion
PDF
Cas2010 itinerario-implementacion-agil
PDF
Cas2010 gestion-agil-de-equipos
PDF
Cas2010 integrando-practicas-agiles-y-de-experiencia-de-usuario
PDF
Cas2010 toolchain-for-agile-teams-traceability-from-product-vision-to-working...
PDF
Cas2010 los-principios-agiles-como-guia-o-por-que-querras-volver-a-modelos-tr...
PDF
Cas2010 to-track-defects-or-not-to-track-defects-that-is-the-question
PDF
Cas2010 is-there-space-for-testers-in-agile-projects
PDF
Cas2010 one-year-of-software-developments-to-win-a-world-racing-championship
PDF
Cas2010 pair-programming-strategies
PDF
Cas2010 behavior-driven-development-aplicado-en-acceptance-test-automation
PDF
Cas2010 herramientas-de-pruebas-unitarias-pex-y-moles
PDF
Ser ágil en España, un caso real con equipos de trabajo en remoto
PDF
Cuore.js: Una historia de amor
PDF
Stop the line & Stop Feature Development practices
Lessons learned from contrasting Design Thinking and Agile Project Management...
Visual Scrum - What you see is What you get
Un Primer Paso a la Agilidad: Retrospectivas para el Aprendizaje de la Ingeni...
Análisis de la implementación de prácticas ágiles en Argentina
Como cocinar tu contrato ágil
Cas2010 gestion-agil-de-la-configuracion
Cas2010 itinerario-implementacion-agil
Cas2010 gestion-agil-de-equipos
Cas2010 integrando-practicas-agiles-y-de-experiencia-de-usuario
Cas2010 toolchain-for-agile-teams-traceability-from-product-vision-to-working...
Cas2010 los-principios-agiles-como-guia-o-por-que-querras-volver-a-modelos-tr...
Cas2010 to-track-defects-or-not-to-track-defects-that-is-the-question
Cas2010 is-there-space-for-testers-in-agile-projects
Cas2010 one-year-of-software-developments-to-win-a-world-racing-championship
Cas2010 pair-programming-strategies
Cas2010 behavior-driven-development-aplicado-en-acceptance-test-automation
Cas2010 herramientas-de-pruebas-unitarias-pex-y-moles
Ser ágil en España, un caso real con equipos de trabajo en remoto
Cuore.js: Una historia de amor
Stop the line & Stop Feature Development practices
Publicidad

SCM ágil – integración continua vs controlada – the raise of DVCS