Trunk Based Development: lo que tu equipo necesita y quizá no sabías

Kristian Muñoz, Adrián Muñoz, ambos senior craftsperson, y María Jesús Puertas, senior QA, exponen, en esta primera entrega, cuales son las ventajas y desventajas de trabajar con trunk based development. 

Múltiples ramas, feature branches, ramas de release, clásico pull request, ... cuando ya llevas unos cuantos años desarrollando y has transitado esos caminos te acabas preguntado; ¿hay algo más allá de todo esto? y en ese momento es cuando aparece trunk based development (TBD para abreviar). 

A menudo pensamos que pull request es garantía de calidad del código, porque otra persona va a mirar tu código, lo va a analizar y va a comprobar si tiene la calidad que debe tener, y entonces, y solo entonces, tu código verá la luz. Sin embargo cuando te inicias en el trunk base development esa manera de pensar cambia.

¿Son los  pull request absolutamente necesarios o se trata de una forma poco eficaz de proceder que nos está ralentizando el proceso? Nosotros hemos pensado y debatido sobre ello, y hemos llegado a algunas conclusiones analizando qué inconvenientes detectamos en trabajar con pull request y en ramas independientes versus las ventajas de aplicar TDB. En este proceso de análisis también hemos valorado la solvencia en cuanto a determinados skills que necesita tener un equipo para trabajar con TBD, y sí, no vamos a engañarte, necesitas ciertos skills como pair, mob programming o automatización para asegurar la calidad del código trabajando de este modo. 

Uso de ramas y long lived branches no es integración continua

Hay varios puntos débiles que vemos en esta forma de trabajar. El más doloroso para nosotros es que la integración continua no está siendo real. Trabajando con ramas tenemos un pipeline y quizá algunos procesos automatizados que ejecutan determinadas fases de nuestro proyecto, pero realmente, no estamos trabajando con integración continua. No conseguimos que el código que estamos desarrollando esté siempre integrado, puesto que con esta forma de trabajar hay ramas que permanecen vivas semanas, incluso meses en muchos casos, lo que implica que el código no esté completamente integrado. 

Otro punto débil es el que tiene que ver con los procesos de aprobación y los embudos que ahí se producen. Perseguir esa aprobación de la pull request de la que hemos estado hablando no es lo más efectivo. Demasiado a menudo se provocan cuellos de botella y se alarga innecesariamente el proceso de subida a producción o incluso a un entrono previo de testing. Esto es poco eficiente y en ese camino se pueden perder valiosas oportunidades de feedback de mejora continua. 

En el video que tienes a continuación Kristian Muñoz habla sobre ello.  

Ventajas del uso de trunk based development

Como hemos visto TBD ataca esos puntos débiles que describimos, como son el tiempo de desarrollo más costoso y con más sobrecarga, con lo que se mejora la experiencia del desarrollo y la eficacia en el trabajo. ¿Cómo lo hace? ¿Qué nos ofrece esta forma de trabajar? Adrián Muñoz nos habla de ello en este vídeo: 

 

El resumen es que con TBD podemos conseguir: 

  • Mejorar la velocidad del desarrollo.
  • Evitar días de bloqueo en los que no se toca el código, pudiendo trabajar en integración continua a producción todos los días. 
  • Aportar visión global y estratégica a lo que se está desarrollando: Todo el equipo está trabajando sobre el mismo código. Cuando por ejemplo hablamos de desarrollo de funcionalidades muy grandes, se necesita dividir el trabajo entre varios equipos. Recurrir a TBD facilita que todos puedan ver lo que se está desarrollando en todo momento aportando así una visión global mucho más enriquecedora y útil. 
  • Acelera el time to market, y eso a negocio le va a gustar. Kristian nos explica por qué: 

     

Cómo trabajar con trunk based development

Es obvio que necesitas ciertos skills y cierta preparación para poder trabajar con TBD, así como estar familiarizado con pair y mob programming. María Jesús nos habla de ello. 

 

En futuras entregas entraremos en detalle de cómo empezar con éxito en TBD y descubrir este puede ser la pieza fundamental para transformar tu negocio y asegurarte de que tus clientes estén satisfechos. Te invitamos a que amplíes información sobre Trunk Based Development si te ha parecido interesante. ¡Te esperamos!