Concrete Logo
Hamburger button

5 itens para agilizar as mudanças do seu e-Commerce

  • Blog
  • 16 de Outubro de 2015
Share

Para quem não conhece ou nunca trabalhou em um ambiente operacional de e-commerce, saiba que tudo funciona à beira do caos. Alguns varejos mantêm um grande painel visível a todos com metas comerciais diárias e mensais e, dependendo da cor dos números (verde ou vermelha), o caos começa a se manifestar. Parece um cenário de batalha com discussões atravessadas e emboladas com outras, todos falando ao mesmo tempo mas um querendo falar mais alto que o outro. O fato é que decisões são tomadas a qualquer momento e toda a cadeia operacional precisa estar preparada para que a mudança chegue até o cliente. Ações de diversos setores são executadas ao mesmo tempo e, em conjunto, conseguem levar alternativas ao consumidor para que se gere o resultado esperado. Acredite, é comum que isso aconteça em um ambiente que envolve um negócio altamente competitivo, e não digo que isso é necessariamente ruim, mas também não precisa ser caótico.

Com abrangência geográfica muitas vezes nacional e sem hora para fechar as portas, agilidade é a alma do negócio em um e-Commerce. Por isso, elenco 5 itens que julgo fundamentais para que tudo isso funcione:

1. Times além de departamentos e com senso de propriedade

Papéis 2

Em alguns lugares que trabalhei, para gerar uma campanha era preciso reunir pessoas de todos os setores por diversas vezes – demorava semanas ou meses para que as decisões fossem tomadas. Pessoas que às vezes nem tinham a autonomia para tomar decisões sobre que tipo ou alçada seria dada na solução acabam participando da decisão, o que significava muito mais tempo para implementar ou executar estas decisões.

Como em qualquer tipo de empresa, ter pessoas capazes e bem treinadas gera eficiência no motor e resultados mais expressivos. Mas pessoas com o mesmo perfil acrescentarão eficiência dentro de um departamento, não necessariamente em uma solução na ponta de destino. Por isso, é importante montar um time com pessoas de perfis diferentes, multidisciplinares, para que uma solução seja completa e ágil.

Dentro de um time de tecnologia, vejo os seguintes perfis:

Designer / UX: gerará a melhor comunicação gráfica ao público-alvo;
DevOps: garantirá que a infraestrutura suportará a nova campanha;
Front-End Developer: implementará a solução de comunicação e integrará com o back-end, no qual se encontram as regras de negócio;
Back-End Developer: implementará as regras de negócio na plataforma, caso já não exista;
Tester / QA: garantirá a qualidade na solução criada;
Scrum Master: orientará ou garantirá as boas práticas ágeis adotadas pelo time;
Product Owner: indicará ao time os itens mais importantes por meio do backlog e planejará o orçamento empregado na solução.

Entretanto, acho que o time não deve ser composto somente por perfis de tecnologia. O time de tecnologia não conseguirá iniciar sem que o negócio tenha sido explorado ou analisado. Pra isso, adicionaria mais alguns perfis:

Analista Comercial: trará informações de precificação e margem;
Analista de Marketing Digital: verificará os acessos e planejará a publicação da solução nas mídias digitais;

Alguns perfis auxiliares podem ser usados dependendo da solução, como analista de logística e de pós-venda, por exemplo.

Com esses perfis, considero que o time está completo para qualquer tipo de ação ou solução a ser empregada no seu site/produto. Lembrando que estes perfis podem estar em uma estrutura com senso de propriedade (ownership) único – como um time de canais digitais ou e-commerce.

2. Instrumentação e não só BI

Colher informações sobre vendas, conversão, público e outros fatores sobre o negócio é imprescindível. O Analista de Marketing Digital tem plenas condições de verificar tudo isso com ferramentas de analytics ou BI. As decisões geralmente se iniciam ou se baseiam em dados de negócio coletados ao longo de um período e dificilmente há uma consulta de dados sobre os recursos tecnológicos para saber qual o impacto de uma nova solução ou campanha.

Não é usual a tomada de decisões com o envolvimento de pessoas responsáveis sobre a infraestrutura da solução, pelo contrário, os DevOps só costumam saber da mudança depois que percebem um comportamento estranho nos acessos aos servidores. Vi muitas campanhas ou movimentos caírem por terra porque toda a infraestrutura não foi planejada ou dimensionada da forma correta. Exemplo disso foi o último Black Friday de 2014, quando várias lojas não suportaram o volume de acessos e toda a venda foi comprometida. Quando a solução foi dada, metade do tempo da campanha já tinha passado e muitas vendas tinham sido perdidas para a concorrência.

Mesmo com recurso de auto scaling na nuvem, existe uma configuração com limite máximo de recursos usados e, se a expectativa da campanha usar mais recursos que esse máximo, o auto scaling não servirá pra nada, pois a infra toda não suportará o volume de acessos gerados.

3. Métodos ágeis e boas práticas

Agile-Waterfall-Success-Failure-Rates

Agile-Waterfall-Success-Failure-Rates

 

A adoção de métodos ágeis é uma realidade que tem se mostrado eficiente na entrega de qualquer produto digital. Fazer com que sua operação aplique alguns conceitos aumentará em muito a agilidade.

Como exemplo pego um caso recente no qual houve a necessidade de mudar a integração de uma plataforma de e-Commerce com um novo ERP. Em maio desse ano, tivemos uma primeira conversa sobre os requisitos mas os responsáveis técnicos do ERP não tinham sido envolvidos, apenas os gestores estavam presentes. Três meses se passaram (isso mesmo, três meses!) até que uma reunião com os responsáveis técnicos foi feita. Em uma hora, tudo foi resolvido. A prática de formar um time e todos sentarem juntos para resolver um problema é um dos principais benefícios dos métodos ágeis.

Algumas outras práticas trazem vários grandes benefícios que dão agilidade na entrega de um produto digital. Destaco a definição de pronto (DoD – Definition of Done) e a reunião diária (Daily Meeting) do time. O primeiro dá clareza a quem for desenvolver sobre quais as regras e critérios de aceitação para que possa ir para produção – quem já não ficou semanas ou meses validando um desenvolvimento? Com uma definição de pronto bem feita, esse tempo de validação cai bastante. O segundo, reunião diária, costuma aumentar a produtividade do time pelo simples fato de reduzir drasticamente a ociosidade por falta de definição ou entendimento; além disso, gera uma comunicação eficiente e dá transparência aos envolvidos.

4. Plataforma moderna e desacoplada

arquitetura-desacoplada

arquitetura-desacoplada

 

Escolher uma plataforma não é um trabalho simples. Geralmente se escolhe a partir da adesão do mercado, do orçamento que se tem e do conjunto de funcionalidades casados aos requisitos de negócio. Raras foram as vezes que presenciei uma escolha por facilidade e entrega de customizações, arquitetura ou tecnologia.

Se sua operação possui algum diferencial em relação à concorrência no mercado, sua plataforma exigirá customizações que estarão presentes desde o primeiro dia de sua implantação. Se a plataforma não está preparada para facilitar o trabalho do time de desenvolvimento, o produto está fadado a morrer em curto prazo, mesmo que seja colocado em operação. O tempo exigido pelo negócio para as mudanças será sempre menor que o tempo oferecido pelo corpo técnico, e o atrito gerado por essa inconsistência levará a uma concordância final que será a troca da plataforma.

Encontrar uma plataforma SaaS pode ser uma saída se seu negócio não tem foco em varejo digital e não precisa de mudanças constantes. Muitas vezes a negociação comercial envolvida com empresas de SaaS transformam um vínculo de parceria em um vínculo de capital societário, pois a maioria é negociada por um fator sobre a receita. Definitivamente você terá muito menos preocupações sobre sua operação, mas também terá muito menos autonomia para gerar e implantar mudanças. Por isso, não recomendo a solução SaaS se você quiser adotar uma cultura ágil ao seu negócio.

Tentar encontrar no mercado uma plataforma moderna, com tecnologia e arquitetura propícias para a agilidade na entrega das customizações e do jeito como se espera é algo desafiador; geralmente se encontra algumas com tecnologias propícias, mas com arquitetura complexa. Por isso, os grandes varejistas apostam e investem em plataformas próprias, definindo sua arquitetura que geralmente recai sob um padrão de desacoplamento entre a camada de apresentação (front-end) e a camada de negócio (back-end). Esta arquitetura permite a evolução de vários canais ou pontas do seu negócio ao mesmo tempo. Mas isso só é possível porque nesta arquitetura você possuirá uma e somente uma solução com serviços (API) comuns ao seu negócio. Essa arquitetura poderá nos levar a um futuro no qual falaremos muito sobre u-Commerce (Ubiquitous Commerce – tema para um outro post)

5. Engenharia para entrega contínua

Depois que uma mudança foi implementada e todo o processo de validação foi feito, ela precisa ser implantada, ou seja, é preciso fazer um release para o ambiente de produção. O processo de implantação, para quem conhece, envolve sempre um risco altíssimo ao negócio pois pode parar a operação de seu e-Commerce.

A principal estratégia de implantação é fazer um clone do ambiente de produção como um ambiente de standby para se aplicar à mudança e, então, fazer os testes finais para depois fazer o chaveamento entre os ambientes. Teoricamente simples, mas tem uma parte bem complicada nessa história. A parte complicada é fazer o deployment da nova versão da plataforma sabendo quais os arquivos precisam ser atualizados, quais configurações precisam ser feitas, quais scripts precisam ser executados e que tudo isso seja aplicado na sequência certa. Não vejo uma equipe de infraestrutura ou produção conseguindo fazer isso sem que tenha uma documentação extensa com todos os detalhes; e é aí que costuma falhar o processo de deployment – escrever uma receita de bolo com todos os mínimos detalhes é muito difícil e mais difícil ainda é fazer com que uma pessoa execute todos os passos de forma correta. Por isso considero extremamente importante que esse processo tenha um nível de automação que facilite ou agilize a criação de um ambiente paralelo, faça a atualização dos arquivos da plataforma, atualize as variáveis de ambiente quando necessário, execute scripts de atualização no banco e faça o rollback quando alguma coisa nesse processo falhe.

Como exemplo, montamos uma automação de deployment em um cliente de e-Commerce usando alguns serviços e ferramentas de um parceiro em Cloud Computing e o retorno foi extremamente satisfatório. Nossa preocupação com deployment foi quase a zero, ficamos somente monitorando o processo para caso algo de muito ruim aconteça (e não ocorreu até hoje). Mas o que gera mais valor nisso tudo é que nosso cliente fica extremamente tranquilo e confiante quando planejamos uma nova implantação.


Sobre estes 5 itens, o que você acha? Concorda, discorda? Deixe seu comentário que exploraremos juntos esse assunto, pois é realmente um assunto bem abrangente.