SlideShare a Scribd company logo
1 of 63
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
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
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
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
Conclusión - Alternativas
Conclusión –
Que no te limite
    tu SCM
pablo santos luaces
          @psluaces
        @plasticscm

More Related Content

Viewers also liked

Memorias webCast Gestión de Release
Memorias webCast Gestión de ReleaseMemorias webCast Gestión de Release
Memorias webCast Gestión de ReleaseAranda Software
 
Moving beyond the mechanics of Agile processes to supercharge your teams
Moving beyond the mechanics of Agile processes to supercharge your teamsMoving beyond the mechanics of Agile processes to supercharge your teams
Moving beyond the mechanics of Agile processes to supercharge your teamsMMT Digital
 
Connecting in a Globalized World Using Twitter
Connecting in a Globalized World Using TwitterConnecting in a Globalized World Using Twitter
Connecting in a Globalized World Using TwitterShelly Sanchez Terrell
 
نمایش جعبه جستجو در نتایج گوگل
نمایش جعبه جستجو در نتایج گوگلنمایش جعبه جستجو در نتایج گوگل
نمایش جعبه جستجو در نتایج گوگلkasra khoshkhooy
 
Diferencias Entre E
Diferencias Entre EDiferencias Entre E
Diferencias Entre Eguest69cfc4
 
Amc april 2012 jenn lim delivering happiness
Amc april 2012 jenn lim delivering happinessAmc april 2012 jenn lim delivering happiness
Amc april 2012 jenn lim delivering happinessDelivering Happiness
 
mHealth Israel_The Chinese Health Tech Startup and Investment Sector_Presenta...
mHealth Israel_The Chinese Health Tech Startup and Investment Sector_Presenta...mHealth Israel_The Chinese Health Tech Startup and Investment Sector_Presenta...
mHealth Israel_The Chinese Health Tech Startup and Investment Sector_Presenta...Levi Shapiro
 
How Not to Let BD Tank Your Startup
How Not to Let BD Tank Your StartupHow Not to Let BD Tank Your Startup
How Not to Let BD Tank Your StartupCharles Hudson
 
Sb chatterjee share point workspace 2010 in action
Sb chatterjee   share point workspace 2010 in actionSb chatterjee   share point workspace 2010 in action
Sb chatterjee share point workspace 2010 in actionSharePoint Saturday NY
 
Renewable energy and maori vancouver 2014
Renewable energy and maori vancouver 2014Renewable energy and maori vancouver 2014
Renewable energy and maori vancouver 2014Karamea Insley
 
Bossio rcp_unccd_cop12_20_oct_2015(2)
Bossio  rcp_unccd_cop12_20_oct_2015(2)Bossio  rcp_unccd_cop12_20_oct_2015(2)
Bossio rcp_unccd_cop12_20_oct_2015(2)CIAT
 
ビアマジ!21×就活生!21
ビアマジ!21×就活生!21ビアマジ!21×就活生!21
ビアマジ!21×就活生!21stucon
 

Viewers also liked (16)

Gradle como alternativa a maven
Gradle como alternativa a mavenGradle como alternativa a maven
Gradle como alternativa a maven
 
Memorias webCast Gestión de Release
Memorias webCast Gestión de ReleaseMemorias webCast Gestión de Release
Memorias webCast Gestión de Release
 
xn3rq.pdf
xn3rq.pdfxn3rq.pdf
xn3rq.pdf
 
Moving beyond the mechanics of Agile processes to supercharge your teams
Moving beyond the mechanics of Agile processes to supercharge your teamsMoving beyond the mechanics of Agile processes to supercharge your teams
Moving beyond the mechanics of Agile processes to supercharge your teams
 
Connecting in a Globalized World Using Twitter
Connecting in a Globalized World Using TwitterConnecting in a Globalized World Using Twitter
Connecting in a Globalized World Using Twitter
 
نمایش جعبه جستجو در نتایج گوگل
نمایش جعبه جستجو در نتایج گوگلنمایش جعبه جستجو در نتایج گوگل
نمایش جعبه جستجو در نتایج گوگل
 
Diferencias Entre E
Diferencias Entre EDiferencias Entre E
Diferencias Entre E
 
Amc april 2012 jenn lim delivering happiness
Amc april 2012 jenn lim delivering happinessAmc april 2012 jenn lim delivering happiness
Amc april 2012 jenn lim delivering happiness
 
mHealth Israel_The Chinese Health Tech Startup and Investment Sector_Presenta...
mHealth Israel_The Chinese Health Tech Startup and Investment Sector_Presenta...mHealth Israel_The Chinese Health Tech Startup and Investment Sector_Presenta...
mHealth Israel_The Chinese Health Tech Startup and Investment Sector_Presenta...
 
Homeroom 4 values ho
Homeroom 4 values hoHomeroom 4 values ho
Homeroom 4 values ho
 
How Not to Let BD Tank Your Startup
How Not to Let BD Tank Your StartupHow Not to Let BD Tank Your Startup
How Not to Let BD Tank Your Startup
 
Sb chatterjee share point workspace 2010 in action
Sb chatterjee   share point workspace 2010 in actionSb chatterjee   share point workspace 2010 in action
Sb chatterjee share point workspace 2010 in action
 
Renewable energy and maori vancouver 2014
Renewable energy and maori vancouver 2014Renewable energy and maori vancouver 2014
Renewable energy and maori vancouver 2014
 
Bossio rcp_unccd_cop12_20_oct_2015(2)
Bossio  rcp_unccd_cop12_20_oct_2015(2)Bossio  rcp_unccd_cop12_20_oct_2015(2)
Bossio rcp_unccd_cop12_20_oct_2015(2)
 
Zaragoza turismo 181
Zaragoza turismo 181Zaragoza turismo 181
Zaragoza turismo 181
 
ビアマジ!21×就活生!21
ビアマジ!21×就活生!21ビアマジ!21×就活生!21
ビアマジ!21×就活生!21
 

More from psluaces

Reglas de Código Simple
Reglas de Código SimpleReglas de Código Simple
Reglas de Código Simplepsluaces
 
Refactoring merged code - ReSharper meets SemanticMerge
Refactoring merged code - ReSharper meets SemanticMergeRefactoring merged code - ReSharper meets SemanticMerge
Refactoring merged code - ReSharper meets SemanticMergepsluaces
 
Semantic Merge - No fear refactoring
Semantic Merge - No fear refactoringSemantic Merge - No fear refactoring
Semantic Merge - No fear refactoringpsluaces
 
How dvcs can reduce your development costs and enhance productivity final
How dvcs can reduce your development costs and enhance productivity finalHow dvcs can reduce your development costs and enhance productivity final
How dvcs can reduce your development costs and enhance productivity finalpsluaces
 
Merge Recursive Explained
Merge Recursive ExplainedMerge Recursive Explained
Merge Recursive Explainedpsluaces
 
Semanticmerge
SemanticmergeSemanticmerge
Semanticmergepsluaces
 
Creating parallel tests for NUnit with PNUnit - hands on lab
Creating parallel tests for NUnit with PNUnit - hands on labCreating parallel tests for NUnit with PNUnit - hands on lab
Creating parallel tests for NUnit with PNUnit - hands on labpsluaces
 

More from psluaces (7)

Reglas de Código Simple
Reglas de Código SimpleReglas de Código Simple
Reglas de Código Simple
 
Refactoring merged code - ReSharper meets SemanticMerge
Refactoring merged code - ReSharper meets SemanticMergeRefactoring merged code - ReSharper meets SemanticMerge
Refactoring merged code - ReSharper meets SemanticMerge
 
Semantic Merge - No fear refactoring
Semantic Merge - No fear refactoringSemantic Merge - No fear refactoring
Semantic Merge - No fear refactoring
 
How dvcs can reduce your development costs and enhance productivity final
How dvcs can reduce your development costs and enhance productivity finalHow dvcs can reduce your development costs and enhance productivity final
How dvcs can reduce your development costs and enhance productivity final
 
Merge Recursive Explained
Merge Recursive ExplainedMerge Recursive Explained
Merge Recursive Explained
 
Semanticmerge
SemanticmergeSemanticmerge
Semanticmerge
 
Creating parallel tests for NUnit with PNUnit - hands on lab
Creating parallel tests for NUnit with PNUnit - hands on labCreating parallel tests for NUnit with PNUnit - hands on lab
Creating parallel tests for NUnit with PNUnit - hands on lab
 

Recently uploaded

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 

Recently uploaded (10)

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 

Cas 2011 Integración continua vs controlada