Este tópico descreve como medir a eficácia de pesquisa e desenvolvimento (P&D), como a programação assistida por IA melhora essa eficácia e como mensurar seus benefícios.
Entendendo a medição: diferenciando métricas com eficácia
Para auxiliar as equipes de P&D a medir a eficácia, propomos uma estrutura trifacetada composta por métricas dos seguintes tipos: capacidade e comportamento, entrega e resultado de negócios. Essa estrutura permite avaliar o trabalho de P&D de forma holística.
Métricas de capacidade e comportamento: Refletem como as equipes trabalham e suas capacidades, que afetam a eficiência da entrega e podem ser melhoradas. Incluem cobertura de testes unitários, quantidade de problemas encontrados na varredura de código, frequência de deploy, complexidade ciclomática e nível de desacoplamento.
Métricas de eficácia de entrega: Indicam a eficiência das equipes técnicas e se correlacionam com os resultados de negócios, embora não os afetem diretamente. Abrangem velocidade, throughput e qualidade da entrega.
Métricas de resultado de negócios: Demonstram o desempenho real do negócio e se relacionam diretamente à receita, escala e custos da empresa. Podem ser usadas diretamente para avaliação de desempenho e incluem receita segundo os Princípios Contábeis Geralmente Aceitos (GAAP), lucro bruto, lucro líquido, custos e usuários ativos mensais.
O que é eficácia de P&D e como medi-la?
A eficácia de P&D refere-se à capacidade de uma equipe de desenvolvimento de software de entregar valor de alta qualidade de maneira contínua e oportuna. Esse conceito abrange os seguintes aspectos:
Capacidade de fazer as coisas certas: Entregar valor efetivo.
Capacidade de fazer as coisas da maneira certa: Continuidade, velocidade e qualidade. A qualidade atua como restrição à velocidade, enquanto a continuidade é requisito para manter velocidade e qualidade consistentes.
Medição da eficácia de P&D
Métricas eficazes impulsionam ações de melhoria corretas e moldam futuras iniciativas de aprimoramento. As responsabilidades da equipe determinam os tipos de métricas utilizadas. Na maioria dos casos, as equipes técnicas são avaliadas com base nos seguintes aspectos:
Eficiência: Velocidade (eficiência de fluxo, taxa de fluxo de um único item de trabalho) e throughput (eficiência de recursos, número de itens de trabalho concluídos em um período específico).
Qualidade: Qualidade da entrega, referente à qualidade dos entregáveis após saírem da equipe.
Satisfação dos colaboradores: Métrica subjetiva de pesquisa que se correlaciona positivamente com a continuidade.
Como a programação assistida por IA melhora a eficácia de P&D?
A programação assistida por IA utiliza inteligência artificial para aumentar a eficiência da codificação, o que reflete habilidades e comportamentos de programação. Essa melhoria pode ser medida com base nos seguintes aspectos:
Eficiência de codificação: Proporção do tempo dos desenvolvedores gasto em codificação × Proporção de código gerado por IA = Proporção de tempo economizado pelo gerador de código. Por exemplo, se os desenvolvedores dedicam 30% do tempo à codificação e 40% do código final é gerado por IA, economizam-se 12% do tempo dos desenvolvedores.
Densidade de defeitos de código: Indicador atrasado que reflete a qualidade do código, como o número de defeitos por mil linhas de código.
Satisfação dos colaboradores na experiência de codificação: Métrica subjetiva que reflete como as ferramentas auxiliam os colaboradores no trabalho de programação, abrangendo usabilidade e eficácia real da ferramenta.
Melhoria na eficiência de codificação
No desenvolvimento de software, a eficiência de codificação é um fator chave que impacta a produtividade geral. Além dela, fatores como qualidade dos requisitos, processos de colaboração, automação de testes e capacidades de engenharia para integração contínua e entrega contínua (CI/CD) afetam a eficiência do desenvolvimento. Esses fatores dividem-se em duas categorias: eficiência individual, referente a melhorias específicas, e eficiência de colaboração, referente a melhorias gerais no processo. Sob a perspectiva de resolução de problemas, os fatores agrupam-se em quatro áreas principais: gargalos, retrabalho, dívida técnica e incapacidade.
Proporção de tempo de codificação e proporção de código gerado por IA
Proporção do tempo dos desenvolvedores gasto em codificação × Proporção de código gerado por IA = Proporção de tempo economizado pelo gerador de código. Por exemplo, se os desenvolvedores dedicam 30% do tempo à codificação e 40% do código final é gerado por IA, economizam-se 12% do tempo dos desenvolvedores.
Resultados de pesquisas indicam que os respondentes gastam 32% do tempo escrevendo ou melhorando código, 35% em gerenciamento de código (19% em manutenção, 12% em testes e 4% em resposta a problemas de segurança) e 23% em reuniões e tarefas operacionais.
Melhoria abrangente no comportamento de desenvolvimento
Durante a fase de desenvolvimento, programadores escrevem, depuram e testam código, além de recuperar informações. Cada tarefa possui áreas de melhoria, quantificáveis pela seguinte fórmula:
Especifique uma linha de base hipotética, correspondente ao custo por unidade de trabalho sem ferramentas de IA. Essa linha de base deve refletir dados estatísticos relevantes da empresa. Caso esses dados não estejam disponíveis, utilize dados estatísticos do setor como referência. Considere também custos adicionais associados às melhorias de eficiência impulsionadas por IA, como a revisão de código aceito, que pode afetar a precisão da linha de base manual.
A seguinte fórmula aplica-se independentemente do método escolhido: Comportamento × Efeito = Eficiência. Precisão estatística excessiva é desnecessária, pois pode levar a práticas inadequadas ou custos adicionais de gestão. O foco deve ser responder às questões centrais e orientar as melhorias correspondentes.
Impacto da melhoria da eficiência de desenvolvimento na eficácia geral de P&D
Com base na Lei de Little, Velocidade = Quantidade de trabalho em progresso (WIP)/Throughput, o que significa Throughput = Quantidade de WIP/Velocidade. O uso de IA pode melhorar os seguintes aspectos:
Velocidade de entrega: Quando a velocidade de itens de trabalho individuais aumenta, o throughput sobe e o número de tarefas em andamento (WIP de tarefas) diminui significativamente. Essa redução beneficia requisitos pendentes, resultando em menos pendências. A diminuição no número de requisitos pendentes reduz o WIP geral no desenvolvimento de produtos, aumentando a velocidade de P&D.
Certeza da entrega: A melhoria na velocidade leva a uma melhoria correspondente na certeza temporal do desenvolvimento de software.
Satisfação dos colaboradores na experiência de codificação
Para avaliar a satisfação dos colaboradores com o AI Coding Assistant, colete feedback por meio de pesquisas para identificar áreas de melhoria. O design do questionário envolve três elementos: persona do usuário, satisfação do usuário e eficiência do usuário. Exemplo de questionário:
Persona do usuário
-
Quantos anos de experiência em programação você tem?
Menos de 1 ano.
1-3 anos.
3-5 anos.
5-10 anos.
Mais de 10 anos.
-
Qual é sua função principal no trabalho?
Desenvolvedor júnior.
Desenvolvedor pleno.
Desenvolvedor sênior.
Arquiteto.
Gestor técnico.
Outro (especifique).
-
Quais linguagens de programação você usa habitualmente? (múltipla escolha)
Java.
Python.
C++.
JavaScript.
Go.
Ruby.
PHP.
SQL.
XML.
Outra (especifique).
-
Com que frequência você usa o AI Coding Assistant?
Várias vezes ao dia.
Uma vez por dia.
Algumas vezes por semana.
Algumas vezes por mês.
Raramente.
Satisfação do usuário
Qual seu nível de satisfação com o AI Coding Assistant? (Avalie de 1 a 5, sendo 5 o nível mais alto de satisfação)
-
O que você acha das seguintes descrições sobre o uso do AI Coding Assistant?
Visual confortável e operações alinhadas aos meus hábitos de codificação.
Sem sensação de interrupção.
Curva de aprendizado suave e operações intuitivas.
Utilidade do código sugerido gerado.
Respostas precisas às perguntas.
Geração rápida de código e respostas a perguntas.
Raramente apresenta erros.
Eficiência do usuário
-
Em que medida o AI Coding Assistant melhorou sua eficiência de codificação? (escolha única)
Melhorou significativamente.
Melhorou ligeiramente.
Sem alteração.
Diminuiu ligeiramente.
Diminuiu significativamente.
-
O que você acha das seguintes afirmações após usar o AI Coding Assistant?
Meu trabalho é mais gratificante.
Sinto-me mais confiante ao codificar.
Maior eficiência ao usar linguagens de programação familiares.
Progresso mais rápido ao usar linguagens de programação não familiares.
Redução na escrita de código repetitivo.
Mantém meu foco na escrita sem interromper meu fluxo.
Uso reduzido de mecanismos de busca.
Os resultados da pesquisa podem ser formatados de maneira semelhante ao exemplo na imagem a seguir:
Como medir a eficácia da programação assistida por IA?
Para decidir entre usar taxa de adoção ou proporção de código gerado por IA, certifique-se de compreender as definições e a lógica de cálculo de ambos os métodos:
|
Taxa de adoção |
Proporção de código gerado por IA |
|
|
Descrição |
Razão entre o número de conclusões de código aceitas e o número de sugestões dentro de um período específico. Fórmula: Taxa de adoção = Número de conclusões de código aceitas/Número de sugestões. |
Razão entre o número de linhas de código gerado por IA aceitas pelos desenvolvedores e o número de linhas de alterações de código dentro de um período específico. Fórmula de cálculo: Proporção de linhas de código gerado por IA = Número de linhas de código gerado por IA/Número de linhas de alterações de código. |
|
Vantagens |
|
|
|
Desvantagens |
|
|
Por que não usar a proporção de código gerado por IA enviado ao repositório para cálculo? Principais motivos:
Sistemas de controle de versão não identificam: Sistemas de controle de versão não diferenciam código gerado por IA de código escrito manualmente. O commit é feito pelo indivíduo que envia o código, não pela IA.
Complexidade aumentada: Buscar taxas de commit torna a medição desnecessariamente complexa. Esforços para realizar builds simultâneos no ambiente de produção introduzem variáveis adicionais.
Para medir a eficácia da programação assistida por IA, recomendamos o uso da proporção de conclusões de código gerado por IA. Se não for possível determinar essa proporção, a taxa de adoção é uma alternativa aceitável. No entanto, observe que ênfase excessiva na precisão estatística é desnecessária.
Métodos específicos para medir os benefícios das ferramentas de codificação com IA
-
Para medir eficazmente os benefícios do AI Coding Assistant na eficiência, realize observações e análises com base nos seguintes aspectos:
-
Uso da ferramenta:
Número de desenvolvedores: Conte o número de desenvolvedores que utilizam ferramentas de codificação com IA.
Popularidade: Conte o número de usuários ativos e sua frequência de atividade.
Comportamento: Frequência de uso de recursos específicos, conte a frequência de utilização de recursos como conclusão de código, geração de testes unitários e geração de comentários de código.
Efeito: Taxa de adoção ou proporção de geração efetiva, calcule a razão entre o número de linhas de código gerado por IA aceitas e o número total de linhas de alterações de código.
-
Melhoria na eficiência de desenvolvimento: Observe mudanças na eficiência de codificação antes e depois do uso de ferramentas de codificação com IA pelos desenvolvedores para estabelecer correlação. Utilize também a seguinte fórmula para obter estatísticas sobre melhorias de eficiência individual: "Comportamento × Efeito = Eficiência".
Contribuição para a eficiência de P&D: A eficiência de P&D envolve múltiplos aspectos, como qualidade de requisitos, processos de colaboração, automação de testes e capacidades de engenharia de CI/CD. Contudo, a melhoria de eficiência na fase de desenvolvimento contribui significativamente para a eficiência geral de P&D.
Estabeleça relações causais através do pensamento sistêmico: Analise relações causais entre comportamentos, eficiência e resultados sob uma perspectiva sistêmica holística. Identifique pontos de alavancagem chave, ou seja, as áreas de melhoria que proporcionam maiores benefícios.
Princípios de medição: As métricas de medição devem responder a uma questão fundamental: As ferramentas de codificação com IA realmente melhoram a eficiência de desenvolvimento? Os indicadores de medição devem guiar ações de melhoria apropriadas, em vez de causar desvios.