
Muito já se sabe sobre Dodo Pizza. Os negócios da empresa estão entrelaçados com uma rede de serviços tecnológicos, eles escreveram um livro sobre sua história, a pilha de tecnologias e a arquitetura do sistema são pintadas diretamente no site, a alguns cliques da página principal. Eles discutem calma e abertamente até o mais desagradável falso para o público.
Tudo isso é ótimo e um toque romântico é criado - parece que por padrão o Dodo Pizza é legal de se trabalhar. Mas estávamos interessados em entender se isso é realmente verdade.
Existe abertura em excessos e armadilhas? Como as pessoas se relacionam com as câmeras abertas nas cozinhas? As tecnologias são apenas adornos de marketing? No final, enquanto os gigantes de TI pedem para os desenvolvedores um suprimento vitalício de biscoitos e cafeteiras pessoais, o Dodo promove um trabalho periódico na cozinha - para sentir a dor dos clientes e funcionários comuns.
A Dodo Pizza recebeu uma classificação média de 4,7 de seus funcionários no My Circle e uma recomendação média de 98%. A empresa é valorizada por tarefas interessantes, crescimento profissional e excelente relacionamento com os colegas.
Perguntamos a fillpackart sobre tudo isso, e Alexander Andronov, STO Dodo Pizza nos respondeu.
Por que a tecnologia de pizzarias
- Como Fedor abriu uma pizzaria tão rapidamente depois de trabalhar como caixa comum?- Não há nada complicado. Ele pegou e fez. Para isso, não são necessários preparativos e dinheiro extra.
- Mas, na minha opinião, é bastante caro.- É caro se você abrir uma pizzaria em algum lugar de Moscou, dentro do terceiro anel de transporte. Lá você precisa de 15 a 20 milhões de investimentos. E a primeira "Pizza Dodo" foi aberta nas profundezas de Syktyvkar, no porão. Não havia restaurante, funcionava apenas para entrega e o investimento era pequeno.
Isso não é nada complicado. Temos histórias em que os parceiros recolhem cartões de crédito de todos os bancos, descontam e com esse dinheiro eles constroem uma pizzaria.
Fedor Ovchinnikov, fundador da Dodo Pizza.- A ideia foi se concentrar na tecnologia imediatamente?- Sim, o desenvolvimento começou cerca de um mês após a abertura da primeira pizzaria. O próprio Fedor não é desenvolvedor - ele encontrou dois caras que leram o blog e responderam à ideia. Houve um ciclo de desenvolvimento muito curto para colocar tudo imediatamente em produção. Isso o subornou e eles começaram a trabalhar juntos.
- Quando as pessoas são atraídas para a tecnologia, a indústria de alimentos e os negócios de restaurantes, muitas vezes estão longe da vanguarda entre seus interesses. Por que pizza?- Pizza é um produto bastante simples e compreensível. Onde quer que você esteja, em qualquer país, diga a palavra "pizza" e todos saberão o que é. Este é um produto bem preparado do ponto de vista comercial. Está claro como fazê-lo, há muitas experiências de outras empresas, muitos modelos de desenvolvimento. Apenas pegue e faça.
Mas a ênfase na tecnologia começa a gerar lucro, não quando você tem uma ou duas pizzarias, mas quando haverá milhares delas. Em seguida, você pode criar personalização, gerenciar uma rede de pizzarias online, descobrir instantaneamente o que deu errado e corrigi-lo.
- Então, você ainda não obtém lucro com a tecnologia?Falando globalmente, o lucro está apenas começando a surgir. Por exemplo, consolidamos todos os canais de vendas, temos um único sistema de call center. Nem o Domino nem o Papa John têm isso. Lá, você precisa acessar uma pizzaria específica que trará seu pedido.
"Mas não é assim."Isso é verdade. Eles têm apenas um pedido em um telefone comum. Mas eles ligam de uma pizzaria específica se, por exemplo, não houver ingredientes para o seu pedido. Temos o mesmo sistema, quando recebemos uma ligação para o call center, sabemos com certeza qual pizzaria atenderá o pedido, o que ele tem com o resto, correios. Todas as informações dos funcionários online.
Escritório Dodo Pizza em Syktyvkar.Ok. O que é mais importante para você - pizza ou tecnologia?- Eles são inextricáveis. Sem pizza, a tecnologia não faz sentido. Mas sem a tecnologia, simplesmente haveria outra pizzaria, e provavelmente não poderíamos escalar assim.
É a mesma coisa a perguntar: desenvolvedores ou engenheiros de controle de qualidade são mais importantes.
- (Phil fillpackart ) É claro que os desenvolvedores"Você está errado." A pergunta não pode ser respondida sem ambiguidade. Tudo depende de que horas você está. Quando tudo já está desenvolvido, quem é mais importante? Você vai chorar se não tiver engenheiros de controle de qualidade suficientes. Eles serão forçados a se tornarem desenvolvedores.
E exatamente a mesma tecnologia e pizza não existem uma sem a outra.
- As tecnologias não funcionam aqui, como uma máquina Goldberg? Meia hora, vários mecanismos operam todos os tipos de milagres, de modo que, no final, o martelo cai e esmaga uma noz.- Pode parecer à primeira vista. Às vezes, explicar aos desenvolvedores o que fazemos é um problema. A primeira reação deles: “o que existe, um site para vender pizza? 1C para configurar? "
Do ponto de vista de trabalhar com um cliente e gerenciar pizzarias - tudo isso dará lucro com o crescimento global. Nos negócios clássicos, existem fatores estritamente definidos que afetam o sucesso de cada pizzaria: o custo da mão-de-obra, o custo dos ingredientes, a receita, os custos para atrair clientes, a retenção. Você precisa manter exatamente tantos ingredientes para vender com precisão todo o menu, para que nada dê errado e não precise ser enganado.
Os custos trabalhistas estão relacionados às previsões de demanda. Se você entender que, em algumas horas, terá algumas vendas, e em outras horas - outras, poderá criar uma programação automática para que as pessoas mudem. Na maioria das vezes, é isso que está acontecendo conosco, mas estamos prevendo isso até agora no modo semi-manual. Vamos passar para a automação completa ao longo do tempo.
Os sistemas de informação estão começando a ajudar em todas as etapas, estão otimizando a tal ponto que sem a tecnologia se torna impossível.
- No caso da Zume Pizza - não é um excesso de tecnologia?Esta parece ser a primeira experiência quando um robô faz pizza. Essa indústria está no começo do desenvolvimento. Os primeiros carros também eram muito caros.
Quando a tecnologia se desenvolver ao longo do tempo, quando os robôs forem confiáveis o suficiente, quando as peças ficarem baratas (se isso acontecer), será visto. Não sei quantos anos levará para um projeto piloto. Mas sim, pode muito bem se desenvolver. Ou talvez não.
Dodo é
Alguns meses após a abertura da primeira pizzaria, o Dodo IS apareceu - o sistema de informações no qual repousa o trabalho de toda a empresa. Este é um conjunto de microsserviços coletados em uma infraestrutura. É usado por gerentes, clientes, caixas, cozinheiros, compradores misteriosos, funcionários de call center - isso é tudo.
Convencionalmente, o Dodo IS é dividido em duas partes. O primeiro é para os clientes. Isso inclui um site, um aplicativo móvel, um call center. O segundo é voltado para parceiros franqueados. Ela ajuda a gerenciar pizzarias. Através do sistema, passa faturas de fornecedores, gerenciamento de pessoal, turno de pessoal, folha de pagamento automática, treinamento on-line para pessoal, certificação de gerentes, sistema de controle de qualidade e compradores misteriosos.
Ou seja, é um grande sistema da escuridão de ferramentas e serviços completamente diferentes. À medida que o sistema cresceu e se desenvolveu junto com a rede Dodo, é difícil acreditar que sua arquitetura tenha resistido a todos os desafios do dimensionamento.
- (Phil) O sistema é complicado. Houve muitos erros de cálculo na arquitetura feitos desde o início?Tudo começou com um monólito. Agora chegamos ao fato de que devemos vê-lo gradualmente, ele não suporta a carga.
Em geral, essa é uma questão complexa e dupla. Você nunca sabe o que teria acontecido se não tivesse permitido um erro de cálculo incorrigível no início. Então você fez algo mais rápido, trouxe para o mercado mais rapidamente, reduziu um recurso banal e nunca saberá a resposta, como as coisas teriam acontecido sem ele.
Tínhamos um site antigo da Dodo Pizza. Foi muito difícil fazer alterações nele, e duas opções apareceram - desenvolver evolucionariamente a existente ou reconstruir sua arquitetura. Como resultado, o site foi completamente jogado fora e um novo foi escrito. Na semana passada, todos os países foram completamente transferidos para ele.
Mas não posso chamar o site antigo de erro de cálculo. Se não tivesse sido feito rapidamente, talvez a Pizza Dodo simplesmente não existisse.
Escritório Dodo Pizza em Syktyvkar.- (Phil) Ainda restam as decisões erradas que estão interferindo?- Tomamos essas decisões periodicamente e, às vezes, precisamos cortá-las. Por exemplo, tínhamos nosso próprio barramento para enviar mensagens entre diferentes sistemas. Sua segunda reencarnação terminou agora. Eles fizeram um - não deu certo, eles decidiram refazer, fizeram o segundo. Agora está tudo bem. Tudo o que nos incomoda, mudamos rapidamente.
- (Phil) Qualquer mudança nas grandes empresas leva uma eternidade. E você diz que tudo é rápido com você. Como isso é feito?Existem muitos fatores. Nosso desenvolvimento está ao alcance do cliente. Quando há um problema, é muito fácil chegarmos ao negócio e obter todas as respostas. A chave é a comunicação.
Por outro lado, se os parceiros começarem a escrever massivamente que precisam de algo assim no sistema, e se escreverem não um ou dois, mas muitos parceiros grandes, é muito provável que esse item entre no backlog muito rapidamente. Talvez até mova todas as outras tarefas e vá para o topo. Um exemplo disso foi a abertura de uma pizzaria na Bielorrússia. Essa tarefa apareceu e mudou todas as outras. Ou seja, temos um gerenciamento rápido de prioridades e existe a capacidade de mover tarefas.
- (Phil) Todo mundo diz que a comunicação é muito importante para eles, que o desenvolvimento se comunica estreitamente com os negócios. Mas, de fato, até alterar a inscrição no site leva três meses. E há mais exemplos desse tipo.Aqui, devemos fazer a pergunta por que não funciona, onde as comunicações não passam. Muito pode depender do tamanho da empresa. Se você precisar passar por vinte aprovações com gerentes diferentes e nenhum deles quiser tomar uma decisão, será lento. Nossas decisões são tomadas rapidamente.
Se houver um pedido de mudança em uma determinada direção, a pessoa simplesmente vai imediatamente ao produto, ali mesmo toma uma decisão e apenas começa a tomar.Você conversa com a pessoa e entende que ele pode alterar completamente as prioridades do aplicativo móvel.
Outro ponto está relacionado às prioridades. Talvez alterar a inscrição no site não seja tão importante quanto a maneira de lidar com as tarefas de recebimento de faturas de fornecedores. E então parece que mudar a inscrição leva três meses. Não, ela não aceita - podemos doar para ela para outras tarefas.
Escritório Dodo Pizza em Syktyvkar.- (Phil) Por que você não tem medo de assumir essa responsabilidade?Pessoas que assumem responsabilidade, ninguém vai punir. E quando você não tem medo, quando eles confiam em você, você se permite correr riscos.
Nas grandes empresas, apesar de todo mundo dizer "somos amigos", há rivalidade entre os departamentos. Para nós, qualquer um com calma aponta as deficiências, todos darão feedback, diga. Tudo é feito com o apoio da comunidade interna.
Quais tecnologias estão por trás das pizzarias
- (Phil) Em 2011, o .NET não era uma escolha óbvia. Por que você o escolheu?- Nossos caras conheciam o .NET
- (Phil) Exaustivamente. Como você mudou para o .NET Core?Todos os novos serviços são feitos no Core. Vinte e cinco por cento foram transferidos do antigo. Combinamos a transferência com o corte do monólito, e isso é feito em várias etapas. A primeira é uma chamada para o ASP.NET Core com uma estrutura completa. Lá já será mais fácil migrar para o próprio Core, mas essa ainda é uma estrutura completa que funciona no IIS. A coisa toda está separada com sua base e agora você tem instâncias fisicamente separadas. Em seguida, traduza para o .NET Core
O próximo passo, traduzimos isso para o Kestrel. E então contêineres para Coober. Mas agora, conosco, a Coober não está pronta para uma implementação completa; lançamos apenas os serviços menos críticos lá. Se algo der errado e eles caírem, nós sobreviveremos. Mas a API para dispositivos móveis ainda não pode ser inserida no Coober, ainda não estamos preparados para isso.
- (Phil) Na pilha, parece que você está especificamente tentando estar na moda. Por que você precisa disso?- Esta não é apenas uma tendência em prol da tendência. Existem dois fatores. Quando você escreve sobre novas tecnologias, é sempre mais fácil atrair pessoas, porque as pessoas querem trabalhar com coisas novas. O segundo fator é uma economia banal. Os servidores Linux são mais baratos, o Kestrel suporta mais carga do que o IIS, funciona com mais precisão nos threads.
Ou seja, a escolha da tecnologia é economicamente justificada.
Quando foi decidido criar um novo site, uma grande batalha foi organizada entre o React e o Angular. Ele foi muito longo, mas ganhou React. No back office, a história é mais triste e antiga. Ainda resta mingau de diferentes versões do Angular - havia o primeiro, o segundo e até o quarto. E entre a primeira e a segunda diferença é o céu e a terra. Se a migração do segundo para o quarto for relativamente simples, a migração do primeiro para o segundo é como descartar e reescrever tudo.
Ainda havia jQuery e ainda permanece. Mas basicamente decidimos que estamos fazendo todas as coisas novas no React. Também estamos tentando arrastar lentamente os antigos.
Gradualmente, todo o back office será coberto pelo React. Angular se foi completamente, jQuery também.
Escritório Dodo Pizza em Syktyvkar.- (Phil) Você tem JavaScript ou TypeScript?TypeScript Era mais fácil para a equipe trabalhar com a digitação estática.
- (Phil) A escolha do .NET foi estrategicamente justificada?Cada vez que me faço essa pergunta, e cada vez não sei a resposta para ela. Nada nos impede de fazer novos serviços em outra pilha. Na arquitetura de microsserviço, isso funciona bem. Naturalmente, todo o Machine Learning, por exemplo, é construído em Python.
Por outro lado, entendo que o .NET (especialmente o .NET Core) é uma tecnologia que está na hora de investir nela. Em primeiro lugar, é relativamente novo. Em segundo lugar, digamos que agora a Microsoft está pagando dívidas. Ele faz o que deveria fazer dez anos atrás, mas tudo deu errado.
E do ponto de vista da própria linguagem - C # é lindo, maravilhoso e incrível. Há uma enorme quantidade de açúcar sintático e construções claras que podem ser explicadas de uma maneira lógica normal.
Há dificuldades em procurar desenvolvedores. O setor ainda é muito negativo sobre o .NET. Provavelmente, se estivéssemos na pilha Java, haveria muito mais desenvolvedores.
- (Phil) Cite sua vaga: “e sim, não temos WCF. Nem um pouco. Por que ele não veio até você assim?Só me lembro de casos muito raros, quando uma pessoa trabalhava com o WCF não muito profundamente e estava bem. Mas eu sei - e eu me deparei na prática - quando o WCF era apenas um tiro na perna, nem mesmo de uma espingarda, mas de um lançador de granadas. O WCF é uma tecnologia incrivelmente incrível, quando você precisa oferecer suporte a vários protocolos diferentes, quando você não tem http suficiente, quando você não possui troca json REST suficiente, o WCF aparece e oferece várias opções para o que fazer.
Mas no nosso caso, é como um canhão em pardais. E é bastante complicado de configurar, o menor desleixo nas configurações - e você recebe erros do nível "em algum lugar nos modelos algo que não resistiu, vá descobrir isso".
- (Phil) Se a Microsoft desaparecer e parar de suportar sua tecnologia, quanto isso lhe custará? Tudo - sem .NET, sem Azure.- Sobre o Azure. Nossa direção global é a conteinerização na Coober e, de fato, não importa onde começa. A recuperação de emergência e a mudança para outra plataforma levam cerca de cinco horas. Do ponto de vista do sistema operacional, perderemos quatro a cinco horas de trabalho.
E se o .NET desaparecer repentinamente, os desenvolvedores não irão a lugar algum. Mudar para outra pilha, é claro, nos atrasará, mas acho que não terá um impacto significativo. Entendemos que novos serviços precisam ser feitos em outra pilha - Java, Go, Python, não importa - apenas começamos a refazer gradualmente e manter o trabalho operacional do que é agora. Talvez isso desacelere o desenvolvimento em alguns países, porque haverá menos tempo para novos.
O problema é que tudo vai desmoronar, não. Tudo continuará a funcionar, mas se desenvolverá mais lentamente. Eu não acho que outras empresas tenham isso de maneira diferente.
O que fazer no escritório, o que é remoto e como se comunicar com a empresa
- Onde é o seu escritório de desenvolvimento?- O escritório principal em Moscou. Há um escritório em Syktyvkar, um pequeno escritório em Nizhny Novgorod e várias pessoas à distância em diferentes cidades. São engenheiros, temos 57 pessoas, mas há um entendimento de que eles não são suficientes, e planejamos crescer para 250 pessoas.
Escritório Dodo Pizza em Syktyvkar.- Isso importa para você - no escritório ou remotamente?- O principal processo responsável pelo desenvolvimento de negócios é o LeSS. Isso implica que todas as pessoas devem estar localizadas em um só lugar. Mas entendemos que esse processo não será o único para nós.
Onde existe um alto grau de incerteza, por exemplo, na China, você precisa organizar experimentos após experimentos e tentar encontrar um modelo de negócios em funcionamento. E há uma equipe dedicada que faz isso. É composto por desenvolvedores em Moscou, Nizhny Novgorod e Wuhan (China).
Portanto, queremos reunir pessoas em Moscou para uma parte do trabalho, para que todas estejam fisicamente localizadas aqui, e possamos dar com segurança a outra parte às equipes remotas e até externas. Segundo estimativas gerais, 60 a 70% do trabalho será realizado em Moscou.
- O que posso dar ao controle remoto?- Por exemplo, um sistema de controle de qualidade é um projeto relacionado a um cronograma de inspeção de restaurantes. Há um baixo grau de incerteza, o processo é elaborado e você pode dar o projeto a equipes externas.
Ou agora existe o principal aplicativo móvel para pedidos, mas os profissionais de desenvolvimento móvel ainda têm alguns pedidos diferentes. Por exemplo, não faz muito tempo, estávamos produzindo uma impressora de marcação. Quando os funcionários cortam, por exemplo, tomates em uma pizzaria, eles precisam ser rotulados. O prazo de validade é de 24 horas e, depois disso, não podem mais ser utilizados.
Anteriormente, as marcações eram manuais. Você colou um adesivo, escreveu com uma caneta (caneta!) A que horas você o fez, mas eles sempre são impossíveis de ler. Isso levou a erros permanentes de marcação. E isso é um desastre.
Você vai se cansar de rotular esses tomates! E somente quando o próprio desenvolvedor for à pizzaria, ele sentirá e entenderá tudo sozinho. Fiquei muito mal quando rotulei oito Lexans de tomate. Confuso rapidamente.

Os caras do desenvolvimento móvel também foram trabalhar em uma pizzaria e sentiram toda a dor. Eles criaram uma impressora com um aplicativo móvel, que automaticamente fornece uma marcação quando a data de validade termina - basta colar e levar. A cultura da proximidade do cliente funcionou muito bem.
Mas este projeto não é a chave para a equipe de desenvolvimento móvel. Isso pode ser feito apenas em uma breve pausa entre os principais projetos. Também podemos dar essas coisas para as equipes remotas e externas.
- Como essas 57 pessoas distribuem a montanha do trabalho entre si?- Basicamente, temos equipes de recursos, ou seja, equipes que podem ocupar quase qualquer parte do sistema. Eles não têm apego a certas coisas. Costumava haver, e isso levou a problemas de falta de competências.
— , Azure, .
— ?— . , , , - , .
— -. . , ( — ) .
, , .
, . , , .
« » .— ? ., . . . , , .
— , ?— , . , , .
IT — . - .
— ?— . , . , . , — . .
, . , , , , , . — .
— , ?— - « ». , . , .
?
, . , . , « , - », , , .
, : « . , ». . , , .
— ?— . , , — , . , . , , , .
— ?— - , , , , . , , .
« » .— , ?— , . , . . , , .
, .NET. . . , — . , , , — , , «».
, — . - , , , . , , .
— () ?— . — , QA , , . .
. , . , , .
, , .
— () , , ?— , . 99% - . , , .
, . , , . , .
— , , ?— — . , . . , , .
. , «», , . , , , , .
, , : «, ». . , , -.
« » .— , ?Sim.
— , .— . , . , : « Google Facebook ». . , , . .
— ?- não.
— ?— .
— ?Claro! — , . , , , . , — . — . , .
. , .
— , , , ?— ?
— .Sim. .
— ? .— ? , «, , , ». . - , .
, . - , . . , , , .
« » .— — . ? , , , , .— , . , , - . — . - , , , .
. - , . - -. . . , , . .
, . . , , « , ». , . . .
-2. , , .
, , . , , . , — , — ?
« » .— ?- não. : « » « -» . .
. , -, , . , .
, — . , .