PVS-Studio ROI: como não perder milhões (versão preliminar do artigo)

ROI do PVS-Studio
Periodicamente, perguntam-nos que benefício a empresa receberá em termos monetários ao usar o analisador PVS-Studio. Decidi implementar uma calculadora de ROI no site e postar uma descrição detalhada dos princípios de sua operação. Mas, primeiro, decidi enviar meus pensamentos e cálculos para discussão. Espero obter comentários interessantes e úteis que ajudem a tornar a calculadora o mais confiável e convincente possível.

Nós oferecemos uma descrição de uma calculadora que permite calcular o retorno do investimento a partir do uso do analisador de código estático PVS-Studio durante o processo de desenvolvimento.

Nova versão do artigo: RU , EN .

A calculadora padrão está no modo cético. No entanto, esperamos que, depois de ler o artigo, você concorde que seja mais correto mudar para o modo: Confio nos cálculos descritos no artigo “PVS-Studio ROI” :).

Valor da hora do programador


Para determinar quanto dinheiro o PVS-Studio retornará, primeiro você precisa calcular qual é o custo (valor) real da hora de trabalho do programador.

O fato é que não basta apenas receber o salário mensal de um programador e dividi-lo por 160 (o número médio de horas em um mês com uma semana de trabalho de 40 horas).

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 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 rentável, ou seja, ele deve direta ou indiretamente trazer lucro líquido para a 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. Eu enfatizo 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 obter um coeficiente de pelo menos 3.

O que tudo isso significa? Se o programador abandonou o processo de desenvolvimento por 1 hora, a empresa não recebeu a quantia 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, como veio de manhã e como se sentou, trabalha com o código há 8 horas sem parar. O programador trabalha com o Trello, participa de reuniões, responde 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 ou 2.

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. Decidi observar isso para mostrar que estou fazendo arredondamentos não 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 economiza pelo menos 2 horas de um programador por semana, eliminando a necessidade de procurar bugs encontrados por 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 cracker, os testes, as mesclagens e assim por diante consomem facilmente essas 2 horas.

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, usada na calculadora.

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, em vez de editar os bugs, estiver ocupada criando algo novo. Esses números devem ser comparados com o custo da licença.

Top line: número de programadores na equipe. Coluna da esquerda: salário dos desenvolvedores.

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.


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.


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, na minha opinião, é confiável e é razoável que ela seja orientada a avaliar a 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 sei 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, nessas empresas, processos estranhos às vezes podem ocorrer à 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.

Conclusão


Portanto, embora os cálculos possam não ser adequados para todas as empresas, espero 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.

Source: https://habr.com/ru/post/pt431864/


All Articles