PVS-Studio ROI

PVS-Studio ROI

Von Zeit zu Zeit werden wir gefragt, welchen finanziellen Nutzen das Unternehmen aus der Verwendung des PVS-Studio-Analysegeräts ziehen wird. Wir haben uns entschlossen, die Antwort in Form eines Artikels zu verfassen und Tabellen zu geben, die zeigen, wie nützlich der Analysator sein kann. Wir können nicht die absolute Zuverlässigkeit aller Berechnungen in diesem Artikel nachweisen, aber wir glauben, dass der Leser unseren Gedanken zustimmen wird, und dies wird dazu beitragen, eine Entscheidung über die Frage des Erwerbs einer Lizenz zu treffen.

Zunächst wollten wir einen ROI-Rechner auf der Site implementieren und eine detaillierte Beschreibung der Funktionsprinzipien veröffentlichen. Nach der Erstellung der Beschreibung wurde jedoch klar, dass der Rechner überflüssig ist. Genug von den Tabellen, die in der Erklärung angegeben wurden. Daher haben wir diese Erklärung einfach in Form des Artikels formuliert, den Sie gerade lesen. Wir hoffen, dass dies dazu beitragen wird, dass die regelmäßige Verwendung des statischen Code-Analysators PVS-Studio rational ist.

PVS-Studio ist ein Tool zum Erkennen von Fehlern und potenziellen Schwachstellen im Quellcode von Programmen, die in C, C ++, C # und Java geschrieben wurden. Es läuft unter Windows, Linux und MacOS.

Berechnen wir den Return on Investment, wenn Sie den statischen Code-Analysator PVS-Studio im „skeptischen“ Modus während des Entwicklungsprozesses und dann in einer realistischeren Version verwenden.

Programmierstundenwert


Um zu bestimmen, wie viel Geld PVS-Studio zurückgibt, müssen Sie zunächst die tatsächlichen Kosten (den Wert) der Arbeitsstunden des Programmierers berechnen.

Tatsache ist, dass es nicht ausreicht, nur das monatliche Gehalt eines Programmierers durch 160 zu teilen (die durchschnittliche Anzahl von Stunden pro Monat bei 40 Stunden Arbeitswoche).

Erstens bringen Programmierer, wie Mitarbeiter in anderen Bereichen, mehr Geld ein, als sie bezahlt bekommen, sonst wird das Geschäft mit einem Minus arbeiten. Programmierer müssen mit einem Arbeitsplatz ausgestattet sein, Miete für Räumlichkeiten zahlen, Cookies für sie kaufen, ihnen das Internet zur Verfügung stellen und so weiter. Oh ja, es gibt immer noch Boni, Firmenfeiern, verschiedene Boni.

Gleichzeitig sollte der Einsatz eines Programmierers rentabel sein, dh er muss direkt oder indirekt einen Nettogewinn für das Unternehmen erzielen. In der Praxis bedeutet dies, dass die Arbeit eines Programmierers je nach Situation zwei- bis zehnmal mehr Geld bringt, als für sein Gehalt ausgegeben wird. Wir betonen noch einmal, dass sich Programmierer hier nicht von anderen Mitarbeitern unterscheiden. Outsourcing hat einige Funktionen, aber das ist eine andere Geschichte.

Für skeptische Leser nehmen wir den Koeffizienten 2. Das heißt, der Programmierer bringt zweimal mehr Geld ein, als für sein Gehalt ausgegeben wird. Tatsächlich steht ein Unternehmen mit solchen Verhältnissen kurz vor der Gewinnschwelle. Es ist ehrlicher, einen Koeffizienten von mindestens 3 zu nehmen.

Was bedeutet das alles? Wenn der Programmierer 1 Stunde lang aus dem Entwicklungsprozess ausfiel, erhielt das Unternehmen nicht den Betrag, der der Arbeitsstunde entspricht, sondern zwei- oder dreimal mehr.

Es gibt einen zweiten Faktor, der den Preis einer realen Arbeitsstunde beeinflusst. Tatsache ist, dass ein Mitarbeiter überhaupt nicht 8 Stunden am Tag programmiert. Es ist nicht vorstellbar, dass eine Person am Morgen kam und sich setzte. 8 Stunden lang, ohne anzuhalten, beschäftigt sie sich mit Code. Der Programmierer arbeitet mit Trello zusammen, nimmt an Besprechungen teil, beantwortet Briefe per E-Mail und nimmt an der Codeüberprüfung teil. Am Ende muss er noch auf die Toilette gehen und Tee trinken :). Im besten Fall funktioniert es 6 Stunden lang direkt mit dem Code. Und wenn Sie diesen Text nicht skeptisch lesen, dann verstehen Sie, dass 4 Stunden tatsächlich eine viel glaubwürdigere Zeit sind.

Es stellt sich also heraus, dass die Kosten einer Stunde zusätzlich mit 8/6 = 1,33 (skeptischer Modus) oder mit 8/4 = 2 (eine realitätsnahe Option) multipliziert werden müssen.

Jetzt multiplizieren wir die beiden berücksichtigten Koeffizienten und erhalten den endgültigen Koeffizienten, mit dem Sie die Kosten für die Arbeitsstunde des Programmierers multiplizieren müssen:

  • Koeffizient für Skeptiker: 2 * 1,33 = 2,66
  • Koeffizient näher an der Realität: 3 * 2 = 6

In der Praxis sind die Koeffizienten etwas größer, da wir Urlaub bei unseren Berechnungen nicht berücksichtigen.

Lassen Sie uns nun sehen, was es für ein Unternehmen bedeutet, einen Programmierer mit einem Gehalt von 100.000 Rubel für 1 Stunde aus dem Workflow auszuschließen.

Hinweis Zum Verständnis stellen wir fest, dass das Unternehmen tatsächlich mehr als 100.000 Rubel für Gehaltszahlungen ausgibt. Es ist zu beachten, dass das Unternehmen Beiträge zu verschiedenen Fonds leistet („Lohnsteuern“). Und auf Händen nach Abzug von 13% der Steuer erhält eine Person 87.000 Rubel. Um die Berechnungen zu vereinfachen, werden wir Abzüge nicht berücksichtigen und davon ausgehen, dass das Unternehmen nur 100.000 ausgibt. Wir haben uns dazu entschlossen, dies zu vermerken, um zu zeigen, dass wir nicht zugunsten von PVS-Studio aufrunden.

Bei einem Gehalt von 100.000 Rubel beträgt die Arbeitszeit von 1 Stunde 625 Rubel. Es stellt sich heraus, dass das Unternehmen aus diesem Grund nicht verdienen kann, wenn der Programmierer 1 Stunde lang abgelenkt wurde, um den Fehler zu beheben:

  • für einen Skeptiker: 625 Rubel / Stunde * 2,66 = 1660 Rubel / Stunde
  • in Wirklichkeit mehr als: 625 Rubel / Stunde * 6 = 3750 Rubel / Stunde

Dies ist der tatsächliche Wert (Wert) einer Stunde des Programmierers, wenn er mit nützlicher Arbeit beschäftigt ist.

Wie viele Stunden spart PVS-Studio?


Es ist sehr schwer zu sagen, wie viele Stunden pro Jahr PVS-Studio durch frühzeitiges Auffinden von Fehlern einspart. Fehler sind sehr unterschiedlich. Einige von ihnen werden vom Programmierer sofort bemerkt und sofort korrigiert. Und manchmal kann ein Fehler den Programmierer für mehrere Tage von nützlichen Aktivitäten ablenken.

Aus empirischen Gründen für einen Skeptiker sagen wir, dass der Analysator mindestens 2 Stunden Programmiererarbeit pro Woche einspart, sodass nicht mehr nach Fehlern gesucht werden muss, die durch Unit-Tests oder die Testabteilung gefunden wurden. Ja, das Beheben des Fehlers dauert normalerweise Minuten, aber Versuche, das Problem, die Korrespondenz im Bug-Tracker, Testläufe, Zusammenführungen usw. zu reproduzieren, werden diese 2 Stunden leicht verschlingen.

Die oben genannten zwei Stunden sind eine skeptische Option, in der Tat kann es mehr geben. In Anbetracht dessen, dass der Analysator manchmal das Auftreten von schwer reproduzierbaren Heisenbags verhindern kann , ist es durchaus möglich, einen Durchschnittswert von 3 Stunden anzugeben.

Ein Jahr hat ungefähr 52 Wochen. In einem Jahr spart der Analysator die folgenden Stunden echter Programmiererarbeit:

  • Skepsis gegenüber statischer Analyse: 2 Stunden * 52 = 104 Stunden gespart
  • positive Einstellung: 3 Stunden * 52 = 156 Stunden gespart

Es ist Zeit, den ROI zu zählen


Dann wird die Verwendung von PVS-Studio durch einen Programmierer mit einem Gehalt von 100.000 Rubel pro Jahr wieder in Betrieb genommen:

  • Wenn Sie ein Skeptiker sind: 1.660 Rubel / Stunde * 104 Stunden = 172.640 Rubel
  • Wirklich: 3750 Rubel / Stunde * 156 Stunden = 585.000 Rubel

Nehmen wir nun ein typisches Entwicklungsteam von 10 Personen. Nach der Implementierung von PVS-Studio können wir davon ausgehen, dass das Team dank der Zeitersparnis nützliche Arbeiten zu folgenden Kosten ausführen kann:

  • Skeptiker: 1.726.400 Rubel
  • Realität: 5 850 000 Rubel

Endgültige Formel


Kombinieren wir nun alles zu einer einzigen Formel.

Bezeichnen Sie das monatliche Gehalt des Programmierers als S.

Die Anzahl der Programmierer in einem Team wird mit N angegeben.

  • Die Formel für den Skeptiker: N * (S / 160) * 2,66 * 104
  • Reale Formel: N * (S / 160) * 6 * 156

Jetzt präsentieren wir in Form von Tabellen Berechnungen für Teams anderer Größen. Die Tabelle zeigt den prognostizierten Geldbetrag, den das Entwicklungsteam des Unternehmens verdienen kann, wenn es im Laufe des Jahres anstelle der Bearbeitung von Fehlern damit beschäftigt ist, etwas Neues zu erstellen. Diese Zahlen sollten mit den Lizenzkosten verglichen werden.

Beschreibung der Tabelle. Top Line: monatliches Entwicklergehalt. Linke Spalte: Anzahl der Programmierer in einem Team. Tabellenzelle: Wie viel Geld das Team im Laufe des Jahres für das Unternehmen verdienen wird, wenn es anstelle der von PVS-Studio gefundenen Fehler nützliche Programmierungen durchführt.

Tabelle für Skeptiker:

Tabelle N1. Skeptiker. Rot: Die Verwendung von PVS-Studio ist möglicherweise nicht gerechtfertigt. Grün: Die Verwendung eines statischen Analysators ist gerechtfertigt und nützlich. Blau: Die Verwendung ist eindeutig vorteilhaft.


Tabelle N1. Skeptiker. Rot: Die Verwendung von PVS-Studio ist möglicherweise nicht gerechtfertigt. Grün: Die Verwendung eines statischen Analysators ist gerechtfertigt und nützlich. Blau: Die Verwendung ist eindeutig vorteilhaft.

Echter Tisch:

Tabelle N2. Realität Rot: Die Verwendung von PVS-Studio ist möglicherweise nicht gerechtfertigt. Grün: Die Verwendung eines statischen Analysators ist gerechtfertigt und nützlich. Blau: Die Verwendung ist eindeutig vorteilhaft.


Tabelle N2. Realität Rot: Die Verwendung von PVS-Studio ist möglicherweise nicht gerechtfertigt. Grün: Die Verwendung eines statischen Analysators ist gerechtfertigt und nützlich. Blau: Die Verwendung ist eindeutig vorteilhaft.

Die zweite Tabelle ist unserer Meinung nach zuverlässig, und es ist vernünftig, sich bei der Beurteilung der wirtschaftlichen Machbarkeit des Erwerbs einer Lizenz anleiten zu lassen.

Hinweis


Natürlich sind die obigen Berechnungen nicht immer und nicht immer relevant. Wenn beispielsweise der Preis für Fehler und Schwachstellen für ein Projekt extrem hoch ist, macht es keinen Sinn, den Wert der Verwendung von PVS-Studio mit den Gehältern eines Programmierers zu verknüpfen. In solchen Projekten sollten mögliche Geld- und Reputationsverluste bewertet werden und sollten bereits mit einer Risikominderung bei Verwendung eines Code-Analysators verbunden sein. Dies ist eine separate Geschichte, und wir wissen noch nicht, wie wir sie unter dem Gesichtspunkt der Berechnungen angehen sollen.

Außerdem funktionieren Berechnungen möglicherweise nicht für Outsourcing-Unternehmen. Das hört sich vielleicht nicht sehr gut an, aber solche Unternehmen sind daran interessiert, so viele Stunden wie möglich für Entwicklung, Test und Wartung zu verkaufen. In gewissem Sinne kann die Verwendung eines Analysegeräts nur den Umsatz reduzieren. Dies wird indirekt durch die Tatsache bestätigt, dass es unter PVS-Studio-Kunden keine Outsourcing-Unternehmen gibt. Außerdem können in solchen Unternehmen auf den ersten Blick manchmal seltsame Prozesse auftreten. Ein Unternehmen in einer Zeit geringer Arbeitsbelastung kann ein Projekt übernehmen, selbst wenn es einen Verlust hat. Dies ist besser, als einige Entwickler in den Urlaub fahren zu lassen. Lassen Sie sie besser arbeiten und mit etwas beschäftigt sein.

Die obigen Berechnungen und Tabellen unterscheiden sich übrigens von denen in der englischen Version des Artikels . Wir müssen ein anderes Gehaltsniveau berücksichtigen, bei dem sich herausstellt, dass PVS-Studio für fast jedes Team nützlich ist. Nun, wahrscheinlich so wie es ist. Dies wird indirekt durch die Tatsache bestätigt, dass die USA und Europa uns viel mehr Befehle erteilen als Russland, obwohl sie in Russland mehr über uns wissen.

Fazit


Obwohl die Berechnungen möglicherweise nicht für alle Unternehmen geeignet sind, hoffen wir, dass wir zeigen konnten, wie wir die Bewertung der Wirksamkeit der Verwendung von PVS-Studio aus Sicht des gesamten Unternehmens angehen können.



Wenn Sie diesen Artikel einem englischsprachigen Publikum zugänglich machen möchten, verwenden Sie bitte den Link zur Übersetzung: Andrey Karpov. PVS-Studio ROI .

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


All Articles