Train Release: Uma abordagem para entrega de apps mobile
Tags: mobile, android, ios, cicd
Published: 2024-05-27 19:16:14

No contexto de enviar versões de app mobile para loja, um Release Train assume um papel crucial na agilização, padronização e otimização do processo de lançamento. Funciona como um trem em movimento constante, transportando incrementos de valor para os usuários de forma regular e eficiente.

<p align="center">
<img src="https://miro.medium.com/v2/resize:fit:800/0*lr82C1yiwA5rIAAy" />
</p>
<p style="text-align: center;">Exemplo de Fluxo de um Train Release de um app mobile</p>

##O que é um Train Release

Como o próprio nome sugere, um "Trem de Lançamento" é um fluxo de trabalho que ocorre periodicamente. A analogia com um trem se refere à ideia de que, assim como os trens param em estações para pegar passageiros, os lançamentos periódicos carregam mudanças e correções de software, levando-as até o destino final: o dispositivo do usuário.

Para implementar um Train Release de forma eficaz, primeiro defina os intervalos de tempo para cada estágio de desenvolvimento e determine quanto tempo será dedicado aos testes de integração, testes beta e aos estágios de lançamento. Durante a fase de desenvolvimento, as equipes têm tempo para revisar, testar e mesclar os recursos no branch principal que será incluído no trem. Quando o conteúdo de um lançamento é definido e está pronto, ocorre uma fase final de testes de integração.

Nesta fase, os membros da equipe devem verificar se os novos recursos e correções funcionam conforme esperado. Bugs serão corrigidos e mesclados novamente, se necessário. Um congelamento de código pode marcar o fim de um ciclo de desenvolvimento e o início de outro. As equipes de desenvolvimento podem então iniciar um novo sprint para continuar o processo até o próximo lançamento.

##Exemplo de Train Release

Uma empresa está lançando um novo app mobile para iOS e Android. O app oferece funcionalidades para gerenciar tarefas, notas e calendário. A equipe de desenvolvimento utiliza o framework Scrum para gerenciar o projeto e deseja implementar o Release Train para otimizar o processo de lançamento.

1. **Defina o intervalo de tempo:** No caso da empresa, por ser uma equipe pequena, ficou definido uma janela de desenvolvimento de quinze dias (duas semanas).

1. **Congelamento do código**: Passado o período de desenvolvimento, é criado uma branch do código base naquela data. Até este momento, todos devem ter incluído suas funcionalidades e correções. Não é permitida a adição de novo código na branch de congelada, a não ser que seja para corrigir algo como veremos a seguir.

1. **Entrega para equipe de testes**: Um build do app é entregue para a equipe de qualidade da empresa. Eles devem ter os casos de uso definidos e todo o roteiro das funcionalidades novas e antigas, garantindo que tudo esteja funcionando.

1. **Correções**: Como a vida não é um morango, a equipe de qualidade pode encontrar problemas e inconsistências. Aqui criamos correções que vão para apenas a branch de congelamento e refazemos os testes.

1. **Disponibilização nas lojas**: Após os testes e tudo aprovado, a nova versão é enviada para lojas.

1. **Monitoramento**: É muito importante que o app seja monitorado para que possíveis problemas sejam corrigidos o mais rápido possível ou suspender a publicação daquela versão. 

##Como o Release Train se aplica ao lançamento de apps mobile:

**Planejamento em ciclos:** O Release Train define ciclos de planejamento regulares com duração fixa, onde cada empresa ou produto escolhem o melhor intervalo.  Nesses ciclos, as equipes definem metas, priorizam tarefas e traçam o roteiro para o próximo lançamento.

**Sincronização e ritmo constante:** Diferente de lançamentos pontuais e desorganizados, o Release Train sincroniza o trabalho de todas as equipes envolvidas, garantindo um ritmo constante de entregas. Isso significa que os incrementos de valor, seja uma nova funcionalidade ou correção de bug, chegam aos usuários com frequência previsível.

**Visibilidade e colaboração:** O Release Train utiliza ferramentas e práticas para tornar o progresso do trabalho transparente para todos. Isso facilita a identificação e resolução de problemas de forma proativa, além de promover a colaboração e o engajamento entre as equipes.

**Foco em entregas frequentes:** O objetivo principal do Release Train é a entrega frequente de valor aos usuários. Isso significa que, em vez de esperar por um lançamento grandioso com todas as funcionalidades prontas, o app é lançado com incrementos que oferecem benefícios tangíveis aos usuários a cada ciclo.

**Adaptabilidade e feedback:** O Release Train é um processo adaptável que se ajusta às necessidades do projeto e do mercado. O feedback dos usuários é coletado e utilizado para aprimorar o app e direcionar o desenvolvimento em iterações futuras.

##Benefícios do Release Train para lançamento de apps mobile:

- Maior velocidade de lançamento: Com lançamentos frequentes e previsíveis, o Release Train reduz drasticamente o tempo necessário para levar novos recursos e correções aos usuários.
- Maior qualidade do app: A entrega frequente de valor permite que os bugs sejam identificados e corrigidos rapidamente, resultando em um app mais estável e confiável.
- Maior satisfação do cliente: Ao receber novas funcionalidades e melhorias com frequência, os usuários se sentem mais engajados e satisfeitos com o app.
- Maior agilidade e adaptabilidade: O Release Train permite que a equipe responda rapidamente às mudanças nas necessidades do mercado e dos usuários, ajustando o roteiro e priorizando as funcionalidades de acordo com o feedback.

Em resumo, o Release Train é uma ferramenta poderosa para otimizar o lançamento de apps mobile, proporcionando maior velocidade, qualidade, satisfação do cliente e agilidade. Se você busca um processo mais eficiente e eficaz para levar seu app aos usuários, o Release Train pode ser a solução ideal.

Foto de <a href="https://unsplash.com/pt-br/@jk?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">JK</a> na <a href="https://unsplash.com/pt-br/fotografias/trem-em-movimento-perto-de-arvores-gJhev0YgUcE?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Unsplash</a>