¿Sprints de 1 o 2 días para hacer cambios importantes?
¿Sprints de 2 semanas son largos? 🤯.
En el 2030, los sprints holgados seran de 2 horas 🤣
Cuando diseñas la arquitectura de un proyecto grande, como el del Banco Interamericano de Desarrollo, una de las decisiones más críticas es cómo vas a mezclar las contribuciones del equipo en tu Version Control System. Definir reglas claras de colaboración en GitHub desde el inicio evita ramas eternas, commits ilegibles y bloqueos entre equipos técnicos y no técnicos.
¿Qué es Trunk Based Development y por qué usarlo?
La técnica que vas a aplicar sobre tu monorepositorio se llama Trunk Based Development, y su idea central es simple pero poderosa.
En lugar de mantener ramas largas que viven semanas, promueves pull requests pequeños, frecuentes y enfocados. Muchos desarrolladores contribuyen sobre una única rama principal, y los branches secundarios se mantienen lineales, con un propósito específico y una vida útil de uno o dos días máximo.
¿Qué es la cadencia en desarrollo de software? Es el ritmo con el que tu equipo entrega contribuciones integradas a la rama principal. Una buena cadencia significa ciclos cortos, predecibles y constantes.
Piensa en Trunk Based Development como un coach de natación: no te cambia el estilo completo, te corrige pequeños movimientos de los brazos para que avances más rápido sin romper tu técnica. Esos ajustes pequeños y continuos son los que terminan generando el mayor impacto.
¿Cómo proteger la rama principal con rulesets en GitHub?
GitHub te permite establecer reglas de negocio del ciclo de desarrollo mediante rulesets, que son políticas configurables sobre tus ramas.
Estas reglas pueden ser obligatorias o no, y aplicarse específicamente sobre la rama principal para validar cómo se contribuye a ella. Los tipos de validación que puedes activar incluyen:
Al aplicar estas reglas, te aseguras de que cada merge respete la filosofía del Trunk Based Development y mantenga limpia la historia del repositorio.
¿Cómo afectan estas reglas al equipo no técnico?
Las reglas no solo ordenan al equipo de desarrollo, también ponen límites claros sobre el scope aceptable de las tareas que el equipo técnico puede entregar.
Esto le comunica al equipo no técnico qué cabe en un ciclo corto y qué no. Hace explícita la cantidad de trabajo alcanzable en uno o dos días, lo que facilita la planeación, las negociaciones de alcance y la comunicación abierta entre áreas.
¿Cómo configurar entornos para acelerar el trabajo?
Otra palanca para acelerar el desarrollo es definir entornos diferenciados, cada uno con sus propias reglas.
En el entorno de desarrollo puedes darle libertades al equipo: experimentar, romper cosas, iterar rápido. En cambio, en producción restringes las capacidades tanto del equipo técnico como del no técnico, y abres la puerta a despliegues automatizados.
Con un entorno de producción bien protegido, puedes integrar técnicas avanzadas de despliegue:
¿Qué es Blue/Green deployment? Es una técnica donde mantienes dos entornos productivos idénticos. Uno sirve tráfico real mientras el otro recibe la nueva versión, y cuando está listo, intercambias el tráfico.
¿Existen alternativas a Trunk Based Development?
Sí, y elegir la correcta depende del tamaño del equipo, el volumen de trabajo y la madurez del proyecto. Las alternativas más comunes manejan ciclos más largos y múltiples ramas protegidas:
Ten en cuenta que estas reglas no son inmutables. Se deben adaptar a las capacidades del equipo, al volumen de trabajo y a la fase del proyecto. Pero tener reglas claras desde el principio facilita la colaboración, tanto de quienes ya están como de los nuevos miembros que se integran a un proyecto de gran envergadura.
¿Qué técnica has usado tú para mezclar contribuciones en tu equipo? Cuéntame en los comentarios qué problemas encontraste y cómo los resolviste.
Cuando diseñas la arquitectura de un proyecto grande, como el del Banco Interamericano de Desarrollo, una de las decisiones más críticas es cómo vas a mezclar las contribuciones del equipo en tu Version Control System. Definir reglas claras de colaboración en GitHub desde el inicio evita ramas eternas, commits ilegibles y bloqueos entre equipos técnicos y no técnicos.
La técnica que vas a aplicar sobre tu monorepositorio se llama Trunk Based Development, y su idea central es simple pero poderosa.
En lugar de mantener ramas largas que viven semanas, promueves pull requests pequeños, frecuentes y enfocados. Muchos desarrolladores contribuyen sobre una única rama principal, y los branches secundarios se mantienen lineales, con un propósito específico y una vida útil de uno o dos días máximo.
¿Qué es la cadencia en desarrollo de software? Es el ritmo con el que tu equipo entrega contribuciones integradas a la rama principal. Una buena cadencia significa ciclos cortos, predecibles y constantes.
Piensa en Trunk Based Development como un coach de natación: no te cambia el estilo completo, te corrige pequeños movimientos de los brazos para que avances más rápido sin romper tu técnica. Esos ajustes pequeños y continuos son los que terminan generando el mayor impacto.
GitHub te permite establecer reglas de negocio del ciclo de desarrollo mediante rulesets, que son políticas configurables sobre tus ramas.
Estas reglas pueden ser obligatorias o no, y aplicarse específicamente sobre la rama principal para validar cómo se contribuye a ella. Los tipos de validación que puedes activar incluyen:
Al aplicar estas reglas, te aseguras de que cada merge respete la filosofía del Trunk Based Development y mantenga limpia la historia del repositorio.
Las reglas no solo ordenan al equipo de desarrollo, también ponen límites claros sobre el scope aceptable de las tareas que el equipo técnico puede entregar.
Esto le comunica al equipo no técnico qué cabe en un ciclo corto y qué no. Hace explícita la cantidad de trabajo alcanzable en uno o dos días, lo que facilita la planeación, las negociaciones de alcance y la comunicación abierta entre áreas.
Otra palanca para acelerar el desarrollo es definir entornos diferenciados, cada uno con sus propias reglas.
En el entorno de desarrollo puedes darle libertades al equipo: experimentar, romper cosas, iterar rápido. En cambio, en producción restringes las capacidades tanto del equipo técnico como del no técnico, y abres la puerta a despliegues automatizados.
Con un entorno de producción bien protegido, puedes integrar técnicas avanzadas de despliegue:
¿Qué es Blue/Green deployment? Es una técnica donde mantienes dos entornos productivos idénticos. Uno sirve tráfico real mientras el otro recibe la nueva versión, y cuando está listo, intercambias el tráfico.
Sí, y elegir la correcta depende del tamaño del equipo, el volumen de trabajo y la madurez del proyecto. Las alternativas más comunes manejan ciclos más largos y múltiples ramas protegidas:
Ten en cuenta que estas reglas no son inmutables. Se deben adaptar a las capacidades del equipo, al volumen de trabajo y a la fase del proyecto. Pero tener reglas claras desde el principio facilita la colaboración, tanto de quienes ya están como de los nuevos miembros que se integran a un proyecto de gran envergadura.
¿Qué técnica has usado tú para mezclar contribuciones en tu equipo? Cuéntame en los comentarios qué problemas encontraste y cómo los resolviste.
¿Sprints de 1 o 2 días para hacer cambios importantes?
¿Sprints de 2 semanas son largos? 🤯.
En el 2030, los sprints holgados seran de 2 horas 🤣
En el contexto de un proyecto estratégico para el Banco Interamericano de Desarrollo, se discutió una de las decisiones clave de arquitectura técnica: cómo estructurar y gestionar las contribuciones de código en un entorno de desarrollo colaborativo. Este artículo desglosa los puntos esenciales presentados en la transcripción, abordando la importancia del control de versiones, el enfoque de trunk-based development, las políticas del repositorio, la gestión de entornos, y la adaptabilidad de las reglas.
El enfoque principal propuesto para este proyecto es el uso de trunk-based development (TBD). Esta estrategia promueve una integración constante de cambios pequeños y frecuentes sobre una rama principal.
Es una técnica de desarrollo que:
Un equipo de backend y frontend colabora sobre la misma rama principal. Cada cambio, ya sea una nueva función de pagos o un ajuste al diseño responsivo, es integrado en menos de dos días. Se eliminan los largos ciclos de revisión y se mejora la trazabilidad de cada contribución.
Para asegurar el correcto uso del repositorio y proteger su integridad, se establecen reglas obligatorias mediante GitHub Rule Sets.
Una práctica avanzada propuesta en el proyecto es la definición de entornos de desarrollo diferenciados que regulan los permisos y restricciones según el nivel de criticidad.
El trunk-based development no sólo organiza el código, también define el contrato de trabajo entre áreas técnicas y no técnicas.
Uno de los mensajes clave es que estas políticas no deben ser rígidas, sino ajustables según el contexto del equipo.
Aunque TBD fue la estrategia recomendada, también se mencionaron alternativas viables para otros tipos de proyectos:
Cada enfoque tiene ventajas y desafíos que deben ser evaluados según:
Implementar trunk-based development con reglas claras de control de versiones, entornos diferenciados y una filosofía de entregas frecuentes ayuda a construir equipos más ágiles, predecibles y eficientes.
🧠 Recuerda: la arquitectura de un sistema no es solo código, es también cómo se organiza el trabajo, se comunica el equipo y se construye el producto.
main o master) donde todos los desarrolladores integran sus cambios frecuentemente (incluso varias veces al día).main, develop, feature/*, release/*, hotfix/*.

actualmente queremos autorizar nuestro despliegue en ambientes de los sistemas que se construyen, esto incluye los componentes de cada equipo desarrolla.
quería consultar a nivel de práctica como hacen para mantener tanta información de un proyecto en los monorepositorios y que esta información fluya con normalidad cuando hayan otros nuevos miembros? cuál sería una regla?, la documentación donde se podría llevar?
Perdón pero esta clase no la entiendo, vanía hablando de monorepositorios, de pantsbuild, ahora pasa a trunk-based development, sin embargo no termina de encajar con lo que venía diciendo, luego habla de github, de las reglas y entornos, pasa a DevOps con despliegues (blue-green o canary), las compara con otras metodologías de control de versiones como gitflow, OneFlow o Feature Branch Workflow, pero tampoco las explica, entoncees... en realidad toca muchos puntos, pero en realidad no explica ni profundiza en ninguno; no hay ejemplos, no se, no entiendo nada porque veo muchas cosas pero sin profundidad. Con respeto. no me aporta nada esta clase.
La clase se centra en el trunk-based development, una estrategia de control de versiones en monorepositorios. Se promueve la integración continua mediante contribuciones pequeñas y frecuentes en una rama principal. Se destacan la importancia de establecer reglas de negocio claras en el repositorio para mejorar la colaboración y comunicación entre los equipos técnicos y no técnicos. También se sugiere la creación de entornos de desarrollo diferenciados y la adaptación de reglas según el equipo y el volumen de trabajo para facilitar la colaboración y la entrega de software.
Que sera ramas mas cortas, tener reglas de limites de cada Pull Requests? claramente tenemos la rama master y release, entonces podemos setear runsets y seria nuestro deben que la forma de trabajar sea la adecuada pensando en la aceleracion. Que bueno saber que definir reglas es como un lenguaje entre los funcionales (no tecnicos) y tecnicos.
Que lindo pensar en que reglas podriamos tener para el equipo, pensar en el beneficio y las entregas.
Alternativas:
En mi experiencia laboral he usado GITFLOW como estrategia para el uso de la incorporación de features. complejo la integración después de cierto tiempo, para solucionar se ha sacado variantes al manejo de ramas
¿Es posible combinar trunk-based con despliegues automatizados?
No solo es posible, sino que el Trunk-Based Development es el motor fundamental que hace viable la verdadera integración y despliegue continuo. Como los desarrolladores envían cambios pequeños y validados todos los días, el código siempre está en un estado listo para producción, permitiendo que pipelines automatizados lo empaqueten y liberen sin intervención manual. Esto abre la puerta a técnicas avanzadas y seguras como Blue-Green Deployment o Canary Releases, eliminando por completo el estrés de los tradicionales días de lanzamiento.
Cesidio Antonio Di Benedetto Carri
Libardo Arturo Arroyave Bustos
Juan Pablo Corona
John Eduard Meneses González
Roberto Iván Pineda Hernández
Gonzalo Andrés Rojas Cardona
Libardo Arturo Arroyave Bustos
Jesua Cañizares
Alejandro Mejia Mendez
Digneli Mariet Dávila Ramones
ANDRES GUZMAN
jeronimo escobar gallego
Juan Diego Mejia Maestre
José Eder Guzmán Mendoza
Gustavo Olmedo
Kevin Fiorentino
Etna Estrella
¿Sprints de 1 o 2 días para hacer cambios importantes?
¿Sprints de 2 semanas son largos? 🤯.
En el 2030, los sprints holgados seran de 2 horas 🤣
🧠 Mejores Prácticas en Control de Versiones para Equipos de Desarrollo de Alto Desempeño
En el contexto de un proyecto estratégico para el Banco Interamericano de Desarrollo, se discutió una de las decisiones clave de arquitectura técnica: cómo estructurar y gestionar las contribuciones de código en un entorno de desarrollo colaborativo. Este artículo desglosa los puntos esenciales presentados en la transcripción, abordando la importancia del control de versiones, el enfoque de trunk-based development, las políticas del repositorio, la gestión de entornos, y la adaptabilidad de las reglas.
🚀 Trunk-Based Development: Colaboración Ágil y Continua
El enfoque principal propuesto para este proyecto es el uso de trunk-based development (TBD). Esta estrategia promueve una integración constante de cambios pequeños y frecuentes sobre una rama principal.
🧩 ¿Qué es trunk-based development?
Es una técnica de desarrollo que:
✅ Beneficios Clave
🛠️ Ejemplo hipotético
Un equipo de backend y frontend colabora sobre la misma rama principal. Cada cambio, ya sea una nueva función de pagos o un ajuste al diseño responsivo, es integrado en menos de dos días. Se eliminan los largos ciclos de revisión y se mejora la trazabilidad de cada contribución.
🔐 Reglas y Políticas del Repositorio en GitHub
Para asegurar el correcto uso del repositorio y proteger su integridad, se establecen reglas obligatorias mediante GitHub Rule Sets.
🔧 Tipos de validaciones en GitHub
📝 Ventajas de estas reglas
🧪 Ambientes Diferenciados: Libertad y Control
Una práctica avanzada propuesta en el proyecto es la definición de entornos de desarrollo diferenciados que regulan los permisos y restricciones según el nivel de criticidad.
🌍 Tipos de entornos y sus funciones
🚦 Técnicas de despliegue recomendadas
📣 Comunicación y Alcance del Trabajo
El trunk-based development no sólo organiza el código, también define el contrato de trabajo entre áreas técnicas y no técnicas.
💬 Aportes en la comunicación
🔄 Flexibilidad y Adaptación Continua
Uno de los mensajes clave es que estas políticas no deben ser rígidas, sino ajustables según el contexto del equipo.
🧠 Recomendaciones clave
🏁 Alternativas al Trunk-Based Development
Aunque TBD fue la estrategia recomendada, también se mencionaron alternativas viables para otros tipos de proyectos:
🔄 Otras estrategias conocidas
Cada enfoque tiene ventajas y desafíos que deben ser evaluados según:
🧭 Conclusión: Integración Continua como Estrategia de Éxito
Implementar trunk-based development con reglas claras de control de versiones, entornos diferenciados y una filosofía de entregas frecuentes ayuda a construir equipos más ágiles, predecibles y eficientes.
🎯 Recomendaciones finales
🧠 Recuerda: la arquitectura de un sistema no es solo código, es también cómo se organiza el trabajo, se comunica el equipo y se construye el producto.
🧪 Trunk-Based Development (TBD)
main o master) donde todos los desarrolladores integran sus cambios frecuentemente (incluso varias veces al día).🔀 GitFlow
main, develop, feature/*, release/*, hotfix/*.✅ ¿Cuál usar?
actualmente queremos autorizar nuestro despliegue en ambientes de los sistemas que se construyen, esto incluye los componentes de cada equipo desarrolla.
quería consultar a nivel de práctica como hacen para mantener tanta información de un proyecto en los monorepositorios y que esta información fluya con normalidad cuando hayan otros nuevos miembros? cuál sería una regla?, la documentación donde se podría llevar?
Perdón pero esta clase no la entiendo, vanía hablando de monorepositorios, de pantsbuild, ahora pasa a trunk-based development, sin embargo no termina de encajar con lo que venía diciendo, luego habla de github, de las reglas y entornos, pasa a DevOps con despliegues (blue-green o canary), las compara con otras metodologías de control de versiones como gitflow, OneFlow o Feature Branch Workflow, pero tampoco las explica, entoncees... en realidad toca muchos puntos, pero en realidad no explica ni profundiza en ninguno; no hay ejemplos, no se, no entiendo nada porque veo muchas cosas pero sin profundidad. Con respeto. no me aporta nada esta clase.
📌 ¿Qué puedes rescatar de esta clase pese a todo?
Aunque la clase fue superficial, sí menciona varias ideas clave que vale la pena guardar y profundizar por tu cuenta:
🧠 Conceptos mencionados:
entiendo la intención de la clase, pero también estoy muy de acuerdo contigo. Demasiada Generalidad.
La clase se centra en el trunk-based development, una estrategia de control de versiones en monorepositorios. Se promueve la integración continua mediante contribuciones pequeñas y frecuentes en una rama principal. Se destacan la importancia de establecer reglas de negocio claras en el repositorio para mejorar la colaboración y comunicación entre los equipos técnicos y no técnicos. También se sugiere la creación de entornos de desarrollo diferenciados y la adaptación de reglas según el equipo y el volumen de trabajo para facilitar la colaboración y la entrega de software.
Que sera ramas mas cortas, tener reglas de limites de cada Pull Requests? claramente tenemos la rama master y release, entonces podemos setear runsets y seria nuestro deben que la forma de trabajar sea la adecuada pensando en la aceleracion. Que bueno saber que definir reglas es como un lenguaje entre los funcionales (no tecnicos) y tecnicos.
Que lindo pensar en que reglas podriamos tener para el equipo, pensar en el beneficio y las entregas.
Alternativas:
En mi experiencia laboral he usado GITFLOW como estrategia para el uso de la incorporación de features. complejo la integración después de cierto tiempo, para solucionar se ha sacado variantes al manejo de ramas
¿Es posible combinar trunk-based con despliegues automatizados?
No solo es posible, sino que el Trunk-Based Development es el motor fundamental que hace viable la verdadera integración y despliegue continuo. Como los desarrolladores envían cambios pequeños y validados todos los días, el código siempre está en un estado listo para producción, permitiendo que pipelines automatizados lo empaqueten y liberen sin intervención manual. Esto abre la puerta a técnicas avanzadas y seguras como Blue-Green Deployment o Canary Releases, eliminando por completo el estrés de los tradicionales días de lanzamiento.
Trunk-Based Development (TBD): Integración Continua Real
El TBD es el estándar de oro para equipos de alto rendimiento. Su filosofía es simple: todos trabajan sobre la rama principal (trunk) o en ramas de vida muy corta.
1. Reglas de Oro del TBD
2. Protección de Ramas con Rule Sets
Para que el TBD no rompa la producción, se utilizan herramientas de gobernanza (como los Rule Sets de GitHub):
🛠️ Comparativa de Workflows
Estrategia
Ideal para...
Dinámica
Trunk-Based
Equipos Senior, CI/CD maduro, entrega diaria.
Cambios pequeños, despliegue rápido.
GitFlow
Proyectos con ciclos de lanzamiento largos (ej. apps móviles).
Ramas de desarrollo, release y hotfix muy marcadas.
Feature Branch
Colaboración asíncrona o equipos grandes en formación.
Una rama por cada funcionalidad, sin límite estricto de tiempo.
El uso de trunk-based development en monorepositorios permite establecer un control de versiones ágil, basado en integraciones frecuentes y contribuciones pequeñas hacia una rama principal compartida. Este enfoque favorece la colaboración continua, reduce conflictos de integración y acelera los ciclos de entrega.
Para su correcta implementación, es fundamental definir reglas claras: limitar la duración de las ramas, integrar cambios mediante pull requests pequeños (1–2 días de trabajo) y aplicar políticas de validación como revisiones de código, controles de seguridad y estándares de calidad. Herramientas como los rule sets en GitHub ayudan a proteger las ramas principales y asegurar la trazabilidad.
La integración continua y los cambios incrementales permiten detectar errores rápidamente, mejorar la comunicación del equipo y reflejar avances reales en ciclos cortos. Sin embargo, estas reglas deben adaptarse según el contexto y madurez del equipo.
Como alternativa, metodologías como GitFlow o feature branch workflow pueden ser útiles en proyectos con ciclos más largos o mayor necesidad de control por fases.
La clase aborda la gestión de versiones en monorepositorios mediante el trunk-based development. Se enfoca en reglas para integrar cambios pequeños y constantes en la rama principal, usando rulesets de GitHub para asegurar la calidad y la colaboración.
En mi trabajo tenemos una sola rama: main (o master). Mergeamos todo ahí. No estoy seguro si es realmente trunk-based, no conocía el término. Pero si es interesante que, al no tener ramas develop, testing, etc. se evita hacer merges enormes y difíciles de manejar. Ese es el principal beneficio.
si se tiene legaxys es mejor usar polirepositorios? hay en este caso herramientas gratuitas?