Desenvolvimento

17 dez, 2015

O jeito certo de desenvolver mobile

Publicidade

Até pouco tempo atrás, os aplicativos mobile eram vistos com menos seriedade do que outras plataformas. Costumamos dizer que era comum os empresários “pedirem para o sobrinho” desenvolver o app da empresa, e talvez a explicação esteja no fato de que os smartphones ainda estavam engatinhando, e poucas pessoas tinham acesso. O “app da empresa”, então, era apenas um “a mais” e não necessário para o negócio.

Entretanto, esse cenário foi alterado de forma muito rápida e em poucos anos o que era um “plus” para a empresa, se tornou completamente essencial. Atualmente, a importância da área mobile para qualquer empresa é inegável e, por ser uma área nova, ainda estamos aprendendo aos poucos como desenvolver mobile do jeito certo. Na Concrete Solutions, onde trabalho, depois de dez anos de experiência, errando e acertando, buscando referências no Vale do Silício e apostando em tentativas e erros, chegamos a algumas práticas que, finalmente, funcionaram.

Os 4Ps

Nosso modelo de amadurecimento é baseado em 4Ps: Práticas, Papéis, Plataforma e Produto. Com base em nossa experiência, acreditamos que para desenvolver um aplicativo mobile de sucesso precisamos de, no mínimo, sete papéis que desempenhem relativamente bem nove práticas e contem com um arsenal de ferramentas que chamamos de plataforma. Tudo isso aumenta consideravelmente a chance de sucesso do produto digital.

Para detalhar um pouco mais nossa ideia, vamos começar pelas práticas. Acreditamos que, em primeiro lugar, devemos usar engenharia ágil. Não só para mobile, mas para software em geral porque é o modelo que mais funciona para entregar o produto certo no tempo certo. É preciso iterar, descobrir o produto a todo momento e ter ciclos de aprendizado rápido. Em segundo lugar, UX; porque é preciso entender a experiência do usuário para ter sucesso com um aplicativo mobile.

Descoberta de cliente e produto porque antes de começar, você precisa validar o problema que seu cliente quer resolver, o tamanho do mercado e que tipo de produto você precisa. A quarta prática é a Execução de Produto, ou BML: é preciso traduzir a visão e a estratégia em hipóteses e depois em funcionalidades, que serão colocadas no seu aplicativo, com uma visão mais geral e estratégica. Neste sentido, a aplicação dos ciclos de “Build, Measure, Learn” é muito importante.

Chamamos a quinta prática de Growth Hacking e ela é a responsável por trazer tração para seu aplicativo por meio do marketing. É nesse meio também que entram as métricas, porque toda campanha deve ser medida para que a hipótese de negócio relacionada seja validada ou não. Especificamente em mobile, a prática de QA (Quality Assurance) é ainda mais importante do que em web. Isso porque comentários negativos na app store podem prejudicar não só a quantidade de downloads do app, mas a imagem da empresa em geral. Neste sentido, todos os testes (sejam unitários, funcionais ou de integração) devem ser feitos o tempo todo e em inúmeras quantidades para garantir a qualidade.

Por fim, precisamos que a cultura e a organização da empresa estejam alinhadas com a governança. Se não eliminarmos a cultura do medo e organizarmos a estrutura das equipes, considerando conhecimento e responsabilidades, não conseguiremos fazer produtos. E o trabalho de governança, ou “portfolio grooming”, tem que ser complementado com ciclos de inspeção e comunicação na estrutura de produto da empresa e, mais acima, nos níveis de diretoria e board.

1 (1)

Essas práticas são implementadas por essencialmente sete papéis:

  • O primeiro deles é o PO (Product Owner), que tem a visão estratégica e geral do produto e organiza o backlog e o time.
  • O Scrum Master garante que o framework scrum seja aplicado corretamente e que as práticas e as regras de um time ágil estejam ocorrendo, além de remover impedimentos que o time encontre e garantir a governança adequada para o cliente.
  • O terceiro é o Devops, que pensa a infraestrutura como código. É ele o responsável por automatizar todas as partes do produto, seja em nuvem ou em algum servidor físico.
  • Um ou mais Coders, que vão efetivamente programar o aplicativo, formam o quarto papel. Eles são divididos em desenvolvedores Android, desenvolvedores iOS e desenvolvedores para Windows Phone e, em alguns casos, são responsáveis por fazer uma API restful e expor serviços.
  • Em seguida temos o profissional de QA (Quality Assurance), que como o próprio nome diz, vai garantir a qualidade do aplicativo por meio dos testes automatizados em emuladores/simuladores e devices.
  • O UX (User Experience), responsável pelo design e por garantir que a experiência do usuário seja adequada.
  • Por fim, o Growth Hacker cuida da aquisição e ativação de usuários, analisa as métricas e faz o marketing do seu aplicativo.

2

Lembrando que os sete papéis são complementares e trabalham juntos na elaboração do produto mobile. Reuniões diárias e frequentes e inspeções e validações de hipóteses geram aprendizado e agilidade para desenvolver o aplicativo certo.

Em alguns casos, mais de uma pessoa executa os mesmos papéis, ou uma pessoa executa mais de um papel, mas o importante é que todos eles sejam executados com a devida importância.

Por fim, a plataforma. Para garantir a qualidade e a funcionalidade de um app mobile é preciso contar com uma caixa grande de ferramentas tecnológicas. Somos uma empresa agnóstica, não temos preconceito com tecnologias, e sempre buscamos conhecer e utilizar as mais diversas linguagens e novidades. Também priorizamos ferramentas open source e acreditamos no poder da comunidade de desenvolvimento. Dentre as diversas ferramentas que aprendemos a usar e gostamos estão Jenkins, Maven, Bots, Cocoapods, Junit, Specta, Cucumber, Calabash, entre diversas outras. Na hora de monitorar, Newrelic, Crashlytics, Google Analytics, Tag Manager e Jmeter são bons aliados. Ainda utilizamos o TestCloud, responsável por nossos testes automatizados em múltiplos emuladores e devices na nuvem.

3 (1)

A junção de práticas, papéis e plataforma nos leva ao produto, nosso quarto P. Utilizando a nomenclatura do Vale do Silício, descobrimos que o que fazemos na Concrete Solutions é desenvolver produtos digitais de sucesso. A ideia de projeto, ligada ao waterfall, está ultrapassada. Precisamos tratar aplicativos mobile como produtos digitais, e lidar com eles de forma ágil e profissional.

Descobrir, desenvolver e gerenciar

Dividimos todo esse trabalho em três “fases”, que integram um ciclo. É importante destacar o ciclo porque, apesar de chamarmos de fases, uma não se sobrepõe à outra e todas podem acontecer simultaneamente durante o desenvolvimento de um produto. 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.

Antes de tudo é preciso descobrir o produto certo a ser desenvolvido. Afinal, nada mais frustrante do que criar um aplicativo que ninguém precisa ou quer usar. Para isso, um time formado pelo PO, um tech lead e um UX fazem o que chamamos de Product e Customer Discovery, que nada mais é do que ir a campo (get out of the building) e procurar saber se o seu produto realmente resolve um problema e se o jeito que você está resolvendo esse problema é o mais adequado.

É nessa pesquisa de campo e é nessas entrevistas que você vai validar ou não as hipóteses que criou para seu aplicativo. Nesta fase, usamos Backend as a Service, como o Parse, além do canvas, opportunity assessments e grupos de clientes de referência como ferramentas para criar protótipos, essenciais para validação.

Com as primeiras hipóteses validadas, é hora de realmente desenvolver o app. Neste momento entram os coders, o DevOps e o QA, uma vez que durante todo o período de desenvolvimento é preciso testar, de forma contínua. A integração e o deployment contínuo são bastante necessários para o desenvolvimento.

Por fim, é preciso gerenciar. Depois de descobrir o aplicativo certo a ser desenvolvido e desenvolvê-lo, é preciso instrumentar as múltiplas dimensões do produto para monitorar a qualidade de forma preventiva. Dissemos preventiva porque, se a qualidade já era importante no desenvolvimento web, para mobile chega a ser indispensável, uma vez que o lançamento de um app de má qualidade (com alto tempo de carregamento, erros, conteúdo confuso ou navegação não-intuitiva, por exemplo) pode causar não só a desinstalação do app, como prejudicar consideravelmente a reputação da sua marca.

4

Com todas essas práticas e ferramentas, acreditamos que a chance de sucesso de um aplicativo aumenta consideravelmente. É claro que a evolução dos aplicativos envolvem diversas outras questões, como a capacidade de bem avaliar a jornada do seu usuário e os “mobile momments”, ou seja, os momentos em que seu cliente olha para o celular. Entretanto, acreditamos que essas informações são a base para o desenvolvimento profissional de aplicativos.

É claro que desenvolvimento ágil, ainda mais mobile (área que evolui tão rapidamente), é assunto que exige aprendizado constante. A cada dia surgem novas ferramentas e formatos, bem como novidades de nossos gatekeepers. Nossa intenção é manter-se sempre à frente e buscar as coisas novas antes mesmo que elas apareçam.

Se você quiser saber mais, aqui tem umas referências:

E se você tiver alguma dúvida ou observação a fazer, é só deixar nos comentários!

Até a próxima.