Desenvolvimento

3 dez, 2014

MobileFirst: nossa concepção de desenvolvimento mobile – Parte 1

Publicidade

Atualmente, o setor de desenvolvimento mobile brasileiro sofre com uma série de problemas. Talvez o mais importante deles, para um desenvolvimento profissional de qualidade, seja a fragmentação. Na plataforma Android, por exemplo, existem cerca de 12 mil aparelhos diferentes (segundo a Opensignal Survey de 2013). Fazer com que seu aplicativo funcione em todos eles é uma tarefa árdua. Imagine manter uma experiência de uso positiva para cada um de seus clientes. Além disso, existe uma percepção de baixa qualidade dos aplicativos mobile brasileiros: segundo o App Annie, o rating médio dos 20 apps mais baixados na categoria de finanças em outubro deste ano é de 2,5.

Fragmentação

O problema a ser resolvido não é nada simples. Quem seguiu a ideia de criar uma camada de abstração para endereçar a fragmentação (como a Adobe fez com o Flash Player para o problema na web) acaba dependente dos pesados gatekeepers (Apple, Google, tc.) e das mudanças das regras do jogo. A chegada do iOS 8, por exemplo, deixou dezenas de apps que usavam geradores de código fora do ar por mais de um mês.

Em dez anos de aprendizado, depois de muitos aplicativos desenvolvidos e muitos quebra-cabeças montados, chegamos à conclusão de que a melhor solução é abraçar a mudança. Em vez de tentar prever o futuro, nos preparamos para mudar de direção com muita velocidade. Para dar a qualidade e a experiência de uso que nossos usuários esperam, é necessário o desenvolvimento de aplicativos nativos. Com isso, criamos uma plataforma que automatiza o ciclo de desenvolvimento, com soluções “best of breed”, ou seja, as melhores do mercado para aquele problema específico, e instrumentação 360º, ou seja, avaliação de todos os ângulos do produto.

Na prática, acreditamos que o ciclo de desenvolvimento de um produto mobile passa por três fases: descobrir, desenvolver e gerenciar. Essas fases não formam um processo, mas um ciclo. Isso porque ao desenvolver podemos ter um feedback que nos faça voltar à fase de descobrir, bem como gerenciando podemos entender que é melhor desenvolver de outra forma.

Descobrir-Gerenciar-Desenvolver

Nessas três fases, utilizamos nove práticas e sete papéis que acreditamos serem essenciais para um aplicativo mobile de qualidade. Dentre as práticas estão: engenharia ágil, user experience ou experiência do usuário, growth hacking, descoberta de produto e cliente (product e client discovery), análise constante de métricas, Quality Assurance, governança (portfólio grooming), e cultura e organização. Os papéis necessários a um bom time mobile são: Product Owner (PO), Scrum Master, Coder ou desenvolvedor, DevOps, Growth Hacker, profissional de QA e, por fim, um profissional de User Experience (UX).

Mas não conseguimos o resultado desejado apenas com boas práticas e papéis. A engenharia utilizada tem que ter uma qualidade compatível com as ambições do nosso produto final. A plataforma deve atender a nossas necessidades técnicas de engenharia. Assim, chegamos ao que chamamos de MobileFirst, nossa plataforma aberta de automatização do ciclo de desenvolvimento. A plataforma abrange as diversas fases do ciclo: descobrir, desenvolver, integrar, testar, deployar e monitorar.

Práticas-Papéis-Plataforma

Para descobrir um time formado pelo PO, um tech lead e um UX que entendam de Product Discovery, pode-se usar o Backend as a Service, como o Parse, além do canvas, opportunity assessments e conselho de clientes como ferramentas para criar protótipos de alta fidelidade e validar o produto. Para desenvolver, fazer integração contínua e testar, usamos ferramentas como Jenkins, Maven, Bots, Cocoapods, Junit, Specta, Cucumber, Calabash, entre outras. Na hora de monitorar, Newrelic, Crashlytics, Google Analytics, Tag Manager e Jmeter são bons aliados. No próximo artigo, vamos detalhar um pouco mais de cada uma dessas ferramentas, analisando em qual parte do desenvolvimento cada uma delas entra.

Ainda utilizamos o TestCloud, responsável por nossos testes automatizados em múltiplos emuladores e devices na nuvem. Por fim, faz parte da nossa plataforma também o braço de Growth Hacking, que envolve iniciativas de marketing, engenharia de produto e análises e testes, e o Centro de Excelência Mobile, que cuida para que a qualidade em todos os devices seja garantida por meio de testes contínuos.

Com todo esse aparato, acreditamos que a chance de sucesso de um aplicativo aumenta consideravelmente. É claro que desenvolvimento ágil, ainda mais mobile, é um constante aprendizado e a cada dia surgem novas ferramentas e formatos, bem como novidades de nossos gatekeepers. Nossa intenção é nos manter sempre à frente e buscar as coisas novas antes mesmo que elas apareçam.

O que acha dessa estratégia? Como funciona na sua empresa? Alguma dúvida ou sugestão? Só deixar aqui embaixo nos comentários! Até a próxima.