Desenvolvimento Ágil e entrega contínua para mobilidade

Hoje em dia os aplicativos móveis fazem parte do nosso dia a dia e oferecem aos usuários diversas ferramentas para cada tipo de necessidade, bem na palma de nossa mão. No último ano, uma pesquisa da Teleco mostrou que 84% das pessoas no Brasil possuem celulares, e que 47% desse total usam o celular para acessar a internet. Isto quer dizer que milhares de apps estão sendo usados constantemente pelos usuários no Brasil, ou melhor, mundo a fora. Mas as empresas estão preparadas para atender a demanda criada por esse fenômeno da mobilidade? Como as empresas se adaptam a um universo no qual uma nova tecnologia é apresentada a cada dia? Como desenvolver soluções em um ambiente onde os requisitos podem mudar em um piscar de olhos?

As práticas ágeis surgiram para tentar responder a todas essas perguntas, pois ajudam a diminuir o time-to-market das aplicações por meio da entrega adiantada e contínua de software e de valor, ou seja, ao final de cada sprint (idealmente entre duas e quatro semanas) o cliente consegue ver um produto funcional e de valor agregado em produção. Tudo aquilo que for mais importante para o negócio do cliente será desenvolvido, testado e entregue primeiro, trazendo o aumento do ROI e a diminuição nos custos com operação.

É possível também fazer com que os projetos se tornem flexíveis a mudanças, sejam elas de mercado ou de tecnologia, pois processos ágeis se adequam às modificações, mesmo essas sendo identificadas tardiamente no processo de desenvolvimento, trazendo vantagem competitiva para as empresas. Isso ocorre porque durante os sprints o time do projeto tem a oportunidade de receber feedback do cliente, do mercado e dentro da própria equipe e, a partir desse feedback, é possível aprender e identificar mudanças e melhorias no processo e no projeto.

Para atender a demanda dos projetos seguindo as práticas ágeis e entregar as aplicações em um curto período, há uma técnica da engenharia de software chamada Entrega Contínua (Continuous Delivery, em inglês), que não é usada somente em aplicações móveis, mas sim para todos os tipos de aplicações, pois reduz os custos eliminando processos desnecessários, aumentando a qualidade e a velocidade em que os releases são feitas.

Nesta técnica, o time de desenvolvimento cria uma nova funcionalidade da aplicação e coloca o código em um repositório de controle de versão. Assim que o sistema de gerenciamento de versão identifica que uma nova versão do projeto está no repositório, é disparado um processo para rodar os testes unitários e também fazer o build do projeto e, por fim, uma mensagem de feedback (sucesso ou falha) é enviada para o Time de Desenvolvimento.

Assim que os testes unitários e builds são feitos com sucesso, dispara-se um processo para rodar os testes de aceitação automatizados, enviando também ao final uma mensagem de feedback (sucesso ou falha) para o Time de Desenvolvimento.

Quando os testes de aceitação terminam com sucesso, o projeto é colocado em um ambiente de UAT (User Acceptance Testing) para que o teste de aceite do usuário seja feito. Nessa etapa, os usuários fazem a validação do projeto e dão a aprovação para ir para produção. Assim que o usuário valida as mudanças, as mesmas são colocadas em produção, no processo de release.

Abaixo diagrama ilustrando o processo:

diagrama ágil

O desenvolvimento de aplicativos móveis está mudando muito rápido. É preciso usar a Entrega Contínua para entender as diferentes soluções que existem no mercado, superar os desafios e garantir o domínio sobre os processos de aplicativos móveis e, com isso, satisfazer o cliente com entregas de qualidade e coletando seu feedback em tempo real. Usando a entrega continua aliada às práticas de desenvolvimento ágil, as empresas estão se transformando, criando concorrência e novos modelos de negócio no mercado.

*João Gatto é Technical Analyst do Agile Center da GFT Brasil.

Desenvolvimento Ágil e entrega contínua para mobilidade