PVS-Studio ROI: comment ne pas perdre des millions (version provisoire de l'article)

PVS-Studio ROI
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. J'ai décidé de mettre en place un calculateur de ROI sur le site et de poster une description détaillée des principes de son fonctionnement. Mais d'abord, j'ai décidé de soumettre mes réflexions et mes calculs pour discussion. J'espère obtenir des commentaires intéressants et utiles qui aideront à rendre la calculatrice aussi fiable et convaincante que possible.

Nous vous proposons une description d'une calculatrice qui vous permet de calculer le retour sur investissement de l'utilisation de l'analyseur de code statique PVS-Studio pendant le processus de développement.

Nouvelle version de l'article: RU , EN .

La calculatrice par défaut est en mode sceptique. Cependant, nous espérons qu'après avoir lu l'article, vous conviendrez qu'il sera plus correct de passer au mode: je fais confiance aux calculs décrits dans l'article «PVS-Studio ROI» :).

Valeur horaire du programmeur


Afin de déterminer combien d'argent PVS-Studio retournera, vous devez d'abord calculer le coût réel (valeur) de l'heure 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 avec une semaine de travail de 40 heures).

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. Je souligne 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 d'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, comment il est venu le matin et comment il s'est assis, a travaillé avec le code pendant 8 heures sans s'arrêter. Le programmeur travaille avec Trello, participe aux réunions, répond par la poste, 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, vous comprenez qu'en fait 4 heures, c'est beaucoup plus crédible.

Il s'avère donc que le coût d'une heure doit être multiplié par 8/6 = 1,33 ou 2.

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 supposerons que la société ne dépense que 100 000. J'ai décidé de le noter pour montrer que je fais des arrondis défavorables à 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 à un sceptique, nous disons que l'analyseur économisera au moins 2 heures 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 pirate de bogues, les tests, les fusions, etc., prendront facilement ces 2 heures.

É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, qui est utilisée dans la calculatrice.

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 indique le montant d'argent prévu que l'équipe de développement de l'entreprise peut gagner si, au lieu de modifier les bogues, elle sera occupée à créer quelque chose de nouveau. Ces chiffres doivent être comparés au coût de la licence.

Ligne du haut: nombre de programmeurs dans l'équipe. Colonne de gauche: salaire des développeurs.

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.


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.


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.

Le deuxième tableau, à mon avis, 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 je ne sais 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, dans ces entreprises, des processus étranges peuvent parfois se produire à 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.

Conclusion


Ainsi, bien que les calculs puissent ne pas convenir à toutes les entreprises, j'espère avoir pu montrer comment aborder l'évaluation de l'efficacité de l'utilisation de PVS-Studio du point de vue de l'entreprise dans son ensemble.

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


All Articles