• Samuel Grigolato

COMO SÃO DESENVOLVIDAS AS ATUALIZAÇÕES DO APP RENTBRELLA

Backlog e priorização de itens

Quando uma pessoa, usuário, parceiro ou colaborador (da Rentbrella) tem uma ideia para o nosso app, essa sugestão é encaminhada para uma lista que se chama "Backlog". Nessa etapa a área de produto entra em ação: prioriza essa lista em conjunto com nossos fundadores e define os próximos passos a serem trabalhados. Isso cria itens priorizados que passam por uma etapa de especificação. Aqui, são elencados todos os pontos de impacto da funcionalidade e elaborados protótipos.

Código-fonte e pilares de desenvolvimento

Com essas especificações em mãos, a bola passa para o time de Tecnologia. Uma ou mais pessoas assumem a responsabilidade de desenvolver os pacotes de alteração de código-fonte para as funcionalidades e isso normalmente envolve mudanças em diversos componentes da solução (não apenas no aplicativo). Também precisam ser ajustados: elementos que rodam nos servidores e ferramentas internas usadas pelos mais diversos setores da empresa.

É necessário um planejamento transparente

Porém, por mais que a especificação da funcionalidade tenha sido feita com qualidade, não é possível prever todos os impactos, nem desenvolver o código-fonte sem a introdução de defeitos. E é nesse contexto que nasce a necessidade de garantir uma qualidade recorrente nas entregas das atualizações do aplicativo.

Passa a passo para entrega de evoluções

Para solucionar esse desafio nossa equipe de TI desenvolveu um rigoroso processo que pode ser resumido em algumas etapas:

Criação de uma suíte de testes automatizada

Uma vez que é entregue um pacote de alterações de código, uma suíte de testes automatizada (com centenas e centenas de itens) é executada. Tudo isso em poucos minutos – assim é garantido que as soluções se comportem como esperado. Nesse momento, se qualquer item falhar, o responsável é notificado e o pacote não passa para a próxima etapa;

Inclusão de um companheiro de time para revisão e testes

Com a sinalização positiva da execução dos testes, o pacote de alterações passa para um outro membro da equipe – esse colaborador revisa os testes com cuidado e busca achar/resolver falhas simples. Esse processo é efetivo não só para soluções, mas também para garantir que o conhecimento do código não fique restrito a só uma pessoa;

Teste em um ambiente virtual Após a revisão o pacote é implantado em um ambiente específico para testes. Virtualmente, essa execução é equivalente à uma "implantação oficial". Isso permite que a gente identifique falhas no processo de implantação, antes que elas ocorram no dia D;

Aprovação e contribuições coletivas No ambiente em questão, todos os envolvidos – desde a pessoa que sugeriu a ideia, até o setor de produto e outros indivíduos que se interessaram pelo projeto ao longo da jornada – podem validar a efetividade da solução e se ela atendeu as expectativas;

Ferramentas que auxiliam no processo Quando chegamos nessa fase já existem várias ferramentas que auxiliam no processo. Como por exemplo o BrowserStack, que permite executar testes nos mais diversos dispositivos móveis;

Distribuição das melhorias por da atualização do app Depois da aprovação de todos os envolvidos na etapa anterior, é aberta uma janela para que a alteração seja distribuída para os usuários (por meio de uma atualização no app). Nessas janelas não necessariamente precisa haver uma única funcionalidade; podem existir uma série delas.

Processos de contingência

Mesmo com todos esses cuidados, problemas podem eventualmente passar despercebidos e chegar até os usuários. Caso isso ocorra, a equipe de tecnologia tem o poder de configurar o app e componentes dos servidores para retornar a sua versão anterior. Depois dessa atitude de contingência, acontece um diagnóstico, resolução dos problemas e nova implementação. O processo de retorno dura no máximo alguns minutos e é possível devido ao tamanho reduzido dos pacotes que são implantados. Por esse motivo, existe um incentivo em liberar pacotes semanalmente – isso facilita o processo de volta, quando eventualmente ele se faz necessário.

Mensuração e melhora das atualizações

O trabalho não termina quando a funcionalidade é implantada. Após uma aplicabilidade de sucesso, possuímos o hábito e ferramentas para monitorar a utilização e identificar problemas ou padrões de usos fora do esperado. Inspirados nesse resultado, continuamos a desenvolver novas evoluções, até chegar em um status onde a funcionalidade é considerada estável.

Gestão de projetos simultânea

As etapas desse ciclo são cronológicas, porém acontecem ao mesmo tempo e para a resolução de vários problemas diferentes. É um fluxo orgânico onde ideias surgem, são analisadas, descartadas ou priorizadas.