LONDRES — “Precisamos de dados para potencializar boas experiências de desenvolvedor.”
Foi assim que Jonas Druedhahl Rask, diretor de experiência de desenvolvedor e mestre selecionador de tijolos da Lego, iniciou sua palestra na DevOps Conference, junto com Waqas Ali, colega mestre selecionador de tijolos e líder de entrega de engenharia para a plataforma de desenvolvedor.
A Lego não é apenas uma oferta de destaque na maioria dos eventos de tecnologia, mas também é uma empresa de tecnologia influente, conhecida por sua inovação. Aproveitando uma estrutura de dados canônica e o Backstage, a equipe de engenharia da plataforma Lego agora está usando muito sourcing interno e feedback contínuo para construir uma plataforma interna de desenvolvedor por desenvolvedores para desenvolvedores. Veja como.
A nova jornada do desenvolvedor
O trabalho da equipe da plataforma Lego é baseado na persona do desenvolvedor “Emma”. Druedhahl Rask e Ali orientaram o público sobre a integração de Emma.
Como todo novato, a primeira tarefa de Emma é elaborar as pessoas, os processos e as ferramentas complexas da organização liderada pelo produto. Isso inclui descoberta de API e como criar e atualizar documentação.
“Tudo isso também traz alguns desafios: ser novo e tentar entender como a empresa funciona, qual é essa estrutura para a organização?” Ali disse. “Então ela também precisa encontrar as ferramentas certas para fazer o trabalho. E ela gostaria de identificar outras equipes com as quais possa trabalhar.”
O Grupo Lego está organizado em equipes de produtos orientadas por domínio e alinhadas ao fluxo, apoiadas horizontalmente por uma equipe de engenharia de plataforma e uma série de equipes de capacitação. Cada equipe alinhada ao fluxo é responsável por um produto digital e é composta por uma equipe de DevOps de longa data responsável por seu desenvolvimento. Emma está integrando uma dessas equipes de produto.
Desde o primeiro dia, Emma precisa de acesso à nuvem para implantar na nuvem. No início da jornada de engenharia da plataforma Lego, ela teria que entrar em contato com a equipe de capacitação da nuvem, conversar por e-mail e preencher alguns formulários, e levaria quase uma semana para conseguir uma conta na nuvem.
Por que tão demorado? Druedhahl Rask agrupou os desafios de integração em:
Descoberta. Como ele disse: “Você precisa conhecer alguém que conheça alguém que saiba aonde ir para fazer as coisas”.
Automação. Muitas pessoas envolvidas e pouca automação, aumentando o lead time.
Propriedade. Quando os indivíduos estão vinculados a ativos de TI, é mais difícil determinar a propriedade.
Acrescente a isso, se alguém quisesse mudar para outra equipe de produto, teria levado consigo seus recursos de nuvem e ativos de TI, o que às vezes, disse ele, causaria tanto caos que alguns desenvolvedores decidiram deixar a empresa completamente.
Uma chave para o sucesso: modelagem de dados supergráficos
A solução da Lego é um modelo de dados canônico que abrange todo o cenário tecnológico da Lego e permite:
Descoberta.
Interação.
Propriedade.
“É importante neste modelo capturarmos as entidades certas que nos permitirão fazer esta descoberta dos diferentes recursos e ativos de TI”, disse Druedhahl Rask.
Por exemplo, ele disse: “Para potencializar os esforços de automação, você precisa ser capaz de interagir com as diferentes entidades neste modelo”, como as equipes de produto serem capazes de provisionar e gerenciar contas na nuvem, enquanto a equipe de capacitação na nuvem pode adotar FinOps, por medir o custo em todas as contas de nuvem por produto.
Este modelo de dados canônico – que é mapeado como uma web interconectada – permite muita descoberta, disse Druedhahl Rask, ao mesmo tempo que mantém a propriedade.
Mas não foi suficiente na escala da Lego.
“Se você quiser usá-lo para algo real, você também precisa disponibilizá-lo”, disse ele. “Portanto, estamos democratizando o acesso a todos os dados dentro do modelo por meio da API que os habilita.”
A API é o padrão que surgiu sobre como os desenvolvedores preferem acessar e estender uma plataforma interna de desenvolvedor.
Em seguida, a equipe da plataforma Lego adotou a arquitetura e o modelo de operação do supergráfico, citando inspiração na Netflix e na Volvo. A equipe usa uma API GraphQL com uma federação de esquema para unir um esquema comum, que está por trás de uma camada de composição abstrata – como um portal interno do desenvolvedor – para descoberta de produtos e serviços. Abaixo, um subgráfico se ramifica para o modelo de dados de cada produto.
“Ele fornece um esquema que é válido para aquela entidade, e há essa proteção que cada entidade deve combinar com (um) produto, direta ou indiretamente, então temos sempre essa rastreabilidade até um produto”, disse Druedhahl Rask. O esquema e a proteção são criados e gerenciados pelo proprietário dos dados locais, que é sempre uma equipe de produto ou de capacitação.
Este modelo de dados canônico torna-se gramatical com a estrutura de assunto, objeto e predicado para criar relacionamentos pesquisáveis em todo o modelo. Um funcionário (sujeito) pode ter múltiplas relações com um produtos (objeto), como é um desenvolvedor em ou é engenheiro-chefe em (predicado). Isso torna a experiência do desenvolvedor mais pesquisável.
Em vez de vincular esses dados e produtos a indivíduos, agora os dados e as pessoas estão vinculados a produtos, que passam a ser propriedade de uma equipe. Quando você acessa um produto, você obtém uma visão holística do que ele trata:
Domínio.
Subdomínio.
Contas de nuvem conectadas.
Todos que trabalham nisso.
Todas as aplicações que o produto possui.
Todas as APIs de produção.
Documentação.
“Está tudo conectado com o produto, não com as pessoas”, disse Ali, que está integrado a um produto e pode ser transferido de lá. “E isso está disponível para todos, todos os engenheiros.”
Lego adota a placa de base
O desenvolvedor médio de produtos não está ciente de que tudo isso está acontecendo – embora tudo esteja visível para todos.
Em vez disso, a equipe da plataforma construiu o Baseplate – após a base para a maioria das construções de Lego – uma plataforma interna de desenvolvedor construída sobre o Backstage, a popular plataforma de código aberto para a construção de portais de desenvolvedores.
A equipe pega os dados do subgráfico e os transforma em um catálogo de produtos dentro da plataforma, disse Ali.
Neste ponto, Emma, a persona desenvolvedora da Lego, precisa descobrir como trabalhar com outras equipes:
O que ela pode fazer para tornar sua vida mais fácil?
Existem outras equipes que estão fazendo coisas semelhantes?
Em vez de criar uma API do zero, Emma analisa o que já está disponível. Ele pode pesquisar na plataforma interna do desenvolvedor Baseplate todas as APIs em produção. Ela pode descobrir informações sobre cada API, conectar-se a ela automaticamente, descobrir qual equipe de produto é proprietária e encontrar qualquer documentação centralizada.
Não há mais um ser humano responsável por aprovar o acesso aos ativos em produção. A reutilização entre organizações é desbloqueada.
Desde o primeiro dia, Emma pode contribuir com essa documentação, que é enviada por meio de pull request para qualquer equipe que possua o produto. Ela também pode criar modelos de software Backstage, plug-ins e documentação.
Fornecimento interno com plug-ins Backstage
Aproveitando o modelo de plug-in Backstage, a Lego adota uma cultura de sourcing interno, convidando qualquer desenvolvedor a contribuir para a construção no Baseplate.
A equipe da plataforma Lego criou um modelo de plug-in para permitir que as equipes construíssem e contribuíssem com seus próprios plug-ins do Backstage para aumentar o autoatendimento da plataforma.
A equipe previu o obstáculo comum que o Backstage usa TypeScript, no qual poucos desenvolvedores de Lego são fluentes. Para melhorar isso, eles realizam hackathons internos de dois dias, onde a equipe da plataforma se integra à integração da equipe de capacitação ou de produto no Baseplate. As equipes podem construir o que quiserem para ajudar a tornar o Baseplate mais útil e mais rápido, e a equipe da plataforma ajuda a preencher a lacuna na linguagem de programação.
As equipes de plataforma e capacitação em nuvem realizaram um hackathon para construir um plug-in de nuvem para criar uma experiência de autoatendimento no Baseplate para ajudar os desenvolvedores a solicitar e configurar uma conta na nuvem – reduzindo esse tempo de cerca de três dias para cerca de três minutos. Juntas, essas equipes também conseguiram criar plug-ins FinOps, removendo a propriedade da conta das pessoas e anexando-a a um produto.
“Os ganhos de valor com isso são tremendos”, disse Ali, com uma redução de 95% nas horas de desenvolvedor gastas na configuração de contas na nuvem, e 99% das contas na nuvem agora conectadas a produtos, levando ao fim de contas órfãs. A propriedade é clara para todos.
Outros plug-ins do Backstage de origem interna incluem aqueles que promovem o autoatendimento em torno de documentação, APIs, GitHub, aprendizagem e desenvolvimento e produtos de IA.
Como medir a experiência do desenvolvedor
“Toda essa experiência conectada e integrada que estamos fornecendo também está removendo essa carga cognitiva de nossos engenheiros, de que eles não precisam perguntar a alguém e encontrar as informações sozinhos ou encontrar a API ou a conta na nuvem”, disse Ali. “Ou se algo estiver acontecendo, encontre o dono dessa coisa.”
A engenharia de plataforma enfatiza a construção de caminhos dourados sem atrito, para que os desenvolvedores queiram usar a plataforma – eles não são forçados a isso. Isso torna a adoção uma das formas mais comuns de medir a experiência do desenvolvedor e o sucesso da plataforma. A Lego julga isso fazendo perguntas como:
Quantos usuários estão na plataforma por X dias?
Quantos acessos de documentação em qual documentação?
Quantos produtos estão usando a plataforma?
“Olhamos para esses números todos os dias e tomamos decisões com base neles”, disse Ali. “A placa de base está sendo usada por 92% dos produtos. Isso significa que eles estão encontrando valor nisso.”
A placa de base possui atualmente:
Cerca de 1.300 usuários.
Mais de 60 mil acessos de documentação por mês.
Mais de 400 acessos ao plugin da nuvem por mês.
Mais de 400 APIs em produção, com especificação Open API.
A equipe da plataforma usa mapas de calor entre domínios, produtos, plug-ins e muito mais para entender quem está usando, por exemplo, muita documentação e comparar com qual equipe está usando menos a plataforma.
Uma baixa taxa de adoção pode ser um sinal de que há confusão sobre o que está disponível ou como usar a plataforma. Essa equipe se torna uma prioridade para divulgação e um hackathon para garantir que os engenheiros da plataforma estejam construindo para as necessidades desse público-alvo.
A equipe da plataforma também está examinando a jornada do usuário desenvolvedor para descobrir padrões em torno da desistência do usuário, como uma equipe de produto que começa a integrar, talvez até configura uma conta na nuvem, mas não realiza a próxima etapa de adicionar novas contas de usuário. . É quando a equipe da plataforma entra em contato com os usuários para obter feedback, descobrindo bugs e preenchendo lacunas de recursos ao longo do caminho.
“O feedback é uma parte muito central da nossa plataforma”, disse Ali, incluindo conversas contínuas e canais dedicados do Slack. “Estamos realizando sessões comunitárias na empresa onde qualquer pessoa pode participar, fazer perguntas e nós mostramos, inspirados no próprio Backstage.”
A equipe da plataforma também coleta feedback baseado no contexto, onde as pessoas podem fornecer feedback sobre recursos específicos do Baseplate, que vai diretamente para o plugin ou proprietário do produto.
“Veremos isso”, disse Ali sobre a equipe da plataforma, “mas também estamos conectando nossos usuários com os engenheiros responsáveis pela plataforma”.
YOUTUBE.COM/THENEWSTACK
A tecnologia avança rápido, não perca um episódio. Inscreva-se em nosso canal no YouTube para transmitir todos os nossos podcasts, entrevistas, demonstrações e muito mais.
SE INSCREVER
Jennifer Riggins é contadora de histórias de tecnologia, jornalista, escritora e apresentadora de eventos e podcasts, ajudando a compartilhar histórias onde cultura e tecnologia colidem e a traduzir o impacto da tecnologia que estamos construindo. Ela tem sido…
Este site utiliza cookies para melhorar sua experiência de navegação. Ao continuar, você concorda com o uso de cookies. Para mais informações, consulte nossa Política de Privacidade.
Funcional
Sempre ativo
O armazenamento ou acesso técnico é estritamente necessário para a finalidade legítima de permitir a utilização de um serviço específico explicitamente solicitado pelo assinante ou utilizador, ou com a finalidade exclusiva de efetuar a transmissão de uma comunicação através de uma rede de comunicações eletrónicas.
Preferências
O armazenamento ou acesso técnico é necessário para o propósito legítimo de armazenar preferências que não são solicitadas pelo assinante ou usuário.
Estatísticas
O armazenamento ou acesso técnico que é usado exclusivamente para fins estatísticos.O armazenamento técnico ou acesso que é usado exclusivamente para fins estatísticos anônimos. Sem uma intimação, conformidade voluntária por parte de seu provedor de serviços de Internet ou registros adicionais de terceiros, as informações armazenadas ou recuperadas apenas para esse fim geralmente não podem ser usadas para identificá-lo.
Marketing
O armazenamento ou acesso técnico é necessário para criar perfis de usuário para enviar publicidade ou para rastrear o usuário em um site ou em vários sites para fins de marketing semelhantes.