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