De temps en temps, on nous demande quel avantage la société recevra en termes monétaires de l'utilisation de l'analyseur PVS-Studio. Nous avons décidé d'émettre la réponse sous la forme d'un article et de donner des tableaux montrant comment l'analyseur peut être utile. Nous ne pouvons pas prouver la fiabilité absolue de tous les calculs dans l'article, mais nous pensons que le lecteur sera d'accord avec nos réflexions, ce qui aidera à prendre une décision sur la question de l'acquisition d'une licence.
Dans un premier temps, nous souhaitions mettre en place un calculateur de ROI sur le site et publier une description détaillée de ses principes de fonctionnement. Cependant, après avoir préparé la description, il est devenu clair que la calculatrice est superflue. Assez de ces tableaux qui ont été donnés dans l'explication. Par conséquent, nous avons simplement encadré cette explication sous la forme de l'article que vous lisez maintenant. Nous espérons que cela contribuera à garantir que l'utilisation régulière de l'analyseur de code statique PVS-Studio est rationnelle.
PVS-Studio est un outil pour détecter les erreurs et les vulnérabilités potentielles dans le code source des programmes écrits en C, C ++, C # et Java. Il fonctionne sur Windows, Linux et macOS.
Calculons le retour sur investissement de l'utilisation de l'analyseur de code statique PVS-Studio en mode «sceptique» pendant le processus de développement, puis dans une version plus réaliste.
Valeur horaire du programmeur
Pour déterminer combien d’argent PVS-Studio va retourner, vous devez d’abord calculer le coût (valeur) réel des heures de travail du programmeur.
Le fait est qu'il ne suffit pas de prendre le salaire mensuel d'un programmeur et de le diviser par 160 (le nombre moyen d'heures dans un mois à 40 heures de semaine de travail).
Premièrement, les programmeurs, comme les employés dans n'importe quel autre domaine, rapportent plus d'argent qu'ils ne sont payés, sinon l'entreprise fonctionnera à un minimum. Les programmeurs doivent disposer d'un lieu de travail, payer le loyer des locaux, leur acheter des cookies, leur fournir Internet, etc. Oh oui, il y a encore des bonus, des fêtes d'entreprise, divers bonus.
Dans le même temps, l'utilisation d'un programmeur doit être rentable, c'est-à-dire qu'il doit apporter directement ou indirectement un bénéfice net à l'entreprise. En pratique, cela signifie que le travail d'un programmeur, selon la situation, rapporte de 2 à 10 fois plus d'argent que ce qu'il consacre à son salaire. Nous soulignons encore une fois que les programmeurs ici ne sont pas différents des autres employés. L'externalisation a certaines fonctionnalités, mais c'est une autre histoire.
Pour les lecteurs sceptiques, nous prenons le coefficient 2. Autrement dit, le programmeur rapporte 2 fois plus d'argent que ce qu'il dépense pour son salaire. En fait, une entreprise avec de tels ratios est sur le point d'atteindre le seuil de rentabilité. Il est plus honnête de prendre un coefficient égal à au moins 3.
Qu'est-ce que tout cela signifie? Si le programmeur est tombé hors du processus de développement pendant 1 heure, alors l'entreprise n'a pas reçu le montant égal à l'heure de son travail, mais 2 ou 3 fois plus.
Il existe un deuxième facteur affectant le prix d'une vraie heure de travail. Le fait est qu'un employé ne programme pas du tout 8 heures par jour. Il est impossible d'imaginer qu'une personne est venue le matin et s'est assise, donc pendant 8 heures, sans s'arrêter, elle est engagée dans le code. Le programmeur travaille avec Trello, participe aux réunions, répond aux lettres par courrier, participe à la révision du code. En fin de compte, il doit encore aller aux toilettes et boire du thé :). Dans le meilleur des cas, il fonctionnera directement avec le code pendant 6 heures. Et si vous ne lisez pas ce texte avec scepticisme, alors vous comprenez qu'en fait 4 heures est un temps beaucoup plus crédible.
Il s'avère donc que le coût d'une heure doit en outre être multiplié par 8/6 = 1,33 (mode sceptique) ou par 8/4 = 2 (une option plus proche de la réalité).
Maintenant, nous multiplions les deux coefficients considérés et obtenons le coefficient final par lequel vous devez multiplier le coût de l'heure de travail du programmeur:
- coefficient pour les sceptiques: 2 * 1,33 = 2,66
- coefficient plus proche de la réalité: 3 * 2 = 6
En pratique, les coefficients seront légèrement plus importants, car nous ne prenons pas en compte les vacances dans nos calculs.
Voyons maintenant ce que signifie pour une entreprise d'abandonner un programmeur avec un salaire de 100 000 roubles du flux de travail pendant 1 heure.
Remarque Pour comprendre, nous notons qu'en fait, l'entreprise dépense plus de 100 000 roubles en salaires. Il est à noter que l'entreprise cotise à différents fonds («charges sociales»). Et sur les mains après déduction de 13% de la taxe, une personne reçoit 87 000 roubles. Pour simplifier les calculs, nous ne prendrons pas en compte les déductions et partirons du principe que l'entreprise ne dépense que 100 000. Nous avons décidé de le noter pour montrer que nous n'étions pas en faveur de PVS-Studio.
Avec un salaire de 100 000 roubles, le taux d'une heure de travail sera de 625 roubles. Il s'avère que si le programmeur a été distrait pendant 1 heure pour corriger l'erreur, alors l'entreprise ne pourra pas gagner à cause de cela:
- pour un sceptique: 625 roubles / heure * 2,66 = 1660 roubles / heure
- en réalité plus de: 625 roubles / heure * 6 = 3750 roubles / heure
Il s'agit de la valeur réelle (valeur) d'une heure du programmeur lorsqu'il est occupé par un travail utile.
Combien d'heures PVS-Studio économise
Il est très difficile de dire combien d'heures par an PVS-Studio économisera en trouvant des erreurs dans les premiers stades. Les erreurs sont très différentes. Certains d'entre eux sont immédiatement remarqués par le programmeur et immédiatement corrigés. Et parfois, un bug peut distraire le programmeur d'activités utiles pendant
plusieurs jours .
Pour des raisons empiriques pour un sceptique, nous disons que l'analyseur économisera au moins 2 heures de travail de programmeur par semaine, éliminant ainsi la nécessité de rechercher les bogues trouvés par les tests unitaires ou le service de test. Oui, la correction du bogue prend généralement quelques minutes, mais les tentatives pour reproduire le problème, la correspondance dans le bugtracker, les tests, les fusions, etc., prendront facilement ces 2 heures.
Les deux heures ci-dessus sont une option sceptique, en fait, il peut y en avoir plus. Étant donné que parfois l'analyseur peut empêcher l'apparition de
sacs heisen à reproduction
dure , il est tout à fait possible d'indiquer une valeur moyenne de 3 heures.
Il y a environ 52 semaines dans une année. En un an, l'analyseur économise les heures suivantes de travail réel du programmeur:
- scepticisme sur l'analyse statique: 2 heures * 52 = 104 heures économisées
- attitude positive: 3 heures * 52 = 156 heures économisées
Il est temps de compter le ROI
Ensuite, l'utilisation de PVS-Studio par un programmeur avec un salaire de 100 000 roubles reprendra ses activités par an:
- Si vous êtes sceptique: 1660 roubles / heure * 104 heures = 172 640 roubles
- Vraiment: 3750 roubles / heure * 156 heures = 585 000 roubles
Prenons maintenant une équipe de développement typique de 10 personnes. Après avoir implémenté PVS-Studio, nous pouvons nous attendre à ce que, grâce au gain de temps, l'équipe puisse effectuer un travail utile au coût de:
- Sceptique: 1726400 roubles
- Réalité: 5 850 000 roubles
Formule finale
Alors, combinons maintenant tout en une seule formule.
Désigner le salaire mensuel du programmeur comme S.
Le nombre de programmeurs dans une équipe est indiqué par N.
- La formule pour le sceptique: N * (S / 160) * 2,66 * 104
- Formule réelle: N * (S / 160) * 6 * 156
Maintenant, nous présentons sous forme de tableaux des calculs pour des équipes d'autres tailles. Le tableau montre le montant d'argent prévu que l'équipe de développement de l'entreprise peut gagner si au cours de l'année, au lieu de modifier des bogues, elle sera occupée à créer quelque chose de nouveau. Ces chiffres doivent être comparés au coût de la licence.
Description du tableau. Top line: salaire mensuel du développeur. Colonne de gauche: nombre de programmeurs dans une équipe. Cellule de tableau: combien d'argent l'équipe gagnera-t-elle pour l'entreprise au cours de l'année si, au lieu de modifier les bogues trouvés par PVS-Studio, elle fera une programmation utile.
Table pour les sceptiques:

Tableau N1. Sceptique. Rouge: l'utilisation de PVS-Studio peut être injustifiée. Vert: L'utilisation d'un analyseur statique est justifiée et utile. Bleu: l'utilisation est clairement bénéfique.Véritable table:

Tableau N2. La réalité Rouge: l'utilisation de PVS-Studio peut être injustifiée. Vert: L'utilisation d'un analyseur statique est justifiée et utile. Bleu: l'utilisation est clairement bénéfique.À notre avis, le deuxième tableau est fiable et il est raisonnable pour elle d'être guidée dans l'évaluation de la faisabilité économique de l'acquisition d'une licence.
Remarque
Bien entendu, les calculs ci-dessus ne sont pas toujours et pas toujours pertinents. Par exemple, si le prix des erreurs et des vulnérabilités d'un projet est extrêmement élevé, il est inutile d'associer la valeur de l'utilisation de PVS-Studio aux salaires d'un programmeur. Dans de tels projets, les éventuelles pertes monétaires et de réputation devraient être évaluées et devraient déjà être associées à une réduction des risques lors de l'utilisation d'un analyseur de code. Il s'agit d'une histoire distincte, et nous ne savons pas encore comment l'aborder du point de vue des calculs.
En outre, les calculs peuvent ne pas fonctionner pour les sociétés d'externalisation. Cela peut ne pas sembler très agréable, mais ces sociétés souhaitent vendre autant d'heures que possible pour le développement, les tests et la maintenance. Dans un sens, l'utilisation d'un analyseur ne peut que réduire leurs revenus. Ceci est indirectement confirmé par le fait qu'il n'y a pas de sociétés d'externalisation parmi les clients PVS-Studio. De plus, des processus étranges peuvent parfois se produire dans de telles entreprises à première vue. Une entreprise à une période de faible charge de travail peut entreprendre une sorte de projet, même à perte. C'est mieux que de laisser certains développeurs partir en vacances. Qu'ils soient meilleurs au travail et occupés avec quelque chose.
Soit dit en passant, les calculs et les tableaux ci-dessus diffèrent de ceux donnés dans la
version anglaise de l'article . Nous devons prendre en compte un niveau de salaire différent, auquel cas il s'avère que PVS-Studio est utile pour presque toutes les équipes. Eh bien, probablement comme ça. Cela est indirectement confirmé par le fait que les États-Unis et l'Europe nous donnent beaucoup plus de commandes que la Russie, bien qu'en Russie, ils en savent plus sur nous.
Conclusion
Ainsi, bien que les calculs puissent ne pas convenir à toutes les entreprises, nous espérons avoir pu démontrer comment aborder l'évaluation de l'efficacité de l'utilisation de PVS-Studio du point de vue de l'entreprise dans son ensemble.

Si vous souhaitez partager cet article avec un public anglophone, veuillez utiliser le lien vers la traduction: Andrey Karpov.
PVS-Studio ROI .