Upgrade to Pro — share decks privately, control downloads, hide ads and more …

A [git] workflow

45742831d67c80d12cd7b24907b8d760?s=47 Sergio Gil
September 30, 2011

A [git] workflow

Slides from my talk at Madrid Ruby users group about how to make git support your kanban development workflow.

45742831d67c80d12cd7b24907b8d760?s=128

Sergio Gil

September 30, 2011
Tweet

Transcript

  1. Continuous Delivery that doesn't hurt madrid-rb @madridrb Sergio Gil @porras

    A [git] workflow
  2. DISCLAIMER I Esto va más de workflow que de git.

    Aceptamos mercurial como animal de compañía
  3. DISCLAIMER II + RETO Intentar no citar explicitamente un comando

    de git en toda la charla
  4. None
  5. http://gitimmersion.com/

  6. yo / nosotros

  7. None
  8. Hacemos productos

  9. Hacemos productos y los productos duran para siempre

  10. Nuestros productos son complejos

  11. Nuestros productos son complejos Nos encanta el TDD

  12. Nuestros productos son complejos Nos encanta el TDD Nos encanta

    el feedback temprano
  13. Nuestros productos son complejos Nos encanta el TDD Nos encanta

    el feedback temprano Siempre probamos en un entorno de staging
  14. “Máquina de convertir café en código”

  15. “Máquina de convertir café en código” hamburguesas

  16. “Máquina de convertir café en código” features hamburguesas

  17. “Máquina de convertir café en código” features útiles hamburguesas

  18. “Máquina de convertir café en código” features útiles en producción

    hamburguesas
  19. “Máquina de convertir café en código” features útiles en producción

    hamburguesas idea implícita: tiempo
  20. T U Feature A en una semana Feature A en

    un mes
  21. Feature A hoy Feature A en 1 m es

  22. Feature A hoy

  23. Feature A hoy Feature A + B en un mes

  24. Feature A hoy Feature A + B en un mes

    Feature A hoy + Feature B en un mes
  25. KAN BAN

  26. None
  27. WIP (≤ X)

  28. master

  29. Feature A Task 1/3 master

  30. Feature A Task 1/3 Feature B Task 1/2 master

  31. Feature A Task 1/3 Feature B Task 1/2 Feature A

    Task 2/3 master
  32. Feature A Task 1/3 Feature B Task 1/2 Feature A

    Task 2/3 Feature B Task 2/2 master
  33. Feature A Task 1/3 Feature B Task 1/2 Feature A

    Task 2/3 Feature B Task 2/2 B ya está, ¡a desplegar! master
  34. Feature A Task 1/3 Feature B Task 1/2 Feature A

    Task 2/3 Feature B Task 2/2 B ya está, ¡a desplegar! ¡NEGATIVO, Señor! A no está lista master
  35. Problema del despliegue retrasado que retrasa el despliegue

  36. Problema del despliegue retrasado que retrasa el despliegue o

  37. Problema del despliegue retrasado que retrasa el despliegue o Espiral

    de mierda
  38. Si mientras esperamos que A esté lista empezamos C, ¡el

    problema puede durar para siempre! Problema del despliegue retrasado que retrasa el despliegue o Espiral de mierda
  39. ¡OK, usemos ramas!

  40. master

  41. master feat_a

  42. master feat_a feat_b

  43. master feat_a feat_b

  44. master feat_a feat_b

  45. master feat_a feat_b ➜ staging

  46. master feat_a feat_b ➜ staging OK

  47. master feat_a feat_b ➜ staging OK ➜ producción

  48. master feat_a feat_b ➜ staging OK ➜ producción

  49. master feat_a feat_b ➜ staging OK ➜ producción

  50. master feat_a feat_b ➜ staging OK ➜ staging ➜ producción

  51. master feat_a feat_b ➜ staging OK ➜ staging OK ➜

    producción
  52. master feat_a feat_b ➜ staging OK ➜ staging OK ➜

    producción ➜ producción
  53. master

  54. master feat_a

  55. master feat_a feat_b

  56. master feat_a feat_b

  57. master feat_a feat_b

  58. master feat_a feat_b ➜ staging

  59. master feat_a feat_b ➜ staging FAIL

  60. master feat_a feat_b ➜ staging FAIL

  61. master feat_a feat_b ➜ staging FAIL

  62. master feat_a feat_b ➜ staging FAIL

  63. master feat_a feat_b ➜ staging FAIL ➜ staging

  64. master feat_a feat_b ➜ staging FAIL ➜ staging OK

  65. master feat_a feat_b ➜ staging FAIL ➜ staging OK ➜

    producción
  66. master feat_a feat_b ➜ staging FAIL ➜ staging OK ➜

    producción ¡NO!
  67. master feat_a feat_b ➜ staging FAIL ➜ staging OK ➜

    producción ¡NO! la feature A está rota
  68. stable master

  69. stable feat_a master

  70. stable feat_a feat_b master

  71. stable feat_a feat_b master

  72. stable feat_a feat_b master

  73. stable feat_a feat_b ➜ staging master

  74. stable feat_a feat_b ➜ staging master FAIL

  75. stable feat_a feat_b ➜ staging master FAIL

  76. stable feat_a feat_b ➜ staging master FAIL

  77. stable feat_a feat_b ➜ staging ➜ staging master FAIL

  78. stable feat_a feat_b ➜ staging ➜ staging OK master FAIL

  79. stable feat_a feat_b ➜ staging ➜ staging OK master FAIL

  80. stable feat_a feat_b ➜ staging ➜ staging OK ➜ producción

    master FAIL
  81. stable feat_a feat_b ➜ staging ➜ staging OK ➜ producción

    master FAIL feat_c
  82. stable feat_a feat_b ➜ staging ➜ staging OK ➜ producción

    master FAIL feat_c
  83. stable feat_a feat_b ➜ staging ➜ staging OK ➜ producción

    master FAIL feat_c
  84. stable feat_a feat_b ➜ staging ➜ staging OK ➜ producción

    master FAIL ➜ staging feat_c
  85. stable feat_a feat_b ➜ staging ➜ staging OK ➜ producción

    master FAIL ➜ staging OK feat_c
  86. stable feat_a feat_b ➜ staging ➜ staging OK ➜ producción

    master FAIL ➜ staging OK feat_c
  87. stable feat_a feat_b ➜ staging ➜ staging OK ➜ producción

    ➜ producción master FAIL ➜ staging OK feat_c
  88. None
  89. None
  90. BONUS POINTS & PRO TIPS

  91. BONUS POINTS & PRO TIPS recuerda publicar topic branches

  92. BONUS POINTS & PRO TIPS recuerda publicar topic branches taguea

    tus releases
  93. BONUS POINTS & PRO TIPS recuerda publicar topic branches taguea

    tus releases rebasa tus ramas privadas sobre stable
  94. BONUS POINTS & PRO TIPS recuerda publicar topic branches taguea

    tus releases rebasa tus ramas privadas sobre stable nunca rebases o enmiendes commits publicados
  95. BONUS POINTS & PRO TIPS recuerda publicar topic branches taguea

    tus releases rebasa tus ramas privadas sobre stable nunca rebases o enmiendes commits publicados --no-ff para una historia detallada
  96. BONUS POINTS & PRO TIPS recuerda publicar topic branches taguea

    tus releases rebasa tus ramas privadas sobre stable nunca rebases o enmiendes commits publicados --no-ff para una historia detallada reset: corte por donde tenga que cortar
  97. PROBLEMAS

  98. PROBLEMAS A veces la integración da trabajo

  99. PROBLEMAS Escala mal tanto en horizontal como en vertical A

    veces la integración da trabajo
  100. PROBLEMAS Escala mal tanto en horizontal como en vertical A

    veces la integración da trabajo WIN
  101. gracias madrid-rb @madridrb Sergio Gil @porras