PVS-Studio ROI

PVS-Studio ROI

De vez en cuando se nos pregunta qué beneficio recibirá la empresa en términos monetarios al usar el analizador PVS-Studio. Decidimos elaborar la respuesta en forma de artículo y proporcionar tablas que muestren cómo puede ser útil el analizador. No podemos demostrar la fiabilidad absoluta de todos los cálculos en el artículo, pero creemos que el lector estará de acuerdo con nuestros pensamientos, y esto ayudará a tomar una decisión sobre el tema de adquirir una 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, una vez preparada la descripción, quedó claro que la calculadora es superflua. Suficiente de esas tablas que se dieron en la explicación. Por lo tanto, simplemente enmarcamos esta explicación en la forma del artículo que está leyendo ahora. Esperamos que ayude a garantizar que el uso regular del analizador de código estático PVS-Studio sea racional.

PVS-Studio es una herramienta para detectar errores y vulnerabilidades potenciales en el código fuente de programas escritos en C, C ++, C # y Java. Se ejecuta en Windows, Linux y macOS.

Calculemos el retorno de la inversión al usar el analizador de código estático PVS-Studio en el modo "escéptico" durante el proceso de desarrollo, y luego en una versión más realista.

Programador Hora Valor


Para determinar cuánto dinero devolverá PVS-Studio, primero debe calcular cuál es el costo real (valor) de las horas de trabajo del programador.

El hecho es que no basta con tomar el salario mensual de un programador y dividirlo por 160 (el número promedio de horas en un mes a las 40 horas de la semana laboral).

En primer lugar, los programadores, como los empleados en cualquier otro campo, aportan más dinero del que les pagan, de lo contrario, el negocio funcionará en un punto negativo. Los programadores deben contar con un lugar de trabajo, pagar el alquiler de los locales, comprar cookies para ellos, proporcionarles Internet, etc. Ah, sí, todavía hay bonos, fiestas corporativas, varios bonos.

Al mismo tiempo, el uso de un programador debe ser rentable, es decir, debe generar, directa o indirectamente, ganancias netas para la empresa. En la práctica, esto significa que el trabajo de un programador, dependiendo de la situación, genera entre 2 y 10 veces más dinero del que gasta en su salario. Una vez más, enfatizamos que los programadores aquí no son diferentes de otros empleados. El outsourcing tiene algunas características, pero esta es una historia diferente.

Para los lectores escépticos, tomamos el coeficiente 2. Es decir, el programador aporta 2 veces más dinero del que gasta en su salario. De hecho, una empresa con tales proporciones está a punto de alcanzar el punto de equilibrio. Es más honesto tomar un coeficiente igual a al menos 3.

¿Qué significa todo esto? Si el programador se cayó del proceso de desarrollo durante 1 hora, la compañía no recibió la cantidad igual a la hora de su trabajo, sino 2 o 3 veces más.

Hay un segundo factor que afecta el precio de una hora real de trabajo. El hecho es que un empleado no programa 8 horas al día en absoluto. Es imposible imaginar que una persona vino por la mañana y se sentó, por lo que durante 8 horas, sin parar, está involucrado en el código. El programador trabaja con Trello, participa en reuniones, responde cartas por correo, participa en la revisión de código. Al final, todavía necesita ir al baño y tomar té :). En el mejor de los casos, funcionará directamente con el código durante 6 horas. Y si no está leyendo este texto con escepticismo, entonces comprende que, de hecho, 4 horas es un tiempo mucho más creíble.

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

Ahora multiplicamos los dos coeficientes considerados y obtenemos el coeficiente final por el cual necesita multiplicar el costo de la hora de trabajo del programador:

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

En la práctica, los coeficientes serán ligeramente mayores, ya que no tenemos en cuenta las vacaciones en nuestros cálculos.

Veamos ahora qué significa para una empresa abandonar un programador con un salario de 100,000 rublos del flujo de trabajo durante 1 hora.

Nota Para entenderlo, notamos que, de hecho, la compañía gasta más de 100,000 rublos en pagos salariales. Cabe señalar que la empresa realiza contribuciones a varios fondos ("impuestos sobre la nómina"). Y en las manos después de la deducción del 13% del impuesto, una persona recibe 87,000 rublos. Para simplificar los cálculos, no tomaremos en cuenta las deducciones y asumiremos que la compañía gasta solo 100,000. Decidimos tomar nota de esto para mostrar que no estamos redondeando a favor de PVS-Studio.

Con un salario de 100,000 rublos, la tasa de 1 hora de trabajo será de 625 rublos. Resulta que si el programador se distrajo durante 1 hora para corregir el error, la empresa no podrá ganar debido a esto:

  • para un escéptico: 625 rublos / hora * 2.66 = 1660 rublos / hora
  • en realidad más de: 625 rublos / hora * 6 = 3750 rublos / hora

Este es el valor real (valor) de una hora del programador cuando está ocupado con un trabajo útil.

¿Cuántas horas ahorra PVS-Studio?


Es muy difícil decir cuántas horas al año ahorrará PVS-Studio al encontrar errores en las primeras etapas. Los errores son muy diferentes. Algunos de ellos son notados inmediatamente por el programador y corregidos de inmediato. Y a veces un error puede distraer al programador de actividades útiles durante varios días .

Por razones empíricas para un escéptico, decimos que el analizador ahorrará al menos 2 horas de trabajo del programador por semana, eliminando la necesidad de buscar errores encontrados por las pruebas unitarias o el departamento de pruebas. Sí, solucionar el error generalmente toma minutos, pero los intentos de reproducir el problema, la correspondencia en el rastreador de errores, las ejecuciones de prueba, las fusiones, etc., se comerán fácilmente estas 2 horas.

Las dos horas anteriores son una opción escéptica, de hecho, puede haber más. Teniendo en cuenta que a veces el analizador puede evitar la aparición de heisenbags de reproducción dura , es muy posible indicar un valor promedio de 3 horas.

Hay aproximadamente 52 semanas en un año. En un año, el analizador ahorra las siguientes horas de trabajo real del programador:

  • escepticismo sobre el análisis estático: 2 horas * 52 = 104 horas guardadas
  • Actitud positiva: 3 horas * 52 = 156 horas ahorradas

Es hora de contar el ROI


Luego, el uso de PVS-Studio por un programador con un salario de 100,000 rublos volverá al negocio por año:

  • Si es escéptico: 1,660 rublos / hora * 104 horas = 172,640 rublos
  • Realmente: 3750 rublos / hora * 156 horas = 585,000 rublos

Ahora tomemos un equipo de desarrollo típico de 10 personas. Una vez implementado PVS-Studio, podemos esperar que, gracias al tiempo ahorrado, el equipo podrá realizar un trabajo útil a un costo de:

  • Escéptico: 1,726,400 rublos
  • Realidad: 5 850 000 rublos

Fórmula final


Entonces, ahora combinemos todo en una sola fórmula.

Denote el salario mensual del programador como S.

El número de programadores en un equipo se denota por N.

  • La fórmula para el escéptico: N * (S / 160) * 2.66 * 104
  • Fórmula real: N * (S / 160) * 6 * 156

Ahora presentamos en forma de tablas los cálculos para equipos de otros tamaños. La tabla muestra la cantidad prevista de dinero que el equipo de desarrollo de la empresa puede ganar si durante el año, en lugar de editar errores, estará ocupado creando algo nuevo. Estos números deben compararse con el costo de la licencia.

Descripción de la mesa. Línea superior: salario mensual del desarrollador. Columna izquierda: número de programadores en un equipo. Celda de tabla: cuánto dinero ganará el equipo para la empresa durante el año si, en lugar de editar los errores que encuentra PVS-Studio, realizará una programación útil.

Mesa para escépticos:

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


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

Tabla real:

Tabla N2.  Realidad Rojo: el uso de PVS-Studio no puede estar justificado.  Verde: el uso de un analizador estático está justificado y es útil.  Azul: el uso es claramente beneficioso.


Tabla N2. Realidad Rojo: el uso de PVS-Studio puede no estar justificado. Verde: el uso de un analizador estático está justificado y es útil. Azul: el uso es claramente beneficioso.

La segunda tabla, en nuestra opinión, es confiable, y es razonable que se guíe en la evaluación de la viabilidad económica de adquirir una licencia.

Nota


Por supuesto, los cálculos anteriores no siempre son relevantes y no siempre son relevantes. Por ejemplo, si el precio de los errores y las vulnerabilidades de un proyecto es extremadamente alto, entonces no tiene sentido asociar el valor del uso de PVS-Studio con los salarios de un programador. En tales proyectos, las posibles pérdidas monetarias y de reputación deben evaluarse y ya deben estar asociadas con una reducción del riesgo cuando se utiliza un analizador de código. Esta es una historia separada, y todavía no sabemos cómo abordarla desde el punto de vista de los cálculos.

Además, los cálculos pueden no funcionar para las empresas de outsourcing. Puede que esto no suene muy bien, pero estas compañías están interesadas en vender tantas horas como sea posible para desarrollo, pruebas y mantenimiento. En cierto sentido, usar un analizador solo puede reducir sus ingresos. Esto se confirma indirectamente por el hecho de que no hay empresas de outsourcing entre los clientes de PVS-Studio. Además, a veces pueden ocurrir procesos extraños en tales empresas a primera vista. Una empresa en un momento de baja carga de trabajo puede asumir algún tipo de proyecto, incluso con pérdidas. Esto es mejor que dejar que algunos desarrolladores se vayan de vacaciones. Déjelos estar mejor en el trabajo y ocupados con algo.

Por cierto, los cálculos y tablas anteriores difieren de los que se dan en la versión en inglés del artículo . Tenemos que tener en cuenta un nivel salarial diferente, en el que resulta que PVS-Studio es útil para casi cualquier equipo. Bueno, probablemente como es. Esto se confirma indirectamente por el hecho de que EE. UU. Y Europa nos dan muchos más pedidos que Rusia, aunque en Rusia saben más sobre nosotros.

Conclusión


Por lo tanto, aunque los cálculos pueden no ser adecuados para todas las empresas, esperamos poder demostrar cómo abordar la evaluación de la efectividad del uso de PVS-Studio desde el punto de vista del negocio en su conjunto.



Si desea compartir este artículo con una audiencia de habla inglesa, utilice el enlace a la traducción: Andrey Karpov. PVS-Studio ROI .

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


All Articles