- Por Valeria Di Francesco
- ·
- Publicado 03 Jun 2024
Estrategias de testing aplicadas a negocio
Cuando se trata de desarrollar software, el testing es una pieza fundamental que garantiza la calidad y la confiabilidad de un producto y puede tener..
La llegada de Git trajo consigo una nueva era en el desarrollo de software, caracterizada por el descubrimiento de enfoques innovadores para crear aplicaciones. Uno de estos enfoques es Gitflow, un modelo de desarrollo basado en ramas. Aunque este modelo ofrece ventajas, la integración del trabajo en él plantea desafíos en cuanto al feedback de los desarrolladores, especialmente en cuanto al momento y la frecuencia en que se recibe.
A diferencia del enfoque de Branch Based Development, el Trunk-Based Development (TBD) no involucra múltiples etapas y, con el objetivo de minimizar conflictos, opera en estrecha proximidad a la fuente primaria de código. Esta metodología se alinea especialmente con organizaciones en constante evolución, poniendo de nuevo en primer plano la colaboración con el cliente en el paradigma ágil. En última instancia, el foco se centra en maximizar el valor del código en producción, en lugar de en el entorno de preparación (staging environment).
El Trunk-Based Development tiene raíces más profundas de lo que podría parecer. Se remonta a sistemas como CVS (Concurrent Version System) y SVN (Subversion), donde predominaba la filosofía de "todos trabajan en un tronco, con algunas ramas de corta duración destinadas a la corrección de errores (bugs) o al desarrollo experimental".
Autores de la década de los 90, incluido Jez Humble, coautor de libros como "The DevOps Handbook", "Lean Enterprise" y "Continuous Delivery", ya hablaban sobre el control de versiones y la importancia de obtener feedback rápido para evitar ramificaciones prolongadas. Esto demuestra que el Trunk-Based Development no es un concepto nuevo, sino una evolución de ideas previas.
A continuación, presentamos una recopilación de prácticas claves basadas en nuestra experiencia para implementar con éxito el Trunk-Based Development en tu equipo. Algunas de estas prácticas pueden formar parte de tu flujo de trabajo actual, mientras que otras pueden resultar nuevas. Te invitamos a probarlas y compartir tus opiniones.
¡Comencemos!
El primer paso crucial es asegurar que el equipo esté alineado en la adopción del Trunk-Based Development y las prácticas que lo acompañan. Después de todo, si el equipo no está comprometido, existe una alta probabilidad de que la implementación fracase.
El Trunk-Based Development fomenta la colaboración y la propiedad colectiva del código, lo cual es vital para el éxito de este enfoque.
Un pipeline de integración y entrega continua (CI/CD) confiable es fundamental en el entorno de Trunk-Based Development. Facilita la detección temprana de problemas y agiliza el proceso de desarrollo.
Los toggles se convierten en aliados cruciales para los desarrolladores, permitiendo la incorporación de cambios sin necesidad de despliegues masivos.
El work in progress es el paradigma central del TBD. Esta metodología elimina la necesidad de congelar el código para revisar grandes cambios y reduce el tiempo de inactividad asociado con la integración de modificaciones.
El monitoreo es fundamental para el éxito del TBD, y la práctica del registro (logging) juega un papel crucial en esta metodología.
Si bien el enfoque ideal del TBD implica hacer push directamente al tronco, las ramas de corta duración pueden ser útiles para pruebas y correcciones, al guardar el trabajo al final del día o cuando se cambia de rol durante las sesiones de pairing. Si es necesario, estas ramas pueden fusionarse de nuevo en el tronco mediante la creación de un "pull request".
A pesar del entusiasmo en torno al Trunk-Based Development y sus ventajas para equipos ágiles, persiste la resistencia al cambio. En la última década, los desarrolladores han sido formados para operar en diversos entornos, completando tareas de desarrollo, calidad y producción. La perspectiva de adoptar TBD puede generar inquietud debido al temor a afectar la producción, un desafío común a todos los desarrolladores, sin importar su especialización. Esto resalta la importancia de considerar el aspecto humano en el desarrollo de software, especialmente en entornos dinámicos.
Extreme Programming, con su conjunto de valores, sienta las bases para equipos de alto rendimiento. La segunda edición de XP, liderada por Kent Beck, introduce el valor del respeto, junto con el feedback, la sencillez, la comunicación y la valentía.
A menudo, los equipos carecen del valor y respeto necesarios para adoptar prácticas como TBD. Sin embargo, nuestro consejo es que, si tienes la oportunidad, explores este enfoque y su potencial.
Este blog fue escrito colaborativamente por Matheus Marabesi, Fernando del Caz, Javier Chacana y Arturo Menéndez, nuestros software craftpersons . Si quieres saber más sobre ellos, visita la página de Nuestro Equipo.
Cuando se trata de desarrollar software, el testing es una pieza fundamental que garantiza la calidad y la confiabilidad de un producto y puede tener..
Los equipos de desarrollo de muchas organizaciones han adoptado las revisiones de código como una de sus prácticas básicas. Aunque parece algo muy..
La clave del crecimiento organizacional no solo reside en tener un producto o servicio excepcional, sino también en el entorno en el que se..
Suscríbete a nuestra newsletter para que podamos hacerte llegar recomendaciones de expertos y casos prácticos inspiradores