Como funciona a área de R&D da Arquivei

Joe Santos
Engenharia Arquivei
5 min readFeb 8, 2023

Muito além de front end e back end

Igor Barbosa, gerente de estratégia de R&D

Você já deve ter ouvido falar de front end e back end, e talvez até a diferença entre esses dois papéis, mas para construir um produto de software do tamanho do Arquivei que atenda uma vasta e diversificada gama de clientes com qualidade, nosso quebra-cabeças vai precisar de mais algumas peças.

Essas peças estão agrupadas na área de R&D, do inglês research and development (pesquisa e desenvolvimento) é a área responsável por manter e avançar os sistemas que compõem o Arquivei e os processos internos de engenharia de software.

Modelo de organização perpendicular

Para organizar essa área, utilizamos um modelo perpendicular inspirado no modelo criado pelo Spotify, nele temos dois tipos de agrupamentos: por disciplina e por funcionalidade.

O agrupamento de profissionais de uma mesma disciplina (programadores back end, por exemplo) é comumente conhecido aqui como casa, equivalente ao chapter no modelo Spotify, tem como objetivo manter os profissionais alinhados com as melhores práticas e outros padrões e é um impulsionador de inovação, onde em reuniões periódicas, os membros podem trazer problemas e discutir soluções ou falar sobre novas tecnologias.

Quando tratamos de uma funcionalidade ou um grupo relacionado de funcionalidades do produto, falamos de uma squad. Uma squad contém todos os profissionais que atuam naquela parte do produto, podendo incluir até pessoas de fora de R&D, como vendas e marketing.

Exemplo de organização mostrando casas e squads: na horizontal temos profissionais de uma mesma disciplina (back end) formando uma casa e na vertical profissionais de diversas disciplinas atuando em uma parte do produto (consulta) formando uma squad.

Às vezes, uma mesma funcionalidade atende interesses diferentes do cliente ou diferentes squads tem interesse em uma mesma parte do produto. Nesse caso, duas ou mais squads formam uma tribo, um agrupamento menos acoplado com interesses comuns.

Squads que atuam em áreas relacionadas (circulado preto) formam uma tribo (circulado em azul)

Por fim, existem problemas interessantes que um grupo pode querer tratar de forma independente, esses são os grupos autônomos, equivalentes às guildas no modelo do Spotify. Esses grupos podem ter um escopo fechado e se desfazer após a solução do problema proposto ou podem ser contínuos como grupos de estudo e qualquer um pode criar ou fazer parte de um grupo autônomo.

Esse modelo de organização tem se tornado bem popular em empresas de software e tem diversas variantes que se adaptam à necessidade das empresas que o adotam. Para nós, ele tem facilitado uma comunicação eficiente e uma maior colaboração entre todas as áreas.

Papéis dentro de R&D

Quanto às disciplinas de profissionais que compõem essa área temos produto, design, front end, back end, plataforma de dados, BI, QA, SRE, agilistas, tech ops e infosec.

O time de produto está sempre atento ao mercado e identifica oportunidades e o potencial de cada oportunidade para que possamos oferecer ao nosso cliente o que ele mais precisa da melhor forma possível. Essas oportunidades são priorizadas e alinhadas com os objetivos de curto e longo prazo da empresa e a partir daí sabemos “como dar o próximo passo”.

Design vai muito além de “desenhar telas”. O objetivo é oferecer ao usuário facilidade de uso e até evitar erros. Além disso, trabalham para oferecer acessibilidade e consistência através de ferramentas como o design system.

O time de front end transforma o design em software, efetivamente programando os elementos visuais produzidos anteriormente e adicionando chamadas para as funcionalidades invocadas pelo usuário ao clicar num botão, por exemplo.

A execução das ações fica toda ou parcialmente na mão do time de back end. A chamada produzida pelo front é executada e informações solicitadas são devolvidas para o front mostrar para o usuário ou algo é salvo no banco de dados, por exemplo. Essa separação nos possibilita termos profissionais altamente especializados em cada passo, entregando a melhor experiência possível.

Em algumas empresas poderíamos parar por aqui, mas quando temos que tratar mais de 10% de todos os documentos fiscais emitidos no Brasil, precisamos de um time especializado para receber, armazenar e disponibilizar esses dados de forma eficiente e confiável. Esse é o papel do time de plataforma de dados, agindo por vezes como um back end do back end.

Muito se fala no mercado de BI, sigla do inglês, business intelligence, que significa inteligência de negócio. Esse time é responsável por utilizar dados para identificar necessidades dos nosso clientes ou mesmo do nosso time e embasar com evidências as decisões que norteiam a empresa.

Garantia de qualidade, ou em inglês, quality assurance, é um passo necessário em qualquer atividade de produção. Esse time é responsável por automações e processos que nos ajudam a medir e melhorar continuamente a qualidade do que entregamos para nossos clientes.

SRE vem do inglês, site reliability engineering, ou engenharia de confiabilidade. Eles são os profissionais responsáveis por automações e processos que nos permitem manter o Arquivei no ar e entender rapidamente o que está errado quando algum sistema falha. Eles também são responsáveis pela manutenção da nossa infra: onde guardamos o código, onde rodamos nossos sistemas, etc.

Para coordenar entregas que muitas vezes são complexas e exigem muita colaboração, precisamos de um processo robusto onde cada um entenda seu papel e contribua constantemente para o todo. O objetivo do time de agilidade é garantir que todos estamos seguindo esse processo além de adaptar o próprio processo para nossa realidade e necessidades e por fim, fornecer e acompanhar métricas que nos permitam verificar que tudo está andando como deveria.

Tech ops é como chamamos o time de technology operations, ou operações de tecnologia. Quando um cliente tem um problema que o time de customer não consegue resolver, é o time de tech ops que investiga se se trata de um bug e trabalha junto com a squad responsável para resolver.

Por fim temos o time de info sec, ou information security, segurança da informação em português. Esse time é responsável por criar processos, automações, métricas e padrões que garantam a segurança dos dados dos nossos clientes e também que estamos atuando dentro de leis como a LGPD.

Os times de produto, design, front, back e plataforma trabalham quase em sequência, adicionando algo da sua especialidade a uma nova funcionalidade enquanto os times de QA, SRE, agilidade, info sec, tech ops e BI atuam com todos os times de forma transversal para sustentar o produto.

Conclusão

Essa organização não nasceu da noite para o dia. Ela é fruto de um trabalho contínuo de entendimento da empresa e do mais importante, o cliente. Ela está sob constante revisão, mas esperamos que esse artigo possa te ajudar a entender um pouco mais como funcionamos.

--

--