PVS-Studio ROI

PVS-Studio ROI

Ocasionalmente, se nos hace una pregunta, qué valor monetario recibirá la compañía por usar PVS-Studio. Decidimos elaborar una respuesta en forma de artículo y proporcionar tablas que mostrarán cómo el analizador puede ser útil. No podemos probar la precisión absoluta de todos los cálculos en el artículo, pero suponemos que el lector estará de acuerdo con nuestros pensamientos, y ayudará a tomar una decisión en el asunto de obtener la licencia.

Primero, queríamos implementar una calculadora de ROI en el sitio y publicar una descripción detallada de sus principios de funcionamiento. Sin embargo, habiendo preparado una descripción, quedó claro que la calculadora es innecesaria. Las tablas dadas en la descripción son suficientes. Así que acabamos de elaborar esta explicación como un artículo que está leyendo en este momento. Esperemos que le ayude a darse cuenta de la racionalidad del uso regular del analizador de código estático PVS-Studio.

PVS-Studio es una herramienta diseñada para detectar errores y vulnerabilidades potenciales en el código fuente de los programas, escritos en C, C ++, C # y Java. Funciona en entornos Windows, Linux y macOS.

Calculemos el retorno de la inversión al utilizar el analizador de código estático PVS-Studio en el curso del desarrollo, primero en el "modo escéptico" y luego de manera más realista.

El valor de la hora de trabajo de un desarrollador.


Para determinar cuánto dinero devolverá PVS-Studio, primero debemos contar cuál es el costo real (valor) de la hora de trabajo de un desarrollador.

El hecho es que no es suficiente tomar el salario anual de un desarrollador y dividirlo entre 1900 horas de tiempo de trabajo. Por cierto, el número 1900 se elige bastante arbitrario. El número de horas de trabajo por año depende en gran medida del país. Por ejemplo, en Corea del Sur en el año hay 2069 horas de trabajo, en Rusia - 1974, en los Estados Unidos - 1783 y en el Reino Unido - 1676. Sin embargo, el número 1900 es completamente apropiado en términos de semana laboral de 40 horas, y usaremos exactamente este número para más cálculos.

Entonces, ¿por qué no es suficiente dividir el salario anual entre 1900?

Primero, los programadores, como cualquier otro empleado de cualquier esfera, ganan mucho más dinero del que reciben con su salario, de lo contrario, el negocio funcionará con un déficit. Los programadores deben contar con un área de trabajo, Internet y cookies, también debe pagar el alquiler, etc. Ah, sí, todavía hay recompensas financieras, eventos corporativos, varios bonos.

Con todo eso, un desarrollador debe ser rentable, lo que significa que debe generar ganancias netas para la empresa directa o indirectamente. En la práctica, esto significa que el trabajo de un desarrollador, dependiendo de la situación, genera entre 2 y 10 veces más dinero del que gasta en su salario. Es importante enfatizar que los desarrolladores no son diferentes de cualquier otro empleado asalariado. Hay algunas peculiaridades relacionadas con la contratación externa, pero esta es otra historia.

Para lectores escépticos tomaremos el multiplicador 2. Lo que significa que un desarrollador aporta 2 veces más dinero del que gasta en su salario. En realidad, la compañía con tales multiplicadores está al borde del equilibrio. Un enfoque más honesto es tomar un multiplicador igual a al menos 3.

¿Qué significa todo esto? Si un programador se cae del proceso de desarrollo durante 1 hora, la compañía no pierde una cantidad de dinero equivalente a una hora de su trabajo, sino 2 o 3 veces más.

Hay un segundo factor c que influye en el precio de la hora actual de trabajo. El hecho es que un empleado no codifica 8 horas por día. Es inconcebible que un hombre haya llegado por la mañana y haya estado lidiando con el código durante 8 horas durante toda la jornada laboral. Un desarrollador está trabajando con Trello, participa en reuniones, responde a las cartas por correo, participa en la revisión de código. Al final, tiene que ir al baño y tomar el té :). En el mejor de los casos, trabajará directamente con el código durante 6 horas. Si está leyendo este texto no en el "modo escéptico", comprende que en realidad 4 horas es un tiempo mucho más plausible.

Resulta que el costo de una hora debe multiplicarse por 8/6 = 1.33 (modo escéptico) o 8/4 = 2 (más cerca de la realidad).

Ahora multipliquemos los dos multiplicadores discutidos y obtengamos el multiplicador final, por el cual debe multiplicar el costo de una hora de un desarrollador:

  • un multiplicador para escépticos: 2 * 1.33 = 2.66
  • un multiplicador, más cercano a la realidad: 3 * 2 = 6

En la práctica, los coeficientes serán un poco mayores, porque no tomamos en cuenta las vacaciones en los cálculos.

Veamos ahora lo que significa para la empresa cuando un desarrollador con un salario promedio de $ 74,000 por año cae de un flujo de trabajo durante 1 hora. La ganancia anual de $ 74,000 se ha elegido siguiendo el salario promedio en Alemania de acuerdo con los datos del portal StepStone para el año 2018.

Nota Para una mejor comprensión, debe tenerse en cuenta que, de hecho, la empresa puede gastar más de $ 74,000 en salarios. Cabe señalar que la empresa podría hacer contribuciones a los diversos fondos y pagar diferentes impuestos. Sin embargo, es tan increíblemente dependiente de los esquemas de país e impuestos que ni siquiera intentaremos considerar todas estas opciones. Para simplificar, supongamos que la empresa no asume ningún costo adicional y gasta en el salario de un desarrollador solo $ 74,000 al año. Decidimos señalar que redondeamos los números que no están a favor de PVS-Studio.

Si el salario es de $ 74,000, la tarifa por hora será de $ 74,000 / 1900 = $ 39. Resulta que si un desarrollador se distrae al corregir un error durante 1 hora, entonces la compañía no podrá ganar:

  • para el escéptico: $ 39 / hora * 2.66 = $ 103 / hora
  • en realidad más de: $ 39 / hora * 6 = $ 234 / hora

Este es el costo real de la hora hombre (el valor de) una hora de un desarrollador cuando está haciendo algo útil.

Cuántas horas ahorra PVS-Studio


Es muy difícil saber con seguridad cuántas horas al año ahorrará PVS-Studio al encontrar errores en las primeras etapas. Los errores pueden ser muy diferentes. Un desarrollador puede notar algunos de ellos y corregirlos inmediatamente. Sin embargo, a veces un error puede distraer a un desarrollador de actividades útiles durante unos días .

Sobre la base de consideraciones empíricas para los escépticos, digamos que el analizador ahorrará al menos 2 horas de trabajo de un desarrollador por semana, liberándolo de la necesidad de buscar errores encontrados por las pruebas unitarias o un departamento de pruebas. Sí, solucionar un error en sí mismo generalmente lleva minutos, pero en cuanto a los intentos de reproducir el problema, conversaciones en un rastreador de errores, ejecuciones de pruebas, fusiones, etc., tomará fácilmente estas 2 horas.

Dos horas mencionadas anteriormente es una opción escéptica, en realidad puede tomar mucho más. Teniendo en cuenta que, a veces, el analizador puede evitar errores de reproducción reproducibles, el valor promedio se puede especificar definitivamente como 3 horas.

Hay aproximadamente 50 semanas en un año. Durante un año, el analizador ahorra el siguiente número de horas reales de trabajo del desarrollador:

  • actitud escéptica al análisis estático: 2 horas * 50 = 100 horas ahorradas
  • Actitud positiva: 3 horas * 50 = 150 horas ahorradas

Es hora de contar el ROI


Luego, utilizando PVS-Studio, un programador con un salario de $ 74,000 regresará al negocio cada año:

  • Si es escéptico: $ 103 / hora * 100 horas = $ 10.300
  • Realidad: $ 234 / hora * 150 horas = $ 35.100.

Ahora tomemos un equipo típico de 10 personas. Después de presentar PVS-Studio, podemos esperar que, gracias al tiempo ahorrado, el equipo podrá realizar un trabajo útil que costará:

  • Escéptico: $ 103,000
  • Realidad: $ 351,000

La formula final


Entonces, unamos todo esto en una sola fórmula.

Denotemos el salario anual de un programador como S.

El número de desarrolladores en un equipo es N.

  • La fórmula para un escéptico: N * (S / 1900) * 2.66 * 100
  • La fórmula real: N * (S / 1900) * 6 * 150

Cómo citaremos los cálculos para equipos con un número diferente de desarrolladores en tablas. La tabla muestra la cantidad de dinero proyectada que un equipo de desarrolladores puede hacer para una empresa si, en el transcurso del año, en lugar de editar errores, estará ocupado creando algo nuevo. Estos son los números que uno necesita comparar con el precio de la licencia.

Descripción de la tabla. Fila superior: salario del desarrollador por año. Columna izquierda: número de programadores en un equipo. Celda de tabla: cuánto dinero ganará el equipo adicionalmente para la empresa durante el año, si en lugar de editar errores (que el PVS-Studio puede encontrar) el equipo estará ocupado con una programación útil.

Mesa para los escépticos:

Tabla N1. Escéptico Rojo: el uso de PVS-Studio puede no ser razonable. Verde: el uso del analizador estático está justificado y es útil. Azul: el uso es especialmente beneficioso.

Tabla N1. Escéptico Rojo: el uso de PVS-Studio puede no ser razonable. Verde: el uso del analizador estático está justificado y es útil. Azul: el uso es especialmente beneficioso.

La mesa actual:

Tabla N2. Realidad Rojo: el uso de PVS-Studio puede no ser razonable. Verde: el uso del analizador estático está justificado y es útil. Azul: el uso es especialmente beneficioso.

Tabla N2. Realidad Rojo: el uso de PVS-Studio puede no ser razonable. Verde: el uso del analizador estático está justificado y es útil. Azul: el uso es especialmente beneficioso.

La segunda tabla, en nuestra opinión, es válida, y es razonable tener esto en cuenta al evaluar la viabilidad de la adquisición de la licencia.

Nota


Por supuesto, los cálculos dados son apropiados no siempre y no en todas partes. Por ejemplo, si el precio de los errores y vulnerabilidades para el proyecto es extremadamente alto, no hay razón para conectar el valor de usar PVS-Studio con los salarios. En tales proyectos, uno debe evaluar las posibles pérdidas monetarias y de reputación y asociarlas con la reducción del riesgo al usar un analizador de código. Esta es su propia historia, y aún no sabemos cómo abordarla desde el punto de vista de los cálculos.

Además, los cálculos podrían no funcionar para las empresas de outsourcing. Puede que esto no parezca muy bonito, pero estas empresas están interesadas en vender tantas horas como sea posible en el desarrollo, las pruebas y el mantenimiento. En cierto sentido, el uso del analizador puede incluso reducir sus ganancias. Esto se confirma indirectamente por el hecho de que entre los clientes de PVS-Studio no hay empresas de outsourcing. Además, a primera vista, en tales empresas pueden ocurrir algunos procesos extraños. En el momento de menor actividad, la empresa puede tomar un proyecto incluso con pérdidas. Es mejor que disolver algunos desarrolladores de vacaciones. Prefieren estar ocupados con algo.

Conclusión


Por lo tanto, a pesar de que los cálculos pueden no ser adecuados para todas las empresas, esperamos haber logrado demostrar cómo abordar la evaluación de la efectividad del uso de PVS-Studio en términos de negocio en general.

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


All Articles