Por que agências fracassam como desenvolvedoras de soluções digitais e como solucionar

Com o objetivo de oferecer uma maior gama de serviços, diversas agências oferecem desenvolvimento de websites e aplicativos mobile para diversos tipos de campanhas, como por exemplo: incentivos, promoções, programas de relacionamento e fidelidade.
Os pensamentos mais comuns são:

“Vamos fazer orçamento com um freelancer, ele participa das reuniões com a gente e tudo certo”;
“Esse projeto é grande, vamos contratar a empresa XXXX! Eles fizeram um ERP muito bom, fazer esse site vai ser muito fácil para eles”;
“Nosso gerente de projeto é o atendimento da agência, o programador só tem que fazer o que o cliente quer”;
“O layout do web site, nossa equipe de criação faz”;

Nesses mais de 15 anos de mercado, já ouvi e participei de projetos nessas situações, e o resultado sempre foi ruim:
– Prazos não cumpridos
– Clientes confusos
– Web sites sem nenhuma preocupação com experiência do usuário
– Divulgação errada de resultados
– Processamento e apuração de informações realizadas de forma “manual”, aumentando MUITO a probabilidade de erros
– Desenvolvedores estressados e cometendo ainda mais erros
– Imagem da agência arranhada
E muitos outros problemas que tornam a campanha um inferno, tanto para clientes quanto para agências.

Abaixo, vou listar 5 dicas que pode te ajudar a desenvolver um projeto de tecnologia para campanhas sem transforma-lo em um pesadelo:

1) Tenha um profissional especializado em projetos que utiliza metodologias ágeis
Da fase inicial do projeto, até a entrega, esse profissional será o “dono do projeto”, entre suas principais atribuições, estão:

– Traduzir para equipe de tecnologia (ou desenvolvedor) as necessidades do projeto
– Definir tarefas a serem feitas por semana
– Acompanhar entregas do desenvolvimento
– Negociar prazos
– Discutir a necessidade de novas implementações
– Definir padrões de recebimento e envio de informações
– Aprovar “experiência do usuário”

Muito importante usar uma plataforma para organizar as tarefas, indico o Trello e o Pipefy. Com essas ferramentas é possível criar “boards” para cada fase do desenvolvimento de acordo com a metodologia ágil escolhida. Para os projetos aqui na agência, utilizamos o SCRUM e o Pipefy.

Com o SCRUM conseguimos fazer entregas semanais das soluções que estamos desenvolvendo, o que diminui a ansiedade do cliente e ainda dá tempo de fazer ajustes a tempo do lançamento da campanha.
Não caia na armadilha de colocar o atendimento da conta, ainda mais se ele ou ela não tiver experiência em desenvolvimento de soluções digitais, como o gestor do projeto! Esse erro pode ser fatal!

2) Design
O layout de um website ou aplicativo móvel, quando feito sem pensar no desenvolvimento, pode impactar bastante o prazo de entrega e a qualidade do produto.

É cada dia mais comum websites utilizarem bibliotecas de componentes prontos, que até já vem com a responsividade pronta (quando um site altera tamanhos de elementos de acordo com o dispositivo/tamanho da tela que o usuário está usando) e compatível com os navegadores mais utilizados, os mais famosos são o Bootstrap desenvolvido pelo time do Twitter e Foundation.

Uma boa dica é pedir para o seu criativo procurar referências de sites feitos com essas bibliotecas (também chamados de framework) e utiliza-las ao desenhar o layout.

3) Qual linguagem de programação utilizar?
O mercado de campanhas como promoções, incentivos e programas de relacionamento é muito dinâmico, o desenvolvimento deve ser rápido, regras de negócio podem mudar a qualquer momento e o sistema precisa mudar também.

Linguagens muito “parrudas”, para aplicações de grande porte, não são as mais indicadas, por exemplo: JAVA

Se você tem muita interação com banco de dados e processamento de informações como rankings e pontuações de programa de relacionamento, evite plataformas de CMS (contente managment system) como o WordPress.

Aqui na agência, utilizamos Ruby on Rails, linguagem utilizadas em plataformas como Airbnb, Twitter,Soundcloud, entre outros. É um framework de desenvolvimento “open source”, gratuito e utiliza uma moderna linguagem de programação chamada Ruby.

Há outras linguagens que podem ser tão ágeis quanto o Ruby on Rails, por exemplo: Phyton e o ASP.net MVC.

4) Crie modelos
Em campanhas como incentivo, relacionamento e fidelidade é normal o cliente enviar informações para a agência para fazer a primeira carga do banco de dados, atualizações de equipe e números de vendas/transações para que seja feita, por exemplo, um cálculo de pontuação ou um ranking.

Campanhas tem seu banco de dados alimentados, na maioria das vezes, por relatórios utilizados pelo departamento de marketing ou vendas, extraídos de um sistemas de Bussiness Intelligence (BI) e depois exportados para excel ou CSV. Eles não foram criados com o objetivo de alimentar banco de dados, e sim, para desenvolver análise de dados e acompanhar performances.

Por isso a importância de criar um arquivo modelo (excel ou texto)!
É muito complicado, para a agência, fazer operações em arquivos do cliente, pois além de ser manual (com muita probabilidade de cometer erros), não há um domínio completo da informação.
Com um modelo, você informa o cliente o que você precisa e ele, com as informações disponível, inclui os dados necessários nesse arquivo.

Aí alguma pessoa mais técnica pode falar: ahh isso é fácil, só fazer um integração via web-service.
Sem dúvida, é o mais fácil e o ideal! Porém, muitas das campanhas precisam ser desenvolvidas de forma rápida e não há tempo para os longos prazos dados pelas equipes de TI das empresas.

5) Cuidado com os prazos
A maioria dos profissionais de TI não está preparada para as mudanças rápidas e inclusão de funcionalidades que o mercado de programas de incentivo, fidelidade e relacionamento precisa nos projetos de software.

É necessário criatividade e agilidade, mas sem perder ou comprometer a qualidade.

Por isso, construa uma “Lista de complexidade” junto com o(s) seu(s) desenvolvedores e compartilhe com o cliente. Toda alteração ou construção de nova funcionalidade, será avaliada utilizando a “Lista de complexidade”, que precisa ter uma descrição das dificuldades e horas necessárias para desenvolvimento e teste.
Dessa forma você mantém a equipe a menores níveis de estresse e o cliente ciente de prazo e custos.