Desafio aceito ou que tarefas os engenheiros da Lamoda resolvem

No comércio eletrônico, vêm de várias áreas: fintech, desenvolvimento de software, telecomunicações. E eles descobrem rapidamente que aqui também é muito chato. Conversamos com representantes de várias áreas do departamento de TI sobre desafios profissionais inesperados, tarefas de trabalho e pontos de crescimento.

imagem

Drive, buzz e feedback rápido


imagemMeu nome é Alexander Afenov, sou o chefe de desenvolvimento do departamento comercial, me chamo Timlid Timlid. Antes de ingressar na Lamoda, ele esteve envolvido no desenvolvimento de terceirização para operadoras de telefonia móvel. Por 4,5 anos em Lamoda, passei de um desenvolvedor intermediário para o chefe do departamento.

Como esse crescimento foi organizado?

O processo de integração é projetado para que, durante o período de avaliação, os desenvolvedores implementem novos recursos (e às vezes até projetos inteiros) na produção. As tarefas e os objetivos do teste são selecionados de acordo com o grau e as características do novo funcionário e, mesmo após os três primeiros meses, eles continuam aprendendo e mergulhando nos negócios e nas especificidades dos sistemas de TI: através de autotestes, eles mostram o curso dos processos de negócios, na revisão de código compartilham o básico da cultura de desenvolvimento interno , explique quais partes dos projetos podem ser refatoradas e o que em breve será trazido para novos serviços. No entanto, um entendimento verdadeiramente profundo da operação do sistema não aparece imediatamente. Para isso, na minha opinião, precisamos trabalhar cerca de um ano.

Para se acostumar com isso mais rapidamente e sentir tudo com as mãos, e também para a rotação do conhecimento nas equipes, há uma chamada de suporte (aqui estava o meu grande relatório no Teamleadconf ). Dentro de uma semana, um dos engenheiros resolve os problemas que circulam pelo sistema e, quando as tarefas prioritárias terminam, ele os retira do backlog técnico.

Para os corajosos e desesperados, e aqueles que querem manter o sistema, há turnos da noite. Este é um desafio interessante para quem quer bombear rapidamente. À noite, você pode realmente entrar em um relacionamento próximo com o sistema, porque parte dos processos de negócios ocorre durante horas estritamente fora do horário comercial.

Por exemplo, sento-me durante o dia e programo alguma coisa, libera o rolo e está tudo bem, depois entro em serviço e no final da noite vejo que as mercadorias estão sendo recebidas em um dos armazéns de transporte público e, devido a um erro no sistema de TI, algo destruindo um processo de negócios. Na prática, acontece assim: vários representantes de vendas estão sentados em um armazém, não podem terminar o dia de trabalho e voltar para casa. Neste momento, você pode e deve sentir suas mãos no processo comercial, reparar, ajudar e entender como tudo funciona. E outras vezes você não encontra isso e não precisa enfrentá-lo por anos. Combinado com motivação financeira e motivação - é muito legal.

E agora?

Agora eu tenho uma tarefa de gerenciamento global - reunir e unificar todas as equipes que trabalham com funções comerciais. Resolveremos isso de duas maneiras: através da rotação de tarefas entre equipes e do envolvimento de nossos “lobos lobos” - arquitetos de sistemas, que também monitorarão as conexões horizontais dentro e entre as equipes. Para que cada equipe se torne independente, às vezes você precisa desenvolver os caras e dar a eles tarefas diferentes e a oportunidade de aprender novas tecnologias: às vezes, os desenvolvedores de PHP se conectam a projetos em Java e Go. Desde 2018, todos na minha área trabalham com Kafka, que se tornou uma parte importante de nossa infraestrutura, tecnologia geralmente aceita e uma das maneiras mais populares de trocar dados entre sistemas. (Aqui está um relatório sobre como fazemos)

Todos os desenvolvedores e outros membros da equipe não devem apenas cortar algo no canto, mas também entender o que os vizinhos estão fazendo. Queremos que eles toquem os sistemas de outras pessoas com suas próprias mãos: no futuro, isso tornará as equipes mais independentes e permitirá que eles se deparem com os sistemas necessários para resolver o problema de negócios.

O que surpreendeu você quando veio ao e-com?

Em Lamoda, a comunicação com um cliente e como as ações de TI afetam a vida das pessoas e sua experiência real vieram à tona. Aqui, eles não estão interessados ​​no benefício do momento, mas na lealdade a longo prazo. Queremos que nosso produto seja usado regularmente. A principal especificidade do desenvolvimento é a necessidade de responder rapidamente aos problemas. Por exemplo, algo se rompeu em nós e, no momento da entrega das mercadorias, existe uma pessoa viva e não pode pagar por seu casaco.

Vemos quando, devido a nossos erros, as pessoas no armazém e na entrega sofrem. E nos alegramos com nossos clientes, por exemplo, quando redesenhamos completamente o processo de processamento de pagamentos e lançamos Gift Cards, que todos estavam esperando.

Refaça tudo do zero


imagemSou Alexandra Kamzeeva - eu trabalhava em integração de sistemas, há três anos e meio atrás comecei a trabalhar como analista de sistemas na Lamoda.

Por que preciso de um analista em desenvolvimento?

Esta é a primeira pergunta de muitos desenvolvedores. Mas então, quando trabalham com um bom analista de sistemas, eles experimentam e são solicitados a chamar analistas para cada projeto. Os desenvolvedores não se dedicam às complexidades dos processos de negócios e, sem esse conhecimento, é difícil criar uma solução ideal para os negócios. Um analista é necessário para fazer um estudo detalhado antes do início do desenvolvimento, fazer perguntas, obter respostas e levar tudo em consideração na especificação compilada. Isso minimiza o número de iterações e erros e economiza tempo e nervos aos desenvolvedores.

Qual foi o seu primeiro grande desafio de comércio eletrônico?

Meu desafio mais global e interessante até agora é um novo sistema para automatizar o processo de devolução de dinheiro no cartão de um cliente. Essa foi uma das fraquezas do nosso sistema, que foi escrita quando a Lamoda era uma startup. Havia muitas operações manuais que aumentavam o risco de erros. Começamos a pensar em abordagens para mudar esse sistema e depois houve um “chute mágico” do estado: a Lei Federal nº 54 foi adotada. De acordo com essa lei, todas as empresas que oferecem bens e serviços a indivíduos devem transferir dados de vendas para a administração tributária por meio do OFD (operador de dados fiscais), indicando o que venderam, quando e através de quais intermediários. Tudo isso está impresso no cheque. Funciona na direção oposta: além de informações sobre o que é vendido, você precisa transferir para o qual o dinheiro é devolvido e imprimir o cheque.

Dividimos o projeto em 7 fases, o que nos permitiu focar em um recurso específico em cada fase e liberá-los no produto, um após o outro. Como resultado, automatizamos tudo automaticamente para devolver os dados corretos ao imposto sem correções manuais desnecessárias.

Não apenas um artista, mas também um co-autor


imagemMeu nome é Igor Grammatchikov e entrei para a equipe de desenvolvimento de lojas online há um ano e meio de uma grande empresa de automação de processos de negócios. Agora sou desenvolvedor front-end, faço um site da Lamoda. Antes disso, desenvolvi interfaces para sistemas de automação interna em grandes lojas de rede, onde era apenas um desenvolvimento para algum tipo de cliente abstrato. Agora sinto que esse é o meu produto e quero ser apreciado não apenas pelos usuários, mas também por mim. Eu mesmo compro regularmente na Lamoda, todos os meus colegas e amigos a usam e, às vezes, nós mesmos vemos batentes que podemos consertar.

As tarefas são diferentes. Por exemplo, tive a tarefa de criar uma cesta suspensa no site para que funcionasse em todas as páginas que já foram reescritas na nova estrutura vue.js e nas que permaneceram no antigo código de backbone.js, jquery. Por mais de um mês, estive acumulando essa tarefa e tive muitos problemas. Mas, no final, depois de muita deliberação conjunta, desenvolvemos um método, aperfeiçoamos e agora todos podem usá-lo com facilidade e simplicidade.

Não estamos lidando apenas com questões de massa. Recentemente, lutamos com um bug específico que ocorreu apenas para um usuário. Nos meus trabalhos anteriores, todo mundo teria simplesmente apresentado uma explicação educada e pontuado, mas aqui consertamos tudo o que não funciona como deveria.

É a primeira vez que trabalho realmente com agilidade: temos stand-ups diários, muitas reuniões com o gerente e o designer. E o desenvolvedor não é apenas um artista, ele também é um co-autor. Em todas as reuniões, eles realmente ouvem a minha opinião, e não apenas - escrevem e vão serrar. Você diz que não vai funcionar, vamos refazê-lo? E a equipe começa a pensar o melhor.

Feedback do usuário e revisão de código como drivers de desenvolvimento


imagemSou Viktor Barsukov - o desenvolvedor de uma das equipes de automação de armazém. Trabalho na equipe há seis meses e, antes disso, trabalhei na fintech e no operador de dados fiscais. Nós nos comunicamos constantemente com os funcionários do armazém - usuários de nossos sistemas que nos fornecem feedback de qualidade. Na fintech, isso não foi - escrevemos e esquecemos. E então é testado por alguém, implantado por alguém. O fato de nos comunicarmos com nossos usuários diretos todos os dias, e a revisão do código rígido me motiva muito para um maior desenvolvimento. Temos um slogan direto: os caras fazem uma revisão de código um do outro! Para que a tarefa avance, dois engenheiros e um dos líderes de equipe devem analisá-la. Essa é uma prática muito interessante: além de stand-ups, revisões e flashbacks, você pode ver uma alteração no código ao vivo. Portanto, a imagem geral do desenvolvimento aparece.

Quais processos de negócios você automatiza?

Há muitas tarefas no trabalho de automação de armazém: trabalhar com o fornecimento de mercadorias, colocar mercadorias nas prateleiras, gerenciar a classificação, a embalagem e a coleta de pedidos. Também há interação com os funcionários do armazém: desde a contagem de KPIs até a escolha da rota ideal para a movimentação entre prateleiras.

Temos pequenas tarefas e são semelhantes a uma história de detetive, quando você olha os registros, onde e quando as coisas deram errado. Isso é empolgante. Agora estamos resolvendo um problema global - mudar de Java para Kotlin em um aplicativo Android, isso dará mais oportunidades do ponto de vista do desenvolvimento.

Qual é o maior desafio comercial que você está resolvendo agora?

Agora, a equipe de desenvolvimento do armazém está implementando outro projeto importante - o Warehouse-2. Anteriormente, trabalhamos com um armazém físico e a conexão do segundo exigirá grandes mudanças em todos os processos de negócios e, portanto, nos sistemas que os automatizam. A segunda unidade no início será semelhante à primeira (sobre a primeira que escrevemos um artigo separado ). Porém, no futuro, o segundo armazém será maior e o nível de automação dos processos de negócios será mais alto e mais moderno.

Uma das tarefas é sincronizar dados entre sistemas futuros para que os dados entre eles não sejam duplicados e não entrem em conflito.

Eu configurei o barramento de comunicação com base na estrutura Camel. Na verdade, essa foi minha primeira experiência com o Camel; portanto, a tarefa não era apenas refinar as rotas levando em consideração o segundo armazém, mas também lidar com a própria estrutura.

Axapta por três meses


imagemSou Elizaveta Naumenko e, há um ano, trabalho na equipe de suporte e desenvolvimento do departamento de ERP (Enterprise Resource Planning) como consultor de suporte. Nosso departamento está envolvido na automação de todos os relatórios financeiros, contabilidade e distribuição.

O sistema é construído principalmente em Axapta e um pouco de 1C. O Axapta interage com dezenas de nossos sistemas internos, pois é a fonte de dados mestre em compras e finanças. O Axapta é constantemente acessado por nossas outras plataformas, portanto há muita integração e suporte.

O principal desafio para mim foi uma imersão rápida no processo, tive que aprender e me desenvolver muito rapidamente. Nos três meses do período de teste, aprendi como nossos processos funcionam no Axapta. Eu senti que estava recebendo outro ensino superior (mais sobre como compartilhamos conhecimento dentro da equipe aqui ).

Qual é a parte mais difícil do seu trabalho?

A parte mais difícil são as tarefas urgentes de suporte. De acordo com o SLA, existem literalmente algumas horas para resolver erros críticos. Também existem tarefas complexas que podem ser ampliadas porque é necessária uma análise mais profunda. Se você não consegue lidar sozinho, posso ir ao meu supervisor e pedir ajuda. Chega mesmo a abordar o chefe de desenvolvimento do ERP e diz que não sei o que fazer e como resolver o problema. E isso é bastante encorajado, porque todos entendemos que, se o erro não for corrigido a tempo, é possível uma situação de parada para os negócios, e isso é crítico para a equipe, pois esse é o dinheiro da empresa. Se isso aconteceu, certamente haverá uma análise retrospectiva do incidente: o que fazer e como evitar erros na próxima vez.

Diversidade tecnológica: zoológico, mas contato


imagemSou Timur Nurutdinov, sou responsável por todo o desenvolvimento em Lamoda. Do meu ponto de vista, temos um grande e-com com um grande número de processos, nos quais muitas pessoas trabalham, e ainda mais pessoas usam nossos serviços. Para que tudo isso funcione, usamos quase todas as tecnologias modernas, pois precisamos resolver quase todos os possíveis problemas de TI. Nosso radar técnico tem um zoológico real, mas é um contato, você pode tentar de tudo. Obviamente, temos menos desenvolvimento interno do que os gigantes de TI, mas tarefas e projetos não são mais fáceis que os deles.

E o que você mais gosta no seu trabalho?

O departamento de TI da Lamoda possui muitos usuários: clientes, clientes comerciais, funcionários da empresa. E para mim é um prazer especial ver o resultado do nosso trabalho - quando resolvemos rapidamente os problemas deles. Fiz um relatório completo sobre isso no HL ++ 2019, onde contei detalhadamente quais outros desafios a indústria de comércio eletrônico representa para um engenheiro e por que gostamos disso.


All Articles