El release y su ciclo de vida
驴Qu茅 es un Release?
Ciclo de Vida de un Release y planificaci贸n
Tipos de Release y Estrategias de Ramificaci贸n
Quiz: El release y su ciclo de vida
Estrategias de Release en fase de desarrollo
Estrategias de Lanzamiento Controlado con Firebase
Dark Launches
Feature Toggles
A/B Testing
Quiz: Estrategias de Release en fase de desarrollo
Pruebas y Validaciones
Pruebas Exhaustivas
Validaciones y Seguridad
Optimizaci贸n y Compatibilidad
Quiz: Pruebas y Validaciones
Preparaci贸n del Release
Flavors y Builds: Configuraci贸n para Apps Android
Configuraci贸n en Google Play Console
Quiz: Preparaci贸n del Release
Ejecuci贸n del Release
Beta Testing
Phased Rollouts y Canary Releases en Google Play Console
Automatizaci贸n del Release
Quiz: Ejecuci贸n del Release
Post-Release
Estrategias de Mejora Continua
Monitoreo de Fallos
You don't have access to this class
Keep learning! Join and start boosting your career
Efficient code management is critical to the success of any development project. When there is no clear branching strategy, teams can face chaos, bugs in production and difficulties in reverting problematic changes. In this content we will explore how to implement methodologies such as Gitflow and Trunk-based Development to maintain effective control over every update to your software, integrating tools such as GitHub and Jira to streamline workflow.
Without a well-defined branching strategy, software development can quickly devolve into chaos. Common problems include:
To avoid these problems, each release should have its own branch and follow a clearly structured workflow. The most commonly used methodologies to achieve this are Gitflow and Trunk-based Development, each with its own characteristics and use cases.
Gitflow is a widely adopted branching methodology, especially in companies with large development teams. Its main feature is the creation of a separate branch for each issue or task.
In this structure:
develop
.develop
and then to main.
If we look at the GitHub repository of our application, we can see a map with a clearly defined Gitflow structure, where each branch represents a specific development that is then integrated into the main flow.
The main difference between these methodologies lies in how the branches are organized:
This distinction makes Trunk-based more suitable for small teams or teams working on related functionality, while Gitflow offers more control for large teams with multiple parallel developments.
One of the advantages of using specialized tools is the ability to connect them together to automate processes. Let's see how to integrate GitHub with Jira:
With these tools synchronized, we can create branches directly from Jira:
Select the project in Jira2.Specify that the branch will start from 'develop'3. Keep the default name suggested by Jira4. Click on "Create branch".
This integration allows us to maintain a clear traceability between the tasks in Jira and the code in GitHub, making it easier to track progress.
After working on our branch, fixing the issue and having our pull request accepted and integrated to develop
(and later to main
), we can check how our workflow was in Git.
In the Git history view, we will notice:
This tag indicates that all issues resolved up to that point are included in the specified version (e.g. v1.0.1). This organization provides a clear reference of what changes are included in each version of the software.
Having a clear branching strategy is critical, but not sufficient if the release does not reach the right users. Large companies do not release upgrades indiscriminately, but rather:
These aspects are crucial to ensure that new releases reach the right users at the right time, minimizing risks and maximizing the positive impact of each upgrade.
Implementing a proper branching strategy, along with the integration of tools like GitHub and Jira, can radically transform the efficiency of your development team. Have you implemented any of these methodologies in your projects? What challenges have you faced when managing branching in your code? Share your experience in the comments.
Contributions 0
Questions 0
Want to see more contributions, questions and answers from the community?