Periodicamente, perguntam-nos que benefício a empresa receberá em termos monetários ao usar o analisador PVS-Studio. Decidimos elaborar a resposta na forma de um artigo e fornecer tabelas que mostram como o analisador pode ser útil. Não podemos provar a confiabilidade absoluta de todos os cálculos no artigo, mas achamos que o leitor concordará com nossos pensamentos, e isso ajudará a tomar uma decisão sobre a questão da aquisição de uma licença.
Primeiro, queríamos implementar uma calculadora de ROI no site e publicar uma descrição detalhada de seus princípios de trabalho. No entanto, tendo preparado a descrição, ficou claro que a calculadora é supérflua. Chega dessas tabelas que foram dadas na explicação. Portanto, simplesmente enquadramos essa explicação na forma do artigo que você está lendo agora. Esperamos que ajude a garantir que o uso regular do analisador de código estático do PVS-Studio seja racional.
O PVS-Studio é uma ferramenta para detectar erros e possíveis vulnerabilidades no código fonte de programas escritos em C, C ++, C # e Java. É executado no Windows, Linux e macOS.
Vamos calcular o retorno do investimento usando o analisador de código estático PVS-Studio no modo "cético" durante o processo de desenvolvimento e, em seguida, em uma versão mais realista.
Valor da hora do programador
Para determinar quanto dinheiro o PVS-Studio retornará, primeiro você precisa calcular qual é o custo (valor) real das horas de trabalho do programador.
O fato é que não basta apenas pegar o salário mensal de um programador e dividi-lo por 160 (o número médio de horas em um mês às 40 horas semanais de trabalho).
Em primeiro lugar, os programadores, como funcionários de qualquer outro campo, ganham mais dinheiro do que recebem, caso contrário, a empresa funcionará menos. Os programadores precisam ter um local de trabalho, pagar aluguel pelas instalações, comprar cookies para eles, fornecer a Internet e assim por diante. Ah, sim, ainda existem bônus, festas corporativas, vários bônus.
Ao mesmo tempo, o uso de um programador deve ser lucrativo, ou seja, ele deve gerar direta ou indiretamente o lucro líquido da empresa. Na prática, isso significa que o trabalho de um programador, dependendo da situação, gera de 2 a 10 vezes mais dinheiro do que é gasto em seu salário. Enfatizamos mais uma vez que os programadores aqui não são diferentes de outros funcionários. A terceirização tem alguns recursos, mas essa é uma história diferente.
Para leitores céticos, tomamos o coeficiente 2. Ou seja, o programador ganha 2 vezes mais dinheiro do que é gasto em seu salário. De fato, uma empresa com tais índices está prestes a atingir o ponto de equilíbrio. É mais honesto tomar um coeficiente igual a pelo menos 3.
O que tudo isso significa? Se o programador abandonou o processo de desenvolvimento por 1 hora, a empresa não recebeu o valor igual à hora do seu trabalho, mas 2 ou 3 vezes mais.
Há um segundo fator que afeta o preço de uma hora de trabalho real. O fato é que um funcionário não programa 8 horas por dia. É impossível imaginar que uma pessoa veio de manhã e se sentou; portanto, por 8 horas, sem parar, ele está envolvido no código. O programador trabalha com o Trello, participa de reuniões, responde cartas pelo correio, participa da revisão de código. No final, ele ainda precisa ir ao banheiro e beber chá :). Na melhor das hipóteses, funcionará diretamente com o código por 6 horas. E se você não está lendo este texto com ceticismo, entende que, na verdade, 4 horas é um tempo muito mais crível.
Portanto, o custo de uma hora precisa ser adicionalmente multiplicado por 8/6 = 1,33 (modo cético) ou 8/4 = 2 (uma opção mais próxima da realidade).
Agora multiplicamos os dois coeficientes considerados e obtemos o coeficiente final pelo qual você precisa multiplicar o custo da hora de trabalho do programador:
- coeficiente para céticos: 2 * 1,33 = 2,66
- coeficiente mais próximo da realidade: 3 * 2 = 6
Na prática, os coeficientes serão um pouco maiores, pois não consideramos as férias em nossos cálculos.
Vamos agora ver o que significa para uma empresa abandonar um programador com um salário de 100.000 rublos do fluxo de trabalho por 1 hora.
Nota Para entender, observamos que, de fato, a empresa gasta mais de 100.000 rublos em pagamentos de salário. Deve-se notar que a empresa faz contribuições para vários fundos (“impostos sobre a folha de pagamento”). E, após dedução de 13% do imposto, uma pessoa recebe 87.000 rublos. Para simplificar os cálculos, não levaremos em consideração as deduções e assumiremos que a empresa gasta apenas 100.000. Decidimos observar isso para mostrar que não estamos arredondando a favor do PVS-Studio.
Com um salário de 100.000 rublos, a taxa de 1 hora de trabalho será de 625 rublos. Acontece que se o programador se distrair por 1 hora para corrigir o erro, a empresa não poderá ganhar por causa disso:
- para um cético: 625 rublos / hora * 2,66 = 1660 rublos / hora
- na realidade, mais de: 625 rublos / hora * 6 = 3750 rublos / hora
Este é o valor real (valor) de uma hora do programador quando ele está ocupado com um trabalho útil.
Quantas horas o PVS-Studio economiza
É muito difícil dizer quantas horas por ano o PVS-Studio economizará encontrando erros nos estágios iniciais. Erros são muito diferentes. Alguns deles são notados imediatamente pelo programador e imediatamente corrigidos. E, às vezes, um bug pode distrair o programador de atividades úteis por
vários dias .
Por razões empíricas para um cético, dizemos que o analisador economizará pelo menos 2 horas de trabalho do programador por semana, eliminando a necessidade de procurar bugs encontrados pelos testes de unidade ou pelo departamento de testes. Sim, a correção do bug geralmente leva alguns minutos, mas as tentativas de reproduzir o problema, a correspondência no rastreador de bugs, as execuções de teste, as mesclagens e assim por diante, comem com facilidade essas 2 horas.
As duas horas acima são uma opção cética; de fato, pode haver mais. Considerando que, às vezes, o analisador pode impedir o aparecimento de
heisenbags de difícil reprodução, é bem possível indicar um valor médio de 3 horas.
Há aproximadamente 52 semanas em um ano. Em um ano, o analisador economiza as seguintes horas de trabalho real do programador:
- ceticismo sobre a análise estática: 2 horas * 52 = 104 horas economizadas
- atitude positiva: 3 horas * 52 = 156 horas economizadas
É hora de contar o ROI
Em seguida, o uso do PVS-Studio por um programador com um salário de 100.000 rublos retornará aos negócios por ano:
- Se você é cético: 1.660 rublos / hora * 104 horas = 172.640 rublos
- Realmente: 3750 rublos / hora * 156 horas = 585.000 rublos
Agora vamos dar uma equipe de desenvolvimento típica de 10 pessoas. Após a implementação do PVS-Studio, podemos esperar que, graças ao tempo economizado, a equipe possa executar um trabalho útil a um custo de:
- Cético: 1.726.400 rublos
- Realidade: 5 850 000 rublos
Fórmula final
Então, agora vamos combinar tudo em uma única fórmula.
Indique o salário mensal do programador como S.
O número de programadores em uma equipe é indicado por N.
- A fórmula para o cético: N * (S / 160) * 2,66 * 104
- Fórmula real: N * (S / 160) * 6 * 156
Agora apresentamos na forma de cálculos de tabelas para equipes de outros tamanhos. A tabela mostra a quantia prevista de dinheiro que a equipe de desenvolvimento da empresa pode ganhar se, durante o ano, em vez de editar bugs, ela estiver ocupada criando algo novo. Esses números devem ser comparados com o custo da licença.
Descrição da tabela. Resultado: salário mensal do desenvolvedor. Coluna esquerda: número de programadores em uma equipe. Célula da tabela: quanto dinheiro a equipe ganhará para a empresa durante o ano se, em vez de editar os bugs encontrados pelo PVS-Studio, ele fará uma programação útil.
Tabela para céticos:

Quadro N1 Cético. Vermelho: o uso do PVS-Studio pode ser injustificado. Verde: o uso de um analisador estático é justificado e útil. Azul: o uso é claramente benéfico.Tabela real:

Quadro N2 Realidade Vermelho: o uso do PVS-Studio pode ser injustificado. Verde: o uso de um analisador estático é justificado e útil. Azul: o uso é claramente benéfico.A segunda tabela, em nossa opinião, é confiável e é razoável que ela seja orientada na avaliação da viabilidade econômica de adquirir uma licença.
Nota
Obviamente, os cálculos acima nem sempre são e nem sempre são relevantes. Por exemplo, se o preço dos erros e vulnerabilidades de um projeto for extremamente alto, não faz sentido associar o valor do uso do PVS-Studio aos salários de um programador. Nesses projetos, possíveis perdas monetárias e de reputação devem ser avaliadas e já devem estar associadas a uma redução de risco ao usar um analisador de código. Esta é uma história separada, e ainda não sabemos como abordá-la do ponto de vista dos cálculos.
Além disso, os cálculos podem não funcionar para empresas de terceirização. Isso pode não parecer muito bom, mas essas empresas estão interessadas em vender o maior número possível de horas para desenvolvimento, teste e manutenção. De certa forma, o uso de um analisador pode apenas reduzir sua receita. Isso é indiretamente confirmado pelo fato de que não há empresas de terceirização entre os clientes do PVS-Studio. Além disso, processos estranhos às vezes podem ocorrer nessas empresas à primeira vista. Uma empresa em um momento de baixa carga de trabalho pode assumir algum tipo de projeto, mesmo com prejuízo. Isso é melhor do que deixar alguns desenvolvedores sair de férias. Que eles sejam melhores no trabalho e ocupados com alguma coisa.
A propósito, os cálculos e tabelas acima diferem daqueles apresentados na
versão em
inglês do artigo . Temos que levar em consideração um nível salarial diferente, no qual o PVS-Studio é útil para praticamente qualquer equipe. Bem, provavelmente do jeito que está. Isso é indiretamente confirmado pelo fato de os EUA e a Europa nos darem muito mais pedidos do que a Rússia, embora na Rússia eles saibam mais sobre nós.
Conclusão
Portanto, embora os cálculos possam não ser adequados para todas as empresas, esperamos poder demonstrar como abordar a avaliação da eficácia do uso do PVS-Studio do ponto de vista do negócio como um todo.

Se você deseja compartilhar este artigo com um público que fala inglês, use o link para a tradução: Andrey Karpov.
ROI do PVS-Studio .