Como conquistar um novo país em 3 semanas

Imagine uma cadeia de pizza esférica em um vácuo que quer dominar o mundo (isso nunca aconteceu, e aqui está novamente). Ela já abriu pizzarias em 13 países e pretende aumentar esse número. Há apenas um ano, o lançamento (de um site, um aplicativo e um sistema de informação) era raro - 1 país por ano, e agora o prazo foi reduzido para 3 semanas. O que nos impediu de fazer isso antes que a equipe de TI ajudasse, como nos livramos do Excel e como ele acabou ficando mais rápido, contaremos no artigo.







A Dodo Pizza é uma empresa internacional - operamos em 13 países e não pretendemos parar. A maioria das pizzarias está localizada na região da Eurásia: Rússia, Cazaquistão, Bielo-Rússia, Quirguistão, Uzbequistão. Este já é um grande negócio operacional, somos líderes em número de pizzarias. Este negócio só precisa ser apoiado e desenvolvido em profundidade, porque aqui os negócios e a TI trabalham juntos em recursos compreensíveis.



  • .

  • .

  • .

  • .

  • : , LTV .



E então (de repente) uma empresa chega e diz: “Queremos começar na Nigéria”, no mesmo 13º país onde já existem 2 pizzarias. Até 2019, o lançamento era raro - 1 país por ano. A equipe de desenvolvimento que acompanhou o lançamento estava em constante mudança. Não houve foco na aceleração com esta abordagem.



Não está claro se o novo país vai "atirar" ou não. Quem vai lançar o país? De qual produto você terá que tirar uma equipe? A equipe “sortuda” terá que se desviar de seu recurso matador, lembrar como implantar o sistema e enfrentar certas dificuldades. Vamos descobrir quais.



Dificuldades de inicialização para uma empresa



A descoberta de um novo país é uma surpresa (talvez). Às vezes, há oportunidades no empreendedorismo que simplesmente não podem ser perdidas, mesmo se você não estiver pronto. Por exemplo:



  • apareceu um parceiro forte que está pronto para assumir riscos;

  • um forte player local deixa a região;

  • o parceiro estava procurando, procurando, procurando e de repente encontrou uma premissa de sonho;

  • depois da viagem internacional de negócios, percebemos que não dava mais para adiar e que precisávamos lançar o país com urgência.



Tentamos planejar as aberturas com antecedência, mas às vezes a vida faz seus próprios ajustes.



Lançamentos únicos. Ao lançar um país por ano, não faz sentido manter uma equipe dedicada. A equipe de desenvolvimento que lançou o último país saiu para cortar outro recurso matador.



Quando é a vez de abrir um novo país, todas as listas de verificação estão desatualizadas e a equipe que lançou o último país só pode ajudar aos poucos. Não houve foco em acelerar a inicialização do sistema com esta abordagem. Lançar e ok - estaremos de volta em um ano :) 



Razfokus.Devido a lançamentos únicos, a equipe de desenvolvimento que lidará com o novo país terá que romper com os recursos matadores da Eurásia para obter benefícios duvidosos na Europa ou na África. Um novo país, a primeira pizzaria, o investimento terá retorno em 1-2 anos - muita coisa pode dar errado.



Muitos componentes, um sistema enorme e muitas conexões - não nenhum sistema de inicialização integrado e especialistas. Lançar um novo país, do ponto de vista do Dodo IS, não é apenas copiar e colar o código ou apertar um botão mágico. Este é um projeto separado com suas próprias características locais. Demora 3-4 meses para lançar (às vezes mais).



Cada país precisa de sua própria experiência, por exemplo, no sistema de fiscalização de cheques. Para integrar com sistemas locais, você precisa saber as especificações dos sistemas de endereço. Por exemplo, na Eslovênia, o sobrenome do cliente faz parte do endereço que deve ser levado em consideração no atendimento ao cliente.



Existem muitos recursos semelhantes, e certamente nossa equipe não possui todo o conhecimento sobre eles. Isso significa que vamos distrair as pessoas da outra equipe que têm experiência - vícios, por muito tempo.



Dificuldades técnicas



A Dodo Pizza foi lançada em abril de 2011. Em junho de 2011, o desenvolvimento começou no Dodo IS. Naquela época, ninguém pensava que em breve lançaríamos pizzarias em outros países, pois era necessário dar suporte rápido (muito, muito rápido) ao crescimento do negócio na Rússia. Por exemplo, o primeiro check-out de um restaurante apareceu no sistema em 2 semanas de desenvolvimento, pois sem ele era impossível abrir um restaurante na primeira pizzaria.



Não houve tempo para pensar em tudo e incluir escalabilidade e componentes independentes de país na arquitetura do sistema. A última coisa que pensamos foi que o código que estamos escrevendo agora seria usado em algum lugar na Eslovênia ou nos Estados Unidos. Portanto, ao longo dos anos de rápido crescimento, muita dívida técnica se acumulou, o que agora está retardando o lançamento.



Demora muito tempo para expandir o site e back office do Dodo IS... Você não pode simplesmente pegar e registrar um domínio para um novo país nas configurações do Nginx e implantar o sistema usando o botão. É uma pena.



Além disso, cada país tem suas especificidades. É necessário dar ao parceiro um produto que seja adequado para um determinado país, e não apenas um "IS Dodo geral". Começando com a adaptação de formatos de endereço, números de telefone, tipos de ruas e assentamentos, organizações e terminando com adaptações mais globais. Adicione a isso muitas operações manuais e copiar e colar por código: enums, configs, scripts.



Traduções para o idioma do país . Todos nós amamos o Excel: crie tabelas, pinte linhas, escreva fórmulas complexas, consulte dados de outro documento. É para isso que foi projetado.



No Excel, descarregamos linhas com termos para o parceiro, ele traduziu (sem contexto e imagens), carregamos o Excel com as traduções de volta e repetimos o exercício. Não é para isso que o Excel foi criado. Sim, e os recursos, infelizmente, não continham todos os projetos e linhas - o código teve que ser editado.





Um exemplo de arquivo com traduções.



Além disso, após o lançamento do país, novos recursos aparecem no sistema - as equipes da Eurásia não param de escrever recursos enquanto estamos lançando o país. Para esses recursos, as traduções são necessárias e novamente no Excel. Longo, caro, inconveniente. Você não pode fazer isso sem desenvolvedores.



Balcões de caixa e impostos... Check-out do restaurante e check-out da entrega são componentes do Dodo IS. Sem eles, nada pode ser vendido em um restaurante ou para entrega. O checkout precisa ser adaptado para o novo país, e o código está em um monólito e puxa muitas dependências. Acontece que, além do desenvolvimento dos negócios (impostos, taxas, requisitos para um cheque), é necessário escrever cuidadosamente a lógica do novo país, para que a impressão de cheques na Rússia não pare. 



Aplicativo móvel . Não sabíamos como lançá-lo imediatamente com a abertura do país: não havia expertise, tempo, tudo. O parceiro às vezes tinha que esperar seis meses (às vezes mais) para que lançássemos o aplicativo após a abertura do país . É desagradável. 



Nota... Existe uma aplicação para todos os países - a situação é semelhante às caixas registadoras. Ao lançar um aplicativo na Romênia, é importante não "prender" outros países.



O lançamento também é um suporte . Landing pages, sons de alerta de cozinha, erros de tradução - todos esses pequenos incômodos geralmente aparecem nos primeiros meses. Portanto, após o lançamento do país, o apoio também é importante.



Como resolvemos problemas de negócios



Estávamos nessa situação em maio de 2019. E 2020 prometia ser quente - queríamos lançar 4 países de uma vez. Eu tive que fazer algo para não estragar tudo.



Escolhemos um novo produto independente - “lançar novos países” - e definimos uma meta ambiciosa - lançar um país “no botão”. Com um botão, poderíamos:



  • implantar o sistema como está;

  • , : , , ;

  • , -, . 



Comando. O objetivo não pode ser alcançado sem uma equipe. Portanto, em maio de 2019, a equipe MyLittleCoders concordou em se tornar a equipe de descoberta do país 100% do tempo. Destacamos a abertura para um novo produto: há uma métrica de “velocidade de lançamento”, há uma equipe, a carteira de aceleração está cheia de tarefas transbordantes. Tudo veio junto - é hora de agir.





Logotipo da equipe do



Mapa de história do MyLittleCoders (MLC) . A estratégia de longo prazo é clara: acelerar, buscar pessoas, adotar competências. Foi preciso aprender a “lançar o país chave na mão” de forma independente, sem distrair as outras equipes.



Começamos com o lançamento da Nigéria, 3 meses antes da inauguração. A Nigéria se tornou um país-teste, a partir do qual eles começaram a construir sistematicamente um processo claro de lançamento. E foi assim que fizemos. 



Além de nosso objetivo principal de lançar uma pizzaria em outubro, registramos as coisas mais demoradas para voltar após o lançamento. Após o lançamento, construímos um mapa da história e, de acordo com as observações, anotamos o que leva mais tempo.





Fragmento do mapa da história do lançamento de um novo país.



Como resolvemos problemas técnicos



Assistente de configuração de país inicial. A análise do mapa da história mostrou que algumas das etapas podem ser automatizadas, o que irá acelerar significativamente o lançamento. Portanto, a primeira melhoria significativa foi o Country Wizard.



Depois de comprar um novo iPhone, as configurações do telefone antigo são transferidas com alguns cliques - 3 telas e o novo telefone está pronto para funcionar. Queríamos fazer algo semelhante para o Dodo IS.



  • Execute o assistente de inicialização do país.

  • : « ».

  • , , , .

  • ( ).

  • Next, next, next — - .


No decorrer da obra, o conceito mudou. Inicialmente, queríamos adicionar todas as configurações do sistema ao assistente Country (o produto que o RO queria e sonhou, a equipe estava contida e otimista). Mas já tínhamos um painel de administração interno, que era inútil duplicar no assistente de configuração. Então deixamos nele apenas aquele mínimo de configurações, sem as quais o sistema simplesmente não poderia ser iniciado. Produtos, menus, preços de fornecedores e embalagens podem ser ajustados posteriormente.



Por que o sistema não pode iniciar sem tantos parâmetros? Historicamente, esses parâmetros foram necessários para o desenvolvimento do Dodo IS. É uma tarefa separada para a equipe desacoplar essas dependências e torná-las opcionais para inicialização.



No final das contas, tudo deu certo. Em vez de muitos lugares onde precisamos editar algo, nós:



  • passe por 1 assistente de configuração inicial;

  • obter um novo dump do sistema;

  • nós damos para o pessoal da infraestrutura para rodar.



Dois dias (e não um mês como antes) - e o sistema está pronto para funcionar.





Um exemplo de configuração de parâmetros de entrega usando o Assistente de configuração inicial.



Lance listas de verificação. Nem sempre é possível alcançar aceleração apenas por meio do desenvolvimento e automação. As listas de verificação de inicialização são um exemplo disso. Às vezes é suficiente descrever em ordem o que e o que precisa ser feito, onde clicar, quem chutar, qual script rolar. 



Portanto, a equipe de analistas-desenvolvedores descreveu meticulosamente todo o processo. Como resultado, temos um grande documento com números e pontos: o que fazer antes do lançamento, durante e depois.





Fragmento da lista de verificação de lançamento.



Reciclar listas de verificação antigas é um processo divertido. Os desenvolvedores se revezaram percorrendo as listas de verificação com as mãos, abrindo e configurando países de teste, coletando dores e melhorando as listas de verificação. E assim várias vezes. O bônus dessa abordagem é a profunda imersão dos caras no próprio sistema.



Configurações de país de um ponto . Coletar todas as configurações do assistente País não é suficiente. É importante que o sistema e seus componentes também leiam essas configurações do mesmo repositório. Caso contrário, situações engraçadas acontecem. Por exemplo, quando o gerente do escritório mostra a moeda correta (para a Nigéria, naira), e a vitrine das peças mostra traiçoeiramente rublos. Cada serviço considerou seu dever criar suas próprias configurações. Tive de passar de 7 a 8 lugares no sistema para que todos finalmente mostrassem a moeda correta. 



Eu queria editar as configurações em um lugar e aplicá-las em todo o sistema. Na realidade, somos confrontados com a necessidade de fazer alterações em quase todos os componentes do sistema. As mudanças são pequenas, mas existem muitos componentes. 



Por meio dos esforços titânicos da equipe, 100.500 linhas de copiar e colar remoto e uma pitada de mágica de programação, o sistema agora pega as configurações de um único repositório. "Tails" ainda permanece, mas a maioria das configurações foram centralizadas. Agora você pode definir uma máscara de telefone ou formato de endereço ou outras configurações para um país inteiro em um só lugar.



Nota . A história de como cortamos o copy-paste por um longo tempo e traduzimos o sistema para usar o serviço de diretório merece um artigo técnico separado. Se estiver interessado, escreva nos comentários.



Traduções. Em vez do Excel, eu queria um sistema de localização simples e compreensível para que:



  • não havia necessidade de fazer upload de nada para arquivos de terceiros;

  • receber notificações de que uma nova linha de tradução foi adicionada;

  • ficou claro quais linhas e em quais idiomas ainda não foram traduzidos.



Procuramos serviços de localização, falamos com o suporte e optamos pelo serviço Crowdin . Simples, com diferenciação de papéis - surgiu como uma luva. Gostei especialmente do recurso de contexto: quando abrimos um site ou back office em um ambiente especial e editamos as linhas direto na interface. Assim, você pode ver imediatamente onde e o que exatamente estamos corrigindo - conveniente.





Edição no contexto do Crowdin.



Crowdin foi conectado primeiro ao back office, conectando gradualmente o monólito, depois os serviços serrados e, por fim, o site. Nem tudo funcionou de imediato, mas agora basta adicionar novas linhas de tradução para que os parceiros se possam ver e traduzir.



Chega de Excel. 


Toda a localização foi simplificada: o parceiro agora pode fazer traduções com antecedência e sem a ajuda de desenvolvedores. Então, quando estamos prontos para lançar o Dodo IS e o site, as traduções geralmente estão prontas.



Anteriormente, as traduções estavam em código - o processo de negócios de tradução era vinculado à força ao desenvolvimento e às versões. Graças ao serviço Crowdin, acabou tornando esses 2 processos independentes. Agora estamos testando todos os novos serviços, páginas de destino e, onde quer que haja algo para tradução, conecte-se diretamente ao Crowdin. Isso simplifica muito a vida e dá ao parceiro a oportunidade de fazer traduções em nosso próprio ritmo, e implantamos o sistema em nosso próprio ritmo.



Como um bônus, defina o idioma do sistema como inglês por padrão... Anteriormente, o sistema usava russo por padrão, o que não é adequado para parceiros internacionais e seus funcionários. Agora, se faltar alguma tradução no sistema, o parceiro verá os textos em inglês. Isso geralmente acontece imediatamente após o sistema ser implantado.



Qual é o resultado



Desde julho de 2019, temos feito um ótimo trabalho - construímos um sistema de lançamento e adicionamos estrutura a todo o processo . Configuramos o sistema através do wizard, o parceiro traduz as interfaces de forma independente e não depende dos desenvolvedores.



Todo o caminho de implantação de um novo país é descrito em detalhes . Agora, a viagem leva de 2 a 3 semanas, em vez de 3 meses antes. Uma semana após o início, o site e o back office estão abertos. Eles ainda não estão preenchidos com dados, mas já podem receber pedidos.



Planos



Adicione aproximadamente a mesma quantidade - tudo o que está acima não é nem metade do trabalho. Agora, um novo desafio nos espera - gradualmente, passo a passo, país a país, para melhorar este sistema. Por exemplo:



  • expandir gradualmente o "pacote de lançamento", adicionando novos recursos lá, por exemplo, "Site para trabalho em Dodo" ou "Site para clientes misteriosos";

  • adicionar suporte multilíngue no site e no aplicativo;

  • Simplifique ainda mais o Assistente de configuração inicial de país;

  • adicionar um sistema de plug-ins para caixas registradoras, a fim de atrair terceirizadores locais para desenvolver um módulo de impressão de cheques para um determinado país.


Aplicação . Desde janeiro de 2020, a equipe móvel Legionnaires (3 pessoas) se juntou a nós. Pretendemos "distribuir dívidas" - lançar o aplicativo em todos os países e aprender como lançar novos países imediatamente com o aplicativo.



Integração de checkout . Agora, esta é a fase mais longa do lançamento do país - planejamos acelerá-la. Planejamos cortar as caixas registradoras (a lógica para imprimir recibos) do monólito, movê-lo para um serviço separado e fazer uma arquitetura de plug-in lá. Desta forma, podemos envolver equipes de terceiros para desenvolver um plugin para um país específico. Por exemplo, uma empresa de terceirização na Polônia fará uma integração de caixa para a Polônia escrevendo um plugin apropriado. Isso permitirá que você acelere ainda mais.



Finalmente



Lançar o país é metade da batalha - agora você também precisa apoiar os parceiros existentes (que acabaram de se tornar mais um):



  • UK;

  • ;

  • «» «» ;

  • .



Além disso, existem muitas hipóteses, pedidos de desenvolvimento de parceiros internacionais existentes. Essas solicitações podem não ser interessantes para a Eurásia, onde o mercado já se formou, mas relevantes para a Europa, onde estamos apenas começando a crescer.



É por isso que estamos montando uma nova equipe para a região EMEA. Esta equipe irá adaptar o sistema aos mercados locais, criando a singularidade que distingue os negócios no Reino Unido dos negócios na Nigéria. Estamos à procura de desenvolvedores experientes para se juntarem à equipe. Se você está interessado em descobrir o mundo, lançar novas pizzarias no mapa e resolver tarefas não rotineiras - estamos esperando por você para se juntar à equipe. Escreva-me para d.pavlov@dodopizza.com - Terei todo o prazer em falar :)



Nota . No post, Katya Landyreva descreveu com mais detalhes o que o espera um pouco e porque é legal trabalhar em nosso produto.



All Articles