Visão geral
As métricas de DevOps monitoram a eficácia das práticas de DevOps relacionadas ao desenvolvimento de software e às operações de TI. O objetivo do DevOps é entregar software com mais rapidez, confiança e estabilidade. Ele prioriza ferramentas self-service, automação e comunicação, com ênfase na produtividade e na satisfação dos desenvolvedores.
Se você investiu em DevOps, é importante ter um conjunto consistente de métricas para monitorar seu progresso. A abordagem mais adequada depende do que é importante para a sua organização. Você quer medir a produtividade do software ou a saúde das suas equipes? Este artigo analisa dois dos frameworks de métricas mais populares: DORA, com foco no software, e SPACE, voltado às equipes.
Comparação entre os frameworks DORA e SPACE para métricas de DevOps
O DevOps se baseia em uma cultura de melhoria contínua. Determinar o que você quer melhorar, e como isso será mensurado, é uma etapa estratégica importante. Dois frameworks de métricas de DevOps reconhecidos são o DORA e o SPACE.
Como o DevOps busca acelerar a entrega de softwares funcionais, faz sentido priorizar métricas relacionadas a essa meta. As métricas DORA (DevOps Research and Assessment) se encaixam nesse caso.
Mas o DevOps vai além da quantidade de software funcional que você entrega. Você pode priorizar aspectos como a satisfação da equipe e a colaboração. O SPACE (sigla em inglês para satisfação, desempenho, atividade, comunicação, colaboração e eficiência) prioriza métricas relacionadas às equipes.
Essas diferentes abordagens de mensuração do DevOps refletem visões distintas sobre o que deve ser medido, mas uma escolha não anula a outra. Os dois frameworks podem se complementar e medir diferentes aspectos dos objetivos de DevOps.
DORA
As métricas DORA se originam do programa de pesquisa DORA, patrocinado pelo Google Cloud. Em 2020, o programa DORA determinou as quatro principais métricas de desempenho para equipes de desenvolvimento de software:
- Frequência de implantação, que indica a regularidade com que uma organização entrega software em produção com sucesso . Isso exige que a equipe defina o que é considerado uma implantação bem-sucedida. Após essa definição, é possível calcular, por exemplo, a mediana do número de dias por semana com pelo menos uma implantação bem-sucedida.
- Lead time de mudanças, ou o tempo necessário para um commit chegar à produção. Isso exige rastrear quando o commit ocorreu e quando a implantação aconteceu.
- Taxa de falha nas mudanças, ou a porcentagem de implantações que causam falha na produção. Para obter essa métrica, é preciso saber quantas implantações foram realizadas e quantos bugs ou incidentes foram registrados, como em um sistema de gerenciamento de problemas.
- Tempo de restauração do serviço, ou o tempo de recuperação após uma falha na produção. Será necessário rastrear as datas de criação e de resolução de cada incidente, algo que pode ser obtido em um sistema de gerenciamento de incidentes.
Uma quinta métrica foi adicionada no ano seguinte:
- Confiabilidade, que abrange disponibilidade, latência, desempenho e escalabilidade. O framework DORA mede a capacidade de uma organização atingir ou superar suas metas de confiabilidade.
O objetivo dessa pesquisa e desse conjunto de métricas é melhorar os resultados do negócio. As equipes podem acompanhar o desempenho do software importando dados extraídos dos pipelines para um dashboard e monitorando o progresso ao longo do tempo. O framework DORA também atribui classificações de desempenho (elite, alto, médio e baixo) com base nos níveis de cada métrica.
Uma grande vantagem do framework DORA é que ele se baseia em métricas disponíveis em ferramentas que as equipes de software já usam, como o GitHub, o GitLab e os sistemas de gerenciamento de incidentes. As métricas precisam ser consolidadas em dashboards, mas os dados já existem.
SPACE
O framework SPACE para métricas de DevOps busca capturar diferentes dimensões da produtividade. Uma equipe de pesquisadores apresentou o SPACE em um artigo de 2021. Eles argumentaram que o trabalho de engenharia é complexo demais para ser representado por uma única dimensão ou métrica. O desenvolvimento de software exige concessões, e as equipes precisam de uma abordagem holística que inclua mais elementos do trabalho delas.
O framework SPACE inclui cinco dimensões de medição distintas:
- Satisfação e bem-estar, que buscam medir como os desenvolvedores se sentem com o trabalho e como está o nível de felicidade e saúde deles. Isso pode exigir coletar dados usando pesquisas de satisfação dos funcionários para saber se os desenvolvedores podem acessar as ferramentas e os recursos de que precisam, além dos níveis de sobrecarga mental causados pelo estresse no local de trabalho.
- Desempenho, ou o resultado de um sistema ou processo (em oposição ao produto). É algo que vai além do volume de códigos ou do impacto causado nos negócios. O desempenho é medido pela qualidade, como a confiabilidade do código ou a integridade contínua do serviço, e pelo impacto, como a satisfação, adoção e retenção de clientes, por exemplo.
- Atividade, que acompanha as ações ou os resultados gerados ao longo da execução do trabalho. É possível capturar os níveis de atividade dos desenvolvedores de várias maneiras, como o volume de commits ou o número de lançamentos, mas o framework SPACE enfatiza que esses indicadores não devem ser usados isoladamente.
- Comunicação e colaboração, que juntas retratam como pessoas e equipes compartilham informações e trabalham em conjunto. Algumas métricas que podem ajudar a medir a comunicação, a colaboração e a coordenação são: descoberta de documentação e expertise, rapidez da integração do trabalho, qualidade das revisões, métricas de rede que mostram quem está conectado e tempo de onboarding para novos membros.
- Eficiência e fluxo, que medem a habilidade de concluir o trabalho ou avançar com o mínimo de interrupções ou atrasos. O SPACE propõe medir eficiência e fluxo com dados como o número de handoffs em um processo, as interrupções, o tempo ao longo do sistema e a percepção da capacidade de manter o fluxo e concluir o trabalho.
Você pode medir e rastrear cada métrica do SPACE nos níveis individual, de equipe ou de sistema.
O framework SPACE busca expandir a forma como as equipes pensam sobre DevOps, afastando-se da medição de resultados brutos e adotando uma visão holística da produtividade. Talvez seja preciso criar novos processos, como pesquisas para coletar métricas que ainda não existem (por exemplo, nível de satisfação dos desenvolvedores).
O que considerar ao escolher um framework de métricas de DevOps
As métricas de DevOps escolhidas devem refletir as suas prioridades específicas e se basear em dados que possam ser medidos de forma realista. Algumas métricas de sucesso em DevOps podem se concentrar nos resultados, incluindo a velocidade da entrega e a qualidade do software, como no framework DORA. Outras podem considerar as concessões que os desenvolvedores de software precisam fazer para aumentar a produtividade, como no framework SPACE.
Confira algumas perguntas que vão ajudar você a escolher o que medir:
- Quais são as metas da sua organização? Seus objetivos podem estar voltados para a melhoria da velocidade ou para a confiabilidade e a resiliência. Ou talvez você tenha mais interesse em uma experiência de desenvolvedor holística que inclua satisfação, facilidade de colaboração e eficiência.
- Que dados você pode coletar? Os pipelines de integração e implantação contínuas (CI/CD) podem ser sua melhor fonte de informações sobre como as alterações são implementadas nos softwares. Mas talvez você também precise realizar pesquisas para coletar dados qualitativos.
- Seus sistemas de automação e comunicação estão funcionando com eficácia? Para capturar métricas de DevOps, é necessário ter visibilidade sobre gargalos, a comunicação entre as funções da equipe e a forma como as decisões são tomadas. Garantir que os sistemas de DevOps funcionem conforme o planejado pode ser um primeiro passo para obter dados confiáveis sobre os fatores que você deseja medir.
Métricas de DevOps sob a perspectiva da engenharia de plataforma
O DevOps está ligado à engenharia de plataformas, que cuida das plataformas e ferramentas internas que oferecem suporte aos fluxos de trabalho de DevOps. Algumas métricas de desempenho do DevOps são extraídas das ferramentas de engenharia de plataforma. A disciplina de experiência do desenvolvedor, ou DevEx, também se reflete nas métricas de DevOps.
A engenharia de plataforma busca aprimorar a experiência dos desenvolvedores aliviando a sobrecarga das equipes de desenvolvimento. Isso inclui a disponibilização de uma plataforma interna de desenvolvedor (IDP), que integra um conjunto de ferramentas e capacidades comuns e reutilizáveis para os desenvolvedores. Os engenheiros de plataforma são responsáveis por projetar e manter golden paths, que são maneiras bem documentadas e com suporte de desenvolver e implantar software conforme os padrões da organização.
As escolhas que definem a IDP, os golden paths e outros itens relacionados estão fortemente ligadas às métricas de DevOps. Ao determinar os processos para tornar o DevOps eficaz, você também está definindo o que é importante e o que pode ser medido de forma realista. Por exemplo, o pipeline de CI/CD fornece visibilidade sobre commits de software e implantações.
Como a Red Hat pode ajudar
A Red Hat conta com plataformas, ferramentas e serviços de consultoria que podem ajudar você a medir a produtividade do seu DevOps.
Red Hat OpenShift
A plataforma em que você executa suas aplicações influenciará o sucesso da sua estratégia de métricas de DevOps. O Red Hat® OpenShift® oferece uma plataforma consistente para ambientes de nuvem, on-premise e edge. Ele oferece suporte a fluxos de trabalho de CI/CD por meio dos operadores Red Hat OpenShift GitOps e Red Hat OpenShift Pipelines. E com o Red Hat OpenShift Observability, você visualiza o desempenho e a integridade das suas aplicações.
Red Hat Advanced Developer Suite
Considerando o foco do DevOps em produtividade, o Red Hat Advanced Developer Suite amplia as capacidades do Red Hat OpenShift com componentes essenciais para acelerar a produtividade dos desenvolvedores, fortalecer a segurança da cadeia de suprimentos de software e oferecer suporte ao desenvolvimento com IA.
Red Hat Developer Hub
O Red Hat Developer Hub é o portal interno de desenvolvedor incluído no Red Hat Advanced Developer Suite. Ele consolida visualmente as ferramentas e os serviços para desenvolvedores (desde documentação e catálogos de serviços até pipelines de CI/CD) em um único hub navegável, melhorando muito a experiência do desenvolvedor e a produtividade organizacional.
Red Hat Consulting
Os experts em tecnologia da Red Hat Consulting podem oferecer suporte aos seus programas de DevOps com colaboração hands-on. Com técnicas como blueprints de serviço e mapeamento de processos baseado em métricas (MBPM), os consultores conseguem ajudar você a entender e mensurar melhor seus fluxos de trabalho.
Estado da engenharia de plataforma na era da IA
Nesta página, você encontra uma análise detalhada da pesquisa "Estado da engenharia de plataforma na era da IA" realizada pela Illuminas. Confira os detalhes.