ROI do PVS-Studio

ROI do PVS-Studio

Ocasionalmente, fazemos uma pergunta sobre qual valor monetário a empresa receberá pelo uso do PVS-Studio. Decidimos elaborar uma resposta na forma de um artigo e fornecer tabelas, que mostrarão como o analisador pode ser útil. Não podemos provar a precisão absoluta de todos os cálculos no artigo, mas supomos que o leitor concordará com nossos pensamentos e ajudará a tomar uma decisão quanto à obtenção da licença.

Primeiro, queríamos implementar uma ROI-Calculator no site e publicar uma descrição detalhada de seus princípios de trabalho. No entanto, depois de preparar uma descrição, ficou claro que a calculadora é desnecessária. As tabelas fornecidas na descrição são suficientes. Acabamos de elaborar essa explicação como um artigo que você está lendo no momento. Esperamos que ele ajude você a entender completamente a racionalidade do uso regular do analisador de código estático PVS-Studio.

O PVS-Studio é uma ferramenta projetada para detectar erros e possíveis vulnerabilidades no código fonte dos programas, escritos em C, C ++, C # e Java. Funciona em ambiente Windows, Linux e macOS.

Vamos calcular o retorno do investimento usando o analisador de código estático do PVS-Studio no decorrer do desenvolvimento - primeiro no "modo cético" e, em seguida, de maneira mais realista.

O valor da hora de trabalho de um desenvolvedor


Para determinar quanto dinheiro o PVS-Studio retornará, primeiro precisamos contar qual é o custo (valor) real da hora de trabalho de um desenvolvedor.

O fato é que não basta tomar o salário anual de um desenvolvedor e dividi-lo por 1900 horas de tempo de trabalho. A propósito, o número 1900 é escolhido bastante arbitrário. O número de horas de trabalho por ano é altamente dependente do país. Por exemplo, na Coréia do Sul no ano há 2069 horas de trabalho, na Rússia - 1974, nos Estados Unidos - 1783 e no Reino Unido - 1676. No entanto, o número 1900 é completamente apropriado em termos de semana de trabalho de 40 horas, e usaremos exatamente esse número para cálculos adicionais.

Então, por que não basta dividir o salário anual por 1900?

Primeiro, os programadores, como qualquer outro funcionário de qualquer esfera, ganham muito mais dinheiro do que recebem com o salário, caso contrário, a empresa estará com um déficit. Os programadores precisam ter uma área de trabalho, Internet e cookies, você também precisa pagar aluguel e assim por diante. Ah, sim, ainda existem recompensas financeiras, eventos corporativos, vários bônus.

Com tudo isso, um desenvolvedor deve ser lucrativo, o que significa que ele deve gerar lucro líquido para a empresa direta ou indiretamente. Na prática, isso significa que o trabalho de um desenvolvedor, dependendo da situação, gera de 2 a 10 vezes mais dinheiro do que é gasto em seu salário. É importante enfatizar que os desenvolvedores não são diferentes de outros funcionários assalariados. Existem algumas peculiaridades relacionadas à terceirização, mas essa é outra história.

Para leitores céticos, usaremos o multiplicador 2. O que significa que um desenvolvedor gera 2 vezes mais dinheiro do que é gasto em seu salário. Na verdade, a empresa com esses multiplicadores está à beira do ponto de equilíbrio. Uma abordagem mais honesta é usar um multiplicador igual a pelo menos 3.

O que isso tudo significa? Se um programador abandonou o processo de desenvolvimento por 1 hora, a empresa perdeu não uma quantia em dinheiro equivalente a uma hora de seu trabalho, mas em 2 ou 3 vezes mais.

Há um segundo fator c que influencia o preço da hora de trabalho atual. O fato é que um funcionário não codifica 8 horas por dia. É inconcebível que um homem tenha chegado de manhã e estivesse lidando com o código por 8 horas durante o dia útil. Um desenvolvedor está trabalhando com o Trello, participa de reuniões, responde a cartas pelo correio, participa da revisão de código. No final, ele precisa ir ao banheiro e tomar um chá :). Na melhor das hipóteses, ele trabalhará diretamente com o código por 6 horas. Se você está lendo este texto que não está no "modo cético", entende o que na verdade 4 horas é um tempo muito mais plausível.

Acontece que o custo de uma hora precisa ser multiplicado por 8/6 = 1,33 (modo cético) ou 8/4 = 2 (mais próximo da realidade).

Agora vamos multiplicar os dois multiplicadores discutidos e obter o multiplicador final, pelo qual você precisa multiplicar o custo de uma hora de um desenvolvedor:

  • um multiplicador para céticos: 2 * 1,33 = 2,66
  • um multiplicador, mais próximo da realidade: 3 * 2 = 6

Na prática, os coeficientes serão um pouco maiores, porque não consideramos feriados nos cálculos.

Vamos agora ver o que isso significa para a empresa quando um desenvolvedor com um salário médio de US $ 74.000 por ano sai de um fluxo de trabalho por 1 hora. O ganho anual de US $ 74.000 foi escolhido após o salário médio na Alemanha, de acordo com os dados do portal StepStone para o ano de 2018.

Nota Para um melhor entendimento, note-se que, de fato, a empresa pode gastar mais de US $ 74.000 em salários. Note-se que a empresa pode fazer contribuições para os vários fundos e pagar impostos diferentes. No entanto, é tão incrivelmente dependente dos esquemas de país e tributação que nem tentaremos considerar todas essas opções. Por uma questão de simplicidade, vamos supor que a empresa não arque com nenhum custo adicional e gaste com o salário de um desenvolvedor apenas $ 74.000 por ano. Decidimos notar que arredondamos números que não são a favor do PVS-Studio.

Se o salário for de US $ 74.000, a taxa horária será de US $ 74.000 / 1900 = US $ 39. Acontece que, se um desenvolvedor se distrair ao corrigir um erro por 1 hora, a empresa não poderá ganhar:

  • para o cético: US $ 39 / hora * 2,66 = US $ 103 / hora
  • na realidade, mais de: US $ 39 / hora * 6 = US $ 234 / hora

Esse é o custo real por hora de trabalho (o valor de) uma hora de um desenvolvedor quando ele está fazendo algo útil.

Quantas horas o PVS-Studio economiza


É muito difícil dizer com certeza quantas horas por ano o PVS-Studio economizará ao encontrar erros nos estágios iniciais. Erros podem ser muito diferentes. Um desenvolvedor pode notar alguns deles e corrigi-los imediatamente. No entanto, algumas vezes um bug pode distrair um desenvolvedor de atividades úteis por alguns dias .

Com base em considerações empíricas para os céticos, digamos que o analisador economize pelo menos 2 horas de trabalho de um desenvolvedor por semana, dispensando-o da necessidade de procurar bugs encontrados por testes de unidade ou por um departamento de testes. Sim, consertar um bug em si normalmente leva alguns minutos, mas quanto às tentativas de reproduzir o problema, conversas em um rastreador de erros, execução de testes, mesclagens etc.

Duas horas mencionadas acima é uma opção cética, na verdade pode demorar muito mais. Tendo em mente que, às vezes, o analisador pode evitar erros graves e reproduzíveis, o valor médio pode ser definitivamente especificado como 3 horas.

Há aproximadamente 50 semanas em um ano. Durante um ano, o analisador salva o seguinte número de horas de trabalho reais do desenvolvedor:

  • atitude cética em relação à análise estática: 2 horas * 50 = 100 horas salvas
  • atitude positiva: 3 horas * 50 = 150 horas salvas

É hora de contar o ROI


Depois, usando o PVS-Studio, um programador com um salário de US $ 74.000 retornará ao negócio a cada ano:

  • Se você é cético: US $ 103 / hora * 100 horas = US $ 10.300
  • Realidade: US $ 234 / hora * 150 horas = US $ 35.100.

Agora vamos pegar uma equipe típica de 10 pessoas. Após a introdução do PVS-Studio, podemos esperar que, graças ao tempo economizado, a equipe seja capaz de executar um trabalho útil que custará:

  • Cético: US $ 103.000
  • Realidade: $ 351.000

A fórmula final


Então, agora vamos unir tudo isso em uma única fórmula.

Vamos denotar o salário anual de um programador como S.

O número de desenvolvedores em uma equipe é N.

  • A fórmula para um cético: N * (S / 1900) * 2,66 * 100
  • A fórmula real: N * (S / 1900) * 6 * 150

Como citaremos cálculos para equipes com um número diferente de desenvolvedores em tabelas. A tabela mostra a quantia projetada de dinheiro que uma equipe de desenvolvedores pode fazer para uma empresa se, no decorrer do ano, em vez de editar bugs, ela estiver ocupada em criar algo novo. Estes são os números que você precisa comparar com o preço da licença.

Descrição da tabela. Linha superior: salário do desenvolvedor por ano. Coluna esquerda: número de programadores em uma equipe. Célula da tabela: quanto dinheiro a equipe ganhará adicionalmente para a empresa durante o ano, se, em vez de editar bugs (que o PVS-Studio pode encontrar), a equipe estiver ocupada com uma programação útil.

Tabela para os céticos:

Quadro N1 Cético. Vermelho: o uso do PVS-Studio pode ser irracional. Verde: o uso do analisador estático é justificado e útil. Azul: o uso é exclusivamente benéfico.

Quadro N1 Cético. Vermelho: o uso do PVS-Studio pode ser irracional. Verde: o uso do analisador estático é justificado e útil. Azul: o uso é exclusivamente benéfico.

A tabela atual:

Quadro N2 Realidade Vermelho: o uso do PVS-Studio pode ser irracional. Verde: o uso do analisador estático é justificado e útil. Azul: o uso é exclusivamente benéfico.

Quadro N2 Realidade Vermelho: o uso do PVS-Studio pode ser irracional. Verde: o uso do analisador estático é justificado e útil. Azul: o uso é exclusivamente benéfico.

A segunda tabela, em nossa opinião, é válida e é razoável levar essa em consideração ao avaliar a viabilidade da aquisição da licença.

Nota


Obviamente, os cálculos fornecidos são adequados nem sempre e nem em todos os lugares. Por exemplo, se o preço dos bugs e vulnerabilidades do projeto for extremamente alto, não há razão para conectar o valor do uso do PVS-Studio aos salários. Nesses projetos, deve-se avaliar as possíveis perdas monetárias e de reputação e associá-las à redução do risco ao usar um analisador de código. Esta é a sua própria história, 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. Pode não parecer muito bonito, mas essas empresas estão interessadas em vender o maior número possível de horas em desenvolvimento, teste e manutenção. Em certo sentido, o uso do analisador pode até reduzir seus ganhos. Isso é indiretamente confirmado pelo fato de que entre os clientes do PVS-Studio não há empresas de terceirização. Além disso, à primeira vista, nessas empresas, alguns processos estranhos podem acontecer. No momento de menor atividade, a empresa pode realizar um projeto mesmo com prejuízo. É melhor do que dissolver alguns desenvolvedores em férias. Eles preferem estar ocupados com alguma coisa.

Conclusão


Portanto, mesmo que os cálculos possam não ser adequados para todas as empresas, esperamos conseguir demonstrar como abordar a avaliação da eficácia do uso do PVS-Studio em termos de negócios como um todo.

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


All Articles