Como fazer uma gestão eficiente de dados de Engenharia?
A entrega de produtos de dados pode envolver classicamente várias áreas como Governança de Dados, Engenharia de Dados e Ciência de Dados. Porém, para trazer eficiência a processos, produtos e melhorar a experiência do usuário, não se pode deixar de falar da Engenharia de Software. As aplicações que são, em última instância, o contato entre o usuário e a tecnologia.
A importância da gestão de dados de Engenharia
A engenharia moderna é alimentada por dados. Desde projetos de construção até simulações complexas, dados precisos e atualizados são essenciais para tomar decisões informadas e atingir os objetivos desejados. A qualidade do software desenvolvido e a eficiência na entrega é estratégica e pode ser sinônimo de vantagem competitiva. Nesse sentido, a Engenharia pode ser beneficiada se implementar uma cultura orientada a dados. Esse não é um assunto novo. Inclusive, em 2013, trabalhei no desenvolvimento de pesquisa em que se explorava como a Inteligência Artificial poderia ser utilizada para apoiar processos de Engenharia de Software.
Apesar de antigo, o tema segue sendo um desafio. A construção de uma cultura orientada a dados, embora possa, não precisa envolver algoritmos de Inteligência Artificial para todos os fins. Métricas mais fundamentais, como contagem do tempo de recuperação de incidentes, já se demonstram muito eficientes. Mas por onde começar?
Implementando uma cultura de Engenharia Orientada a Dados
O primeiro passo para essa jornada é a coleta das métricas, que podem ser divididas entre:
- Métricas relacionadas ao produto;
- Métricas relacionadas aos processos de desenvolvimento.
As métricas relacionadas ao produto são estratégicas, e vão variar de acordo com cada contexto. Por exemplo, nesse artigo, o Gibson Biddle discute que a Netflix media a retenção de usuários e fazia o uso de testes A/B para avaliar hipóteses. Não há uma regra sobre essas métricas, vão variar de caso a caso e devem ser desenvolvidas junto aos times de negócio.
Já para as métricas relacionadas aos processos de Engenharia, pode-se começar pelas métricas fundamentais, conhecidas por métricas DORA, como frequência de implantação, tempo para implantação, taxa de falhas nas implantações e tempo para restaurar o serviço.
Para ajudar na implantação dessas métricas podemos citar algumas ferramentas.
Ferramentas para acompanhar as métricas DORA:
1. GitLab:
Esse gerenciador disponibiliza ferramentas e recursos que permitem às equipes de desenvolvimento adotar e acompanhar as métricas DORA para melhorar a eficiência das práticas DevOps, entre as vantagens estão:
Integração Contínua e Entrega Contínua (CI/CD): O GitLab possui recursos robustos de CI/CD que permitem automação de processos de integração e entrega. Isso se alinha diretamente à métrica de "Deployment Frequency" (Frequência de Implantação) das DORA Metrics, já que a plataforma permite implantar alterações frequentemente e de maneira automatizada.
Redução do tempo de inatividade: Com recursos de monitoramento e rastreamento de problemas integrados, o GitLab ajuda as equipes a identificar e resolver problemas mais rapidamente. Isso contribui para reduzir o tempo de inatividade, melhorando a métrica de "Time to Restore Service".
Registro de Mudanças e Tempo para Implantações: O GitLab fornece um histórico detalhado de todas as alterações realizadas no código, incluindo quem fez a alteração e quando. Isso é essencial para medir o "Lead Time for Changes" (Tempo para Implantações) e também para avaliar a "Change Failure Rate" (Taxa de Falhas em Implantações).
Automação e Padronização: O GitLab permite a automação de muitos processos, desde compilação e testes até implantação. Isso contribui para padronizar os processos de desenvolvimento, melhorando a consistência e a qualidade das entregas.
Personalização e Integrações: O GitLab permite a personalização das pipelines de CI/CD de acordo com as necessidades da equipe, facilitando a implementação de práticas específicas para atender às métricas DORA. Além disso, o GitLab oferece integrações com ferramentas de análise e monitoramento externas.
Acompanhamento e Relatórios: O GitLab oferece recursos de geração de relatórios e métricas que podem ser usados para acompanhar o progresso em relação às métricas DORA ao longo do tempo. Isso permite que as equipes identifiquem tendências e façam ajustes conforme necessário.
2. Backstage:
Esse framework open source foi desenvolvido pelo Spotify para gerenciar o ciclo de vida de serviços de software. Embora, ele não seja especificamente projetado para métricas DORA (DevOps Research and Assessment), pode ser configurado para fins de suporte. Aqui estão algumas etapas para usar o Backstage em conjunto com métricas DORA:
Configurar Monitoramento de Métricas: Utilize o Backstage para configurar integrações com ferramentas de monitoramento, como Prometheus e Grafana. Isso permitirá que você colete e visualize métricas relacionadas à entrega de software, desempenho e estabilidade, que são aspectos importantes das métricas DORA.
Pipeline de CI/CD: No Backstage, configure pipelines de integração contínua e entrega contínua (CI/CD) para automatizar o processo de implantação de software. Certifique-se de incluir etapas para coletar métricas relevantes durante o pipeline, como tempo de implantação, taxa de falhas e frequência de implantação.
Automação de Testes: Integre ferramentas de automação de testes ao Backstage para garantir que as alterações de código sejam submetidas a testes rigorosos antes da implantação. Isso contribuirá para melhorar a qualidade das entregas e reduzir a "Change Failure Rate" (Taxa de Falhas em Implantações).
Registro de Alterações e Análise: Use o Backstage para manter um registro detalhado de todas as alterações de código e implantações. Isso é fundamental para calcular o "Lead Time for Changes" (Tempo para Implantações) e para avaliar a eficácia das práticas DevOps.
Acompanhamento de Desempenho: Configure dashboards no Backstage que exibam métricas de desempenho em tempo real, como tempos de resposta de serviços e disponibilidade. Isso é relevante para métricas DORA, como "Time to Restore Service" (Tempo para Restauração de Serviço).
Confira neste artigo um exemplo prático sobre como o Backstage mescla suas próprias métricas de produto e de desenvolvimento de software.
Onde aprender mais sobre o assunto:
Para se aprofundar no assunto, recomendo a aula Criando uma cultura DevOps, do Tech Lead Program do IFTL, que aborda a fundo o tema do DevOps, essencial para que se tenha agilidade nas entregas, além do uso das métricas DORA e outro assuntos que vão compor uma cultura orientada a dados.
Uma vez coletadas as métricas, colocamos a gestão eficiente dos dados como o esforço constante para acompanhar e tomar decisões baseadas em dados, criando novas métricas sempre que necessário.
Desse modo, uma cultura orientada a dados não nasce sem a implementação de métricas adequadas (que são os dados), e não sobrevive sem um olhar crítico frequente (a cultura) sobre esses dados. Para que tudo funcione, esse olhar pode ser conduzido pelas lideranças e precisa fazer parte de todo o time.
Embaixadora
Lara Marinelli
Lead em engenharia de Machine learning. Graduada em Sistemas de Informação (USP) e Mestra em Inteligência Artificial (USP), já trabalhou com consultoria, desenvolvimento back end, desenvolvimento full stack e engenharia de software antes de migrar para a Engenharia de Machine Learning. Fala sobre IA, Engenharia de Software, Liderança, Machine Learning, Programação e Dados