11. Las opciones son
• Integración continua (piedra angular
de agile)
• Integración controlada
12. Las opciones son
• Integración continua != integración
constante (!)
• Integración controlada
13. 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
46. 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
52. ¿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
54. 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
55. 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
56. 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
57. 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.
58. 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.