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