De vez en cuando se nos pregunta qué beneficio recibirá la empresa en términos monetarios al usar el analizador PVS-Studio. Decidí implementar una calculadora de ROI en el sitio y publicar una descripción detallada de los principios de su funcionamiento. Pero primero, decidí enviar mis pensamientos y cálculos para su discusión. Espero recibir comentarios interesantes y útiles que ayuden a que la calculadora sea lo más confiable y convincente posible.
Le ofrecemos una descripción de una calculadora que le permite calcular el retorno de la inversión a partir del uso del analizador de código estático PVS-Studio durante el proceso de desarrollo.
Nueva versión del artículo: RU , EN .
|
La calculadora predeterminada está en modo escéptico. Sin embargo, esperamos que después de leer el artículo esté de acuerdo en que será más correcto cambiar al modo: Confío en los cálculos descritos en el artículo "PVS-Studio ROI" :).
Programador Hora Valor
Para determinar cuánto dinero devolverá PVS-Studio, primero debe calcular cuál es el costo real (valor) de la hora 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, enfatizo 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 de al menos 3.
¿Qué significa todo esto? Si el programador se cayó del proceso de desarrollo durante 1 hora, entonces 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, cómo llegó por la mañana y cómo se sentó, ha estado trabajando con el código durante 8 horas sin parar. El programador trabaja con Trello, participa en reuniones, responde 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 o 2.
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. Decidí tomar nota de esto para mostrar que estoy redondeando no 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 programador por semana, eliminando la necesidad de buscar errores encontrados por las pruebas unitarias o el departamento de pruebas. Sí, la reparación del error generalmente toma minutos, pero los intentos de reproducir el problema, la correspondencia en el solucionador de errores, las ejecuciones de prueba, las fusiones, etc., fácilmente consumirán estas 2 horas.
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, que se usa en la calculadora.
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 de dinero prevista que el equipo de desarrollo de la compañía puede ganar si en lugar de editar errores estará ocupado creando algo nuevo. Estos números deben compararse con el costo de la licencia.
Línea superior: número de programadores en el equipo. Columna izquierda: salario de los desarrolladores.
Mesa para escépticos:

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 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 mi opinión, es confiable, y es razonable guiarla 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 sé 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, en tales empresas a veces pueden ocurrir procesos extraños 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.
Conclusión
Entonces, aunque los cálculos pueden no ser adecuados para todas las empresas, espero haber podido demostrar cómo abordar la evaluación de la efectividad del uso de PVS-Studio desde el punto de vista del negocio en general.