{"id":26585,"date":"2021-07-15T15:31:27","date_gmt":"2021-07-15T15:31:27","guid":{"rendered":"https:\/\/building.nu.com\/scaling-data-analytics-with-software-engineering-best-practices\/"},"modified":"2024-03-21T13:18:56","modified_gmt":"2024-03-21T13:18:56","slug":"escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software","status":"publish","type":"post","link":"https:\/\/building.nu.com\/pt-br\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\/","title":{"rendered":"Escalando a an\u00e1lise de dados com as melhores pr\u00e1ticas da engenharia de software"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u00c0 medida que a an\u00e1lise de dados se torna mais impactante, as equipes de dados crescem e os conjuntos de dados ficam mais numerosos. Isso acarreta novos desafios de colabora\u00e7\u00e3o e efici\u00eancia, assim como a qualidade e facilidade de descoberta.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No Nubank, o maior banco digital do mundo, com 40 milh\u00f5es de clientes, os dados est\u00e3o no cerne do nosso neg\u00f3cio. Eles est\u00e3o presentes nas tomadas de decis\u00e3o autom\u00e1ticas para concess\u00e3o de cr\u00e9dito, no envio de comunica\u00e7\u00f5es personalizadas, ou na gera\u00e7\u00e3o de relat\u00f3rios de regulamenta\u00e7\u00e3o. Temos uma plataforma de dados de autosservi\u00e7o onde todo mundo pode pesquisar qualquer dado que n\u00e3o seja restrito (como dados n\u00e3o pessoais), criar tabelas e adicion\u00e1-las aos nossos pipelines. Em 8 anos, chegamos perto de 800 contribuidores, que adicionaram 40 mil tabelas ao nosso pipeline de dados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Com o aumento de usu\u00e1rios e uso dos dados, identificamos dois fatores essenciais para continuar usando os dados de forma \u00e1gil e produtiva: a <strong>organiza\u00e7\u00e3o da equipe<\/strong> e <strong>padr\u00f5es de engenharia<\/strong>, para incentivar boas pr\u00e1ticas de colabora\u00e7\u00e3o.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Com rela\u00e7\u00e3o \u00e0 <a href=\"https:\/\/building.nu.com\/distributing-the-data-team-to-boost-innovation-reliably\/\">organiza\u00e7\u00e3o da equipe<\/a>, criamos o cargo de Engenharia de An\u00e1lise, uma fun\u00e7\u00e3o dedicada \u00e0 estrat\u00e9gia e gerenciamento de dados em termos de qualidade, privacidade, confiabilidade, arquitetura e custos. Os engenheiros de an\u00e1lise est\u00e3o na maioria das equipes de produto e equipes multifuncionais. Eles trabalham com uma equipe de plataforma de dados focada em infraestrutura e ferramentas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quanto aos padr\u00f5es de engenharia, desenvolvemos processos t\u00e9cnicos e ferramentas que nos permitem fazer a empresa triunfar, permitindo que os contribuidores de dados trabalhem de forma aut\u00f4noma e produtiva e aproveitem o trabalho de outras pessoas ao longo do tempo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Quais s\u00e3o os padr\u00f5es de engenharia que permitem um trabalho com dados mais eficiente e colaborativo?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Neste artigo, mostraremos como usamos padr\u00f5es de engenharia de software para:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Parte 1: Permitir contribui\u00e7\u00f5es aut\u00f4nomas e estruturadas<\/li>\n\n\n\n<li>Parte 2: Aprimorar a colabora\u00e7\u00e3o e o trabalho em equipe<\/li>\n\n\n\n<li>Parte 3: Simplificar a posse da vida \u00fatil dos dados&nbsp;<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/ew6iWwOF151UlIN9KK8RtnxtGZsbpU7yYnnQpZc4lW_nQc7g2DPHFvvTu__A89khkQNhrFk-yMmDtRauCgA31V3qZ1-zxDi3DIjUFH-DFICR4ckbdJfsJ0J4JrTLs2xd5WF8iuWo\" alt=\"Software engineering best practices making data work more efficient and collaborative\"\/><figcaption class=\"wp-element-caption\">Melhores pr\u00e1ticas de engenharia de software tornando o trabalho com dados mais eficiente e colaborativo<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Parte 1:&nbsp; Permitindo contribui\u00e7\u00f5es aut\u00f4nomas e estruturadas<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para escalar nosso processo de contribui\u00e7\u00e3o para os pipelines de dados, tentamos encontrar o equil\u00edbrio correto entre liberdade total e estrutura tediosa. Atualmente, qualquer Nubanker treinado consegue criar uma tabela e adicion\u00e1-la ao pipeline em algumas horas, ou menos, de forma praticamente aut\u00f4noma, com um processo otimizado de revis\u00e3o por pares. Isso nos permite iterar rapidamente no trabalho com dados.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Objetos estruturados padronizados<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Todo o nosso sistema de dados se baseia em v\u00e1rios componentes padronizados no Scala. Toda tabela \u00e9 criada por meio de um <\/em><strong><em>objeto padronizado espec\u00edfico, com atributos estruturados<\/em><\/strong><em>.&nbsp;<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Um objeto de tabela de dados em nosso sistema \u00e9 composto por tr\u00eas tipos principais de atributos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>a<strong>consulta<\/strong> declarando a transforma\u00e7\u00e3o<\/li>\n\n\n\n<li>a lista de <strong>entradas<\/strong> na tabela usada na consulta<\/li>\n\n\n\n<li><strong>metadados estruturados<\/strong>, como o nome do conjunto de dados resultante, a descri\u00e7\u00e3o dele e de cada coluna, o detentor do conjunto, as permiss\u00f5es para a prote\u00e7\u00e3o de dados, a qual camada de qualidade esse conjunto pertence etc.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">A lista de entradas nos permite adicionar a tabela automaticamente para ser executada no pipeline, no local correto do gr\u00e1fico de depend\u00eancia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quanto aos metadados, dependendo da camada de qualidade dessa tabela, todos, ou apenas uma parte dos atributos dos metadados, ser\u00e3o necess\u00e1rios, a fim de garantir uma boa documenta\u00e7\u00e3o para conjuntos de dados de alta qualidade, como <a href=\"https:\/\/building.nu.com\/data-quality-governance\/\">conjunto de dados centrais<\/a>, e limite de atrito para criar conjuntos de dados experimentais. Os metadados de permiss\u00e3o necess\u00e1rios tamb\u00e9m nos permitem configurar facilmente o gerenciamento de acesso granular.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nomeando conven\u00e7\u00f5es, reusabilidade de m\u00e9tricas e organiza\u00e7\u00e3o de arquivos<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para facilitar a descoberta de dados e incentivar a coer\u00eancia e consist\u00eancia das m\u00e9tricas, implementamos conven\u00e7\u00f5es de nomenclatura para as tabelas e para as m\u00e9tricas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00f3s tamb\u00e9m criamos estruturas que nos permitem definir uma m\u00e9trica uma vez (seu c\u00f3digo de c\u00e1lculo e os metadados) e reutiliz\u00e1-la em v\u00e1rios conjuntos de dados.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><br>Por fim, definimos uma organiza\u00e7\u00e3o de estrutura de arquivos espec\u00edfica em nosso reposit\u00f3rio para garantir que a descoberta do c\u00f3digo \u00e9 f\u00e1cil, que todos os c\u00f3digos que precisam ser executados por nosso pipeline de dados est\u00e3o no lugar certo, e que temos os acessos corretos e atendemos aos requisitos para o gerenciamento de mudan\u00e7as.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Processo de teste de qualidade<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para permitir que qualquer pessoa escreva uma consulta e a adicione ao pipeline, precisamos confirmar a execu\u00e7\u00e3o de algumas verifica\u00e7\u00f5es de qualidade.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Estamos testando a qualidade em dois n\u00edveis: transforma\u00e7\u00f5es da pr\u00f3pria consulta (testes de unidade) e funcionamento geral com o resto do sistema (testes de integra\u00e7\u00e3o).<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Primeiramente, h\u00e1 v\u00e1rios testes pequenos chamados de <strong>testes de unidade<\/strong>, escritos pelos contribuidores de dados. Esses testes conferem se os resultados correspondem aos esperados pelas transforma\u00e7\u00f5es.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00f3s escrevemos nossas consultas no Scala, que nos permite dividir as transforma\u00e7\u00f5es em pequenas fun\u00e7\u00f5es que podem (e devem) ser testadas por unidade. Para testar as transforma\u00e7\u00f5es do Spark, usamos a su\u00edte de <a href=\"https:\/\/github.com\/holdenk\/spark-testing-base\">testes Holdenkarau <\/a>, que nos d\u00e1 as classes-base necess\u00e1rias para executar consultas no Spark. Um teste de unidade geralmente \u00e9 assim:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/uNMux6JFeK9LlwtZ8eb82MB88fMIXljsQRvpkzNNvkrtcBhVm8SqSwnQH2DjaWiD8Y-n6BRHJ7a6L_YfMUHAsFWrrSoiFE5tcn60YjBLAnIMhCqyKp1_vVlOe_sCg1XmEYyeB0OJ\" alt=\"Unit test with Spark\"\/><figcaption class=\"wp-element-caption\">Teste de unidade com Spark<br><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Continuando, temos que nos certificar de que se adicionarmos essa tabela ao pipeline de dados, ela funcionar\u00e1 bem com o resto do sistema e nada mais ser\u00e1 afetado negativamente. Isso se chama teste de integra\u00e7\u00e3o. Para publicar uma nova tabela ou fazer altera\u00e7\u00f5es a uma j\u00e1 existente, todos os testes de integra\u00e7\u00e3o devem ter um resultado positivo. Eles conferem se todas as entradas existem, se essa \u00e9 uma tabela nova ou uma coluna de tabela, ou se alguma inconsist\u00eancia poderia ocorrer no tempo de compila\u00e7\u00e3o. Esses testes de integra\u00e7\u00e3o s\u00e3o escritos pela equipe da plataforma central; eles n\u00e3o precisam ser reescritos para cada tabela ou altera\u00e7\u00e3o nova.&nbsp;&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Parte 2: Aprimorando a colabora\u00e7\u00e3o e o trabalho em equipe&nbsp;<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Compartilhamento de conhecimento em revis\u00f5es de c\u00f3digos<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A revis\u00e3o por pares finaliza o processo de contribui\u00e7\u00e3o para o nosso pipeline de dados. Ela ajuda a garantir que o c\u00f3digo tenha boa qualidade e segue as melhores pr\u00e1ticas, dar um feedback pr\u00e1tico ass\u00edncrono para o contribuidor e treinar o revisor para explicar seu feedback. No geral, o conhecimento \u00e9 transmitido perfeitamente atrav\u00e9s dessas revis\u00f5es.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>H\u00e1 duas revis\u00f5es para adicionar um novo objeto ao nosso reposit\u00f3rio de dados: uma para verificar a l\u00f3gica do neg\u00f3cio e outra para verificar as melhores pr\u00e1ticas do Scala, do Spark e de testes.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Os engenheiros de an\u00e1lise e outros contribuidores superiores se revezam nas responsabilidades da revis\u00e3o t\u00e9cnica. Uma boa parte da revis\u00e3o foca em garantir que o c\u00f3digo est\u00e1 claro e leg\u00edvel, dividido em pequenas fun\u00e7\u00f5es, com testes de unidade claros. Geralmente conseguimos revisar todos os <em>pull request<\/em> em um \u00fanico dia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Reutilizando c\u00f3digos com bibliotecas<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Outro padr\u00e3o para trabalhar em grandes projetos de engenharia \u00e9 garantir que os contribuidores construam a partir do que outros j\u00e1 fizeram, para serem mais produtivos e focar nas novas adi\u00e7\u00f5es.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Um dos motivos que nos faz ter o c\u00f3digo-base de dados no Scala \u00e9 dar autonomia aos usu\u00e1rios de dados para criar e construir em bibliotecas que cont\u00eam as fun\u00e7\u00f5es j\u00e1 desenvolvidas por outras pessoas. As equipes usam, criam e contribuem com as bibliotecas para reutilizarem as mesmas estruturas e defini\u00e7\u00f5es entre diversos conjuntos de dados, al\u00e9m de gerar v\u00e1rios conjuntos de dados similares de forma program\u00e1tica e adicion\u00e1-los ao pipeline de ETL.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por exemplo, nossa Plataforma de Experimenta\u00e7\u00e3o gera conjuntos de dados automaticamente com v\u00e1rias m\u00e9tricas para cada teste A\/B; assim, as decis\u00f5es podem ser tomadas rapidamente, sem restri\u00e7\u00f5es anal\u00edticas.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Isso aumenta a velocidade de entrega de novos conjuntos de dados e tamb\u00e9m simplifica a manuten\u00e7\u00e3o e consist\u00eancia. Dessa forma, a l\u00f3gica centralizada passa por manuten\u00e7\u00e3o uma \u00fanica vez para v\u00e1rios conjuntos de dados. Em resumo, esse processo aumenta a efici\u00eancia e a qualidade das an\u00e1lises.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Documenta\u00e7\u00e3o e descobertas<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Um aspecto essencial para a colabora\u00e7\u00e3o eficiente \u00e9 permitir que qualquer pessoa encontre a informa\u00e7\u00e3o correta de forma f\u00e1cil. N\u00f3s trabalhamos para deixar a documenta\u00e7\u00e3o dispon\u00edvel em diferentes n\u00edveis: no processo de contribui\u00e7\u00e3o e na nossa plataforma de dados, no objetivo e detentores de conjuntos de dados, e em todas as colunas e m\u00e9tricas para cada tabela.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Estamos desenvolvendo ferramentas internas e pain\u00e9is para facilitar a descoberta e a navega\u00e7\u00e3o dessa documenta\u00e7\u00e3o e dos metadados, para que os Nubankers possam ser mais eficientes no trabalho com dados. Temos o Compass como exemplo, nossa ferramenta de pesquisa de dados internos, que busca informa\u00e7\u00f5es dos metadados que geramos.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/okKqyYcx9QV4tFP1-ZnnDp4bg2LVOX2ydiLUzthX6Tt-oR5fhki_7RrCL3lNMgapQjMof21f1g06soWlhOEONS7GzUPdWdcXWY-V6_VAm5srMalEVRO6nTWNiB5nzOLRNALzPPVe\" alt=\"Compass, our internal data search engine\" style=\"width:1450px;height:auto\"\/><figcaption class=\"wp-element-caption\">Compass, nossa ferramenta de pesquisa de dados internos<br><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Parte 3: simplificando a posse da vida \u00fatil dados<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">monitoramento com o uso de metadados<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Precisamos garantir que o sistema funcione totalmente. O monitoramento nos permite ter planos de governan\u00e7a de dados e OKRs (objetivos e resultados-chave), al\u00e9m de certificar que tudo est\u00e1 consistente e com boa qualidade ao longo do tempo.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No geral, monitoramos a qualidade dos dados gerados pela consulta, a otimiza\u00e7\u00e3o da consulta, a experi\u00eancia do usu\u00e1rio e aspectos de governan\u00e7a relacionados \u00e0 posse de dados, as depend\u00eancias de linhagem e restri\u00e7\u00f5es de acesso. Nosso monitoramento se baseia em nossos metadados declarados a partir dos nossos objetos estruturados, bem como em m\u00e9tricas calculadas automaticamente, como contagem de linhas, valor m\u00e9dio de uma coluna, tempo em que uma tabela estava dispon\u00edvel e tempo para executar uma consulta.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mostramos essas informa\u00e7\u00f5es em pain\u00e9is, al\u00e9m de alertas que enviam diretamente uma mensagem no Slack para as pessoas respons\u00e1veis, acionados por algumas regras de criticidade.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Manuten\u00e7\u00e3o de conjunto de dados ao longo do tempo<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Os usu\u00e1rios costumam ter a expectativa de que as tabelas no pipeline de dados permane\u00e7am corretas. Contudo, a inova\u00e7\u00e3o iterativa de produtos est\u00e1 geralmente relacionada a altera\u00e7\u00f5es nos dados coletados ou em sua estrutura. As necessidades de manuten\u00e7\u00e3o podem surgir de forma proativa, devido ao desenvolvimento de novos produtos e reestrutura\u00e7\u00e3o de servi\u00e7os, ou de forma reativa, por meio de alertas do nosso monitoramento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quando os produtos evoluem, precisamos garantir que temos as ferramentas certas para a manuten\u00e7\u00e3o das tabelas impactadas em est\u00e1gios posteriores.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Assim como acontece na engenharia de software, a documenta\u00e7\u00e3o, os testes de unidade, os testes de integra\u00e7\u00e3o e as verifica\u00e7\u00f5es de monitoramento s\u00e3o prote\u00e7\u00f5es para garantir que o c\u00e1lculo do conjunto de dados seja atualizado por qualquer pessoa, sem causar problemas ou alterar o objetivo principal definido pelo criador da tabela. Mesmo com detentores de dados para todos os nossos objetos de dados, esse sistema nos permite ter uma efici\u00eancia operacional, j\u00e1 que qualquer pessoa pode revezar na resolu\u00e7\u00e3o de problemas dados, confiando na seguran\u00e7a fornecida pelas prote\u00e7\u00f5es.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Gra\u00e7as aos metadados usados para classificar tabelas em diferentes categorias (<a href=\"https:\/\/building.nu.com\/data-quality-governance\/\">conjunto de dados centrais<\/a>, conjunto de dados cr\u00edticos, entradas de modelo etc.), temos expectativas variadas com rela\u00e7\u00e3o \u00e0 velocidade de solu\u00e7\u00e3o de um problema e quem deveria validar as altera\u00e7\u00f5es.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Controle de Vers\u00e3o<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">As transforma\u00e7\u00f5es de dados definidas por usu\u00e1rio e as bibliotecas compartilhadas s\u00e3o administradas em um reposit\u00f3rio Git centralizado. Como usamos Git, n\u00f3s tamb\u00e9m ganhamos capacidades de controle de vers\u00e3o, al\u00e9m de termos interfaces simples para a revis\u00e3o por pares. Isso significa que temos um hist\u00f3rico de altera\u00e7\u00f5es rastre\u00e1vel em uma defini\u00e7\u00e3o de conjunto de dados. Com esse hist\u00f3rico, podemos reverter as altera\u00e7\u00f5es, se necess\u00e1rio, entender como esses dados foram gerados ou at\u00e9 executar uma vers\u00e3o mais antiga das nossas transforma\u00e7\u00f5es de dados. Essa capacidade de controle de dados provou ser uma das partes mais importantes do nosso sistema, para reverter facilmente quando algo d\u00e1 errado e para fins de auditoria.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclus\u00e3o<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">As empresas t\u00eam investido cada vez mais em plataformas de autosservi\u00e7o para remover as restri\u00e7\u00f5es de uma equipe de dados \u00fanica. Essas plataformas fomentam uma cultura de dados em toda a empresa; \u00e9 um sistema que tamb\u00e9m traz v\u00e1rios desafios de governan\u00e7a na pr\u00e1tica. Uma organiza\u00e7\u00e3o de pessoas com responsabilidades bem definidas \u00e9 primordial para enfrentar tais desafios. As equipes de dados podem causar ainda mais impacto com <strong>ferramentas<\/strong> e <strong>pr\u00e1ticas<\/strong> que lhes permitem colaborar com efici\u00eancia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Criar uma plataforma modular com objetos estruturados, conven\u00e7\u00f5es de nomenclatura, pr\u00e1ticas de biblioteca e de testes, aplicar revis\u00e3o por pares, documenta\u00e7\u00e3o; garantir que podemos monitorar, manter e reverter onde for essencial para escalar nossa equipe de dados e aproveitar as oportunidades.&nbsp;<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Os dados t\u00eam um papel fundamental no crescimento do Nubank. \u00c9 prov\u00e1vel que n\u00e3o consegu\u00edssemos chegar t\u00e3o longe e t\u00e3o r\u00e1pido, sem esse sistema.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c9 claro que investir nessas ferramentas tem um custo: tempo investido no come\u00e7o para projetar e implementar o sistema; mais tempo para os rec\u00e9m-chegados se adaptarem, e um aumento marginal no tempo gasto em alguns requisitos extras na contribui\u00e7\u00e3o (testes, documenta\u00e7\u00e3o, revis\u00e3o). Vimos que esse investimento foi logo compensado, pois nossas equipes aumentaram muito r\u00e1pido (fomos de 0 para 800 contribuidores na plataforma de dados em 8 anos). N\u00e3o conseguir\u00edamos ter tantas contribui\u00e7\u00f5es individuais t\u00e3o r\u00e1pido sem prejudicar o sistema, e o monitoramento de qualidade seria muito mais complicado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Dar poder para os usu\u00e1rios inovarem de forma aut\u00f4noma e colaborativa \u00e9 essencial para o sucesso das equipes de dados. Encontrar a quantidade certa de ferramentas e requisitos para conceder o m\u00e1ximo de flexibilidade aos usu\u00e1rios e ao mesmo tempo ter prote\u00e7\u00f5es de governan\u00e7a \u00e9 fundamental para escalar as an\u00e1lises de forma eficiente e com seguran\u00e7a. H\u00e1 muito o que aprender com as melhores pr\u00e1ticas da engenharia de software.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>O trabalho anal\u00edtico pode obter \u00f3timos benef\u00edcios oriundos dos padr\u00f5es da engenharia de software quando se trata de qualidade e efici\u00eancia. Veja como.<\/p>\n","protected":false},"author":178110135,"featured_media":23826,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_wpcom_ai_launchpad_first_post":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[2604,2503],"tags":[2605,2956,2828],"class_list":["post-26585","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-analytics-engineering-pt-br","category-data-analytics","tag-analytics-engineers-pt-br","tag-data-governance-pt-br","tag-data-infrastructure-pt-br"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Escalando a an\u00e1lise de dados com as melhores pr\u00e1ticas da engenharia de software - Building Nubank<\/title>\n<meta name=\"description\" content=\"O trabalho anal\u00edtico pode obter \u00f3timos benef\u00edcios oriundos dos padr\u00f5es da engenharia de software quando se trata de qualidade e efici\u00eancia. Veja como.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/building.nu.com\/pt-br\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Escalando a an\u00e1lise de dados com as melhores pr\u00e1ticas da engenharia de software - Building Nubank\" \/>\n<meta property=\"og:description\" content=\"O trabalho anal\u00edtico pode obter \u00f3timos benef\u00edcios oriundos dos padr\u00f5es da engenharia de software quando se trata de qualidade e efici\u00eancia. Veja como.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/building.nu.com\/pt-br\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\/\" \/>\n<meta property=\"og:site_name\" content=\"Building Nubank\" \/>\n<meta property=\"article:published_time\" content=\"2021-07-15T15:31:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T13:18:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2021\/07\/featured_img_engprin.jpg?fit=1200%2C675&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ariane Hoffenberg - Head of Analytics Engineering and Jo\u00e3o Pedro - Senior Analytics Engineer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ariane Hoffenberg - Head of Analytics Engineering and Jo\u00e3o Pedro - Senior Analytics Engineer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\\\/\"},\"author\":{\"name\":\"Ariane Hoffenberg - Head of Analytics Engineering and Jo\u00e3o Pedro - Senior Analytics Engineer\",\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/#\\\/schema\\\/person\\\/cee70e6bf3a8a370be7c8c1969d9c2a4\"},\"headline\":\"Escalando a an\u00e1lise de dados com as melhores pr\u00e1ticas da engenharia de software\",\"datePublished\":\"2021-07-15T15:31:27+00:00\",\"dateModified\":\"2024-03-21T13:18:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\\\/\"},\"wordCount\":2460,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nu.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/featured_img_engprin.jpg?fit=1200%2C675&ssl=1\",\"keywords\":[\"Analytics engineers\",\"Data Governance\",\"Data infrastructure\"],\"articleSection\":[\"Analytics Engineering\",\"Data &amp; Analytics\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\\\/\",\"url\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\\\/\",\"name\":\"Escalando a an\u00e1lise de dados com as melhores pr\u00e1ticas da engenharia de software - Building Nubank\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nu.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/featured_img_engprin.jpg?fit=1200%2C675&ssl=1\",\"datePublished\":\"2021-07-15T15:31:27+00:00\",\"dateModified\":\"2024-03-21T13:18:56+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/#\\\/schema\\\/person\\\/cee70e6bf3a8a370be7c8c1969d9c2a4\"},\"description\":\"O trabalho anal\u00edtico pode obter \u00f3timos benef\u00edcios oriundos dos padr\u00f5es da engenharia de software quando se trata de qualidade e efici\u00eancia. Veja como.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/building.nu.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/featured_img_engprin.jpg?fit=1200%2C675&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nu.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/featured_img_engprin.jpg?fit=1200%2C675&ssl=1\",\"width\":1200,\"height\":675},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Escalando a an\u00e1lise de dados com as melhores pr\u00e1ticas da engenharia de software\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/#website\",\"url\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/\",\"name\":\"Building Nubank\",\"description\":\"We make the extraordinary happen\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/#\\\/schema\\\/person\\\/cee70e6bf3a8a370be7c8c1969d9c2a4\",\"name\":\"Ariane Hoffenberg - Head of Analytics Engineering and Jo\u00e3o Pedro - Senior Analytics Engineer\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3424a612820a8932ccc4180547fd825f2f4fc0c666db0224ed464979375d87bc?s=96&d=identicon&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3424a612820a8932ccc4180547fd825f2f4fc0c666db0224ed464979375d87bc?s=96&d=identicon&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3424a612820a8932ccc4180547fd825f2f4fc0c666db0224ed464979375d87bc?s=96&d=identicon&r=g\",\"caption\":\"Ariane Hoffenberg - Head of Analytics Engineering and Jo\u00e3o Pedro - Senior Analytics Engineer\"},\"url\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/author\\\/jpariane\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Escalando a an\u00e1lise de dados com as melhores pr\u00e1ticas da engenharia de software - Building Nubank","description":"O trabalho anal\u00edtico pode obter \u00f3timos benef\u00edcios oriundos dos padr\u00f5es da engenharia de software quando se trata de qualidade e efici\u00eancia. Veja como.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/building.nu.com\/pt-br\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\/","og_locale":"pt_BR","og_type":"article","og_title":"Escalando a an\u00e1lise de dados com as melhores pr\u00e1ticas da engenharia de software - Building Nubank","og_description":"O trabalho anal\u00edtico pode obter \u00f3timos benef\u00edcios oriundos dos padr\u00f5es da engenharia de software quando se trata de qualidade e efici\u00eancia. Veja como.","og_url":"https:\/\/building.nu.com\/pt-br\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\/","og_site_name":"Building Nubank","article_published_time":"2021-07-15T15:31:27+00:00","article_modified_time":"2024-03-21T13:18:56+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2021\/07\/featured_img_engprin.jpg?fit=1200%2C675&ssl=1","type":"image\/jpeg"}],"author":"Ariane Hoffenberg - Head of Analytics Engineering and Jo\u00e3o Pedro - Senior Analytics Engineer","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Ariane Hoffenberg - Head of Analytics Engineering and Jo\u00e3o Pedro - Senior Analytics Engineer","Est. tempo de leitura":"13 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/building.nu.com\/pt-br\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\/#article","isPartOf":{"@id":"https:\/\/building.nu.com\/pt-br\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\/"},"author":{"name":"Ariane Hoffenberg - Head of Analytics Engineering and Jo\u00e3o Pedro - Senior Analytics Engineer","@id":"https:\/\/building.nu.com\/pt-br\/#\/schema\/person\/cee70e6bf3a8a370be7c8c1969d9c2a4"},"headline":"Escalando a an\u00e1lise de dados com as melhores pr\u00e1ticas da engenharia de software","datePublished":"2021-07-15T15:31:27+00:00","dateModified":"2024-03-21T13:18:56+00:00","mainEntityOfPage":{"@id":"https:\/\/building.nu.com\/pt-br\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\/"},"wordCount":2460,"commentCount":0,"image":{"@id":"https:\/\/building.nu.com\/pt-br\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2021\/07\/featured_img_engprin.jpg?fit=1200%2C675&ssl=1","keywords":["Analytics engineers","Data Governance","Data infrastructure"],"articleSection":["Analytics Engineering","Data &amp; Analytics"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/building.nu.com\/pt-br\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/building.nu.com\/pt-br\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\/","url":"https:\/\/building.nu.com\/pt-br\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\/","name":"Escalando a an\u00e1lise de dados com as melhores pr\u00e1ticas da engenharia de software - Building Nubank","isPartOf":{"@id":"https:\/\/building.nu.com\/pt-br\/#website"},"primaryImageOfPage":{"@id":"https:\/\/building.nu.com\/pt-br\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\/#primaryimage"},"image":{"@id":"https:\/\/building.nu.com\/pt-br\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2021\/07\/featured_img_engprin.jpg?fit=1200%2C675&ssl=1","datePublished":"2021-07-15T15:31:27+00:00","dateModified":"2024-03-21T13:18:56+00:00","author":{"@id":"https:\/\/building.nu.com\/pt-br\/#\/schema\/person\/cee70e6bf3a8a370be7c8c1969d9c2a4"},"description":"O trabalho anal\u00edtico pode obter \u00f3timos benef\u00edcios oriundos dos padr\u00f5es da engenharia de software quando se trata de qualidade e efici\u00eancia. Veja como.","breadcrumb":{"@id":"https:\/\/building.nu.com\/pt-br\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/building.nu.com\/pt-br\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/building.nu.com\/pt-br\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\/#primaryimage","url":"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2021\/07\/featured_img_engprin.jpg?fit=1200%2C675&ssl=1","contentUrl":"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2021\/07\/featured_img_engprin.jpg?fit=1200%2C675&ssl=1","width":1200,"height":675},{"@type":"BreadcrumbList","@id":"https:\/\/building.nu.com\/pt-br\/escalando-a-analise-de-dados-com-as-melhores-praticas-da-engenharia-de-software\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/building.nu.com\/pt-br\/"},{"@type":"ListItem","position":2,"name":"Escalando a an\u00e1lise de dados com as melhores pr\u00e1ticas da engenharia de software"}]},{"@type":"WebSite","@id":"https:\/\/building.nu.com\/pt-br\/#website","url":"https:\/\/building.nu.com\/pt-br\/","name":"Building Nubank","description":"We make the extraordinary happen","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/building.nu.com\/pt-br\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/building.nu.com\/pt-br\/#\/schema\/person\/cee70e6bf3a8a370be7c8c1969d9c2a4","name":"Ariane Hoffenberg - Head of Analytics Engineering and Jo\u00e3o Pedro - Senior Analytics Engineer","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/3424a612820a8932ccc4180547fd825f2f4fc0c666db0224ed464979375d87bc?s=96&d=identicon&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3424a612820a8932ccc4180547fd825f2f4fc0c666db0224ed464979375d87bc?s=96&d=identicon&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3424a612820a8932ccc4180547fd825f2f4fc0c666db0224ed464979375d87bc?s=96&d=identicon&r=g","caption":"Ariane Hoffenberg - Head of Analytics Engineering and Jo\u00e3o Pedro - Senior Analytics Engineer"},"url":"https:\/\/building.nu.com\/pt-br\/author\/jpariane\/"}]}},"jetpack_shortlink":"https:\/\/wp.me\/pbKBB5-6UN","jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2021\/07\/featured_img_engprin.jpg?fit=1200%2C675&ssl=1","_links":{"self":[{"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/posts\/26585","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/users\/178110135"}],"replies":[{"embeddable":true,"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/comments?post=26585"}],"version-history":[{"count":6,"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/posts\/26585\/revisions"}],"predecessor-version":[{"id":28783,"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/posts\/26585\/revisions\/28783"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/media\/23826"}],"wp:attachment":[{"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/media?parent=26585"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/categories?post=26585"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/tags?post=26585"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}