PVS-Studio ROI

PVS-Studio ROI

Gelegentlich wird uns die Frage gestellt, welchen Geldwert das Unternehmen durch die Verwendung von PVS-Studio erhält. Wir haben uns entschlossen, eine Antwort in Form eines Artikels zu erstellen und Tabellen bereitzustellen, die zeigen, wie nützlich der Analysator sein kann. Wir können nicht die absolute Richtigkeit aller Berechnungen im Artikel nachweisen, aber wir gehen davon aus, dass der Leser unseren Gedanken zustimmt und es hilfreich ist, eine Entscheidung in Bezug auf die Erlangung der Lizenz zu treffen.

Zuerst wollten wir einen ROI-Rechner auf der Site implementieren und eine detaillierte Beschreibung seiner Arbeitsprinzipien veröffentlichen. Nach der Erstellung einer Beschreibung wurde jedoch klar, dass der Taschenrechner nicht erforderlich ist. Die in der Beschreibung angegebenen Tabellen sind ausreichend. Deshalb haben wir diese Erklärung nur als Artikel verfasst, den Sie gerade lesen. Hoffentlich hilft es Ihnen dabei, die Rationalität der regelmäßigen Verwendung des statischen Code-Analysators PVS-Studio vollständig zu erkennen.

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 funktioniert in Windows-, Linux- und MacOS-Umgebungen.

Berechnen wir den Return on Investment aus der Verwendung des statischen Code-Analysators PVS-Studio im Verlauf der Entwicklung - zuerst im "skeptischen Modus" und dann realistischer.

Der Wert der Arbeitszeit eines Entwicklers


Um zu bestimmen, wie viel Geld PVS-Studio zurückgibt, müssen wir zuerst die tatsächlichen Kosten (den Wert) der Arbeitszeit eines Entwicklers zählen.

Tatsache ist, dass es nicht ausreicht, nur das Jahresgehalt eines Entwicklers durch 1900 Arbeitsstunden zu dividieren. Die Nummer 1900 wird übrigens eher willkürlich gewählt. Die Anzahl der Arbeitsstunden pro Jahr ist stark vom Land abhängig. Zum Beispiel gibt es in Südkorea im Jahr 2069 Arbeitsstunden, in Russland - 1974, in den Vereinigten Staaten - 1783 und in Großbritannien - 1676. Trotzdem ist die Zahl 1900 in Bezug auf die Arbeitswoche von 40 Stunden völlig angemessen. und wir werden genau diese Zahl für weitere Berechnungen verwenden.

Warum reicht es nicht aus, das Jahresgehalt durch 1900 zu teilen?

Erstens verdienen Programmierer wie alle anderen Mitarbeiter jeder Sphäre viel mehr Geld, als sie mit ihrem Gehalt erhalten, sonst läuft das Geschäft mit einem Defizit. Programmierer müssen mit einem Arbeitsbereich, Internet und Cookies ausgestattet sein, Sie müssen auch Miete zahlen und so weiter. Oh ja, es gibt immer noch finanzielle Belohnungen, Firmenveranstaltungen und verschiedene Boni.

Bei alledem muss ein Entwickler profitabel sein, was bedeutet, dass er dem Unternehmen direkt oder indirekt einen Nettogewinn bringen sollte. In der Praxis bedeutet dies, dass die Arbeit eines Entwicklers je nach Situation zwei- bis zehnmal so viel Geld einbringt, als für sein Gehalt ausgegeben wird. Es ist wichtig zu betonen, dass sich Entwickler nicht von anderen Angestellten unterscheiden. Es gibt einige Besonderheiten im Zusammenhang mit dem Outsourcing, aber dies ist eine andere Geschichte.

Für skeptische Leser nehmen wir den Multiplikator 2. Das bedeutet, dass ein Entwickler zweimal mehr Geld bringt, als er für sein Gehalt ausgibt. Tatsächlich steht das Unternehmen mit solchen Multiplikatoren kurz vor der Gewinnschwelle. Ein ehrlicherer Ansatz besteht darin, einen Multiplikator von mindestens 3 zu verwenden.

Was bedeutet das alles? Wenn ein Programmierer 1 Stunde lang aus dem Entwicklungsprozess ausfiel, hat das Unternehmen nicht einen Geldbetrag verloren, der einer Stunde seiner Arbeit entspricht, sondern zwei- oder dreimal so viel.

Es gibt einen zweiten c-Faktor, der den Preis der gegenwärtigen Arbeitszeit beeinflusst. Tatsache ist, dass ein Mitarbeiter nicht 8 Stunden pro Tag codiert. Es ist unvorstellbar, dass ein Mann gerade am Morgen kam und sich den ganzen Arbeitstag über 8 Stunden lang mit Code befasste. Ein Entwickler arbeitet mit Trello zusammen, nimmt an Besprechungen teil, antwortet auf E-Mail-Briefe und nimmt an der Codeüberprüfung teil. Am Ende muss er auf die Toilette gehen und Tee trinken :). Im besten Fall arbeitet er 6 Stunden lang direkt mit Code. Wenn Sie diesen Text nicht im "skeptischen Modus" lesen, verstehen Sie, was 4 Stunden tatsächlich viel plausibler sind.

Es stellt sich heraus, dass die Kosten einer Stunde mit 8/6 = 1,33 (skeptischer Modus) oder 8/4 = 2 (näher an der Realität) multipliziert werden müssen.

Multiplizieren wir nun die beiden diskutierten Multiplikatoren und erhalten den endgültigen Multiplikator, mit dem Sie die Kosten einer Stunde eines Entwicklers multiplizieren müssen:

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

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

Lassen Sie uns nun sehen, was es für das Unternehmen bedeutet, wenn ein Entwickler mit einem Durchschnittsgehalt von 74.000 USD pro Jahr 1 Stunde lang aus einem Workflow ausfällt. Das jährliche Einkommen von 74.000 US-Dollar wurde nach dem Durchschnittsgehalt in Deutschland gemäß den Daten des StepStone-Portals für das Jahr 2018 ausgewählt.

Hinweis Zum besseren Verständnis sollte angemerkt werden, dass das Unternehmen tatsächlich mehr als 74.000 USD für Gehälter ausgeben kann. Es ist zu beachten, dass das Unternehmen möglicherweise Beiträge zu den verschiedenen Fonds leistet und unterschiedliche Steuern zahlt. Es ist jedoch so unglaublich abhängig von Land und Steuersystemen, dass wir nicht einmal versuchen werden, all diese Optionen in Betracht zu ziehen. Nehmen wir der Einfachheit halber an, dass das Unternehmen keine zusätzlichen Kosten trägt und für das Gehalt eines Entwicklers nur 74.000 USD pro Jahr ausgibt. Wir haben beschlossen, darauf hinzuweisen, dass wir Zahlen runden, die nicht für PVS-Studio sind.

Wenn das Gehalt 74.000 USD beträgt, beträgt der Stundensatz 74.000 USD / 1900 = 39 USD. Es stellt sich heraus, dass das Unternehmen nicht verdienen kann, wenn ein Entwickler 1 Stunde lang von der Behebung eines Fehlers abgelenkt wird:

  • für den Skeptiker: 39 $ / Stunde * 2,66 = 103 $ / Stunde
  • in Wirklichkeit mehr als: 39 $ / Stunde * 6 = 234 $ / Stunde

Dies sind die tatsächlichen Arbeitsstundenkosten (der Wert von) einer Stunde eines Entwicklers, wenn er etwas Nützliches tut.

Wie viele Stunden PVS-Studio spart


Es ist sehr schwer zu sagen, wie viele Stunden pro Jahr PVS-Studio einspart, wenn Fehler in einem frühen Stadium gefunden werden. Fehler können sehr unterschiedlich sein. Ein Entwickler kann einige von ihnen selbst bemerken und sofort beheben. Trotzdem kann ein Fehler manchmal einen Entwickler für einige Tage von nützlichen Aktivitäten ablenken.

Nehmen wir auf der Grundlage empirischer Überlegungen für Skeptiker an, dass der Analysator mindestens 2 Arbeitsstunden eines Entwicklers pro Woche einspart, sodass er nicht nach Fehlern suchen muss, die durch Komponententests oder eine Testabteilung gefunden wurden. Ja, das Beheben eines Fehlers selbst dauert normalerweise Minuten, aber bei den Versuchen, das Problem zu reproduzieren, bei Gesprächen in einem Bugtracker, bei Testläufen, Zusammenführungen usw. dauert es leicht 2 Stunden.

Die oben genannten zwei Stunden sind eine skeptische Option, tatsächlich kann es viel länger dauern. Wenn man bedenkt, dass der Analysator manchmal schwer reproduzierbare Heisenbugs verhindern kann , kann der Durchschnittswert definitiv als 3 Stunden angegeben werden.

Ein Jahr hat ungefähr 50 Wochen. Während eines Jahres spart der Analysator die folgende Anzahl realer Entwicklerarbeitsstunden:

  • skeptische Einstellung zur statischen Analyse: 2 Stunden * 50 = 100 eingesparte Stunden
  • positive Einstellung: 3 Stunden * 50 = 150 eingesparte Stunden

Es ist Zeit, den ROI zu zählen


Mit PVS-Studio kehrt dann jedes Jahr ein Programmierer mit einem Gehalt von 74.000 US-Dollar zum Unternehmen zurück:

  • Wenn Sie ein Skeptiker sind: $ 103 / Stunde * 100 Stunden = $ 10.300
  • Realität: 234 USD / Stunde * 150 Stunden = 35.100 USD.

Nehmen wir nun ein typisches Team von 10 Personen. Nach der Einführung von PVS-Studio können wir davon ausgehen, dass das Team dank der Zeitersparnis nützliche Arbeiten ausführen kann, die Folgendes kosten:

  • Skeptiker: 103.000 US-Dollar
  • Realität: 351.000 US-Dollar

Die endgültige Formel


Lassen Sie uns nun alles in einer einzigen Formel vereinen.

Bezeichnen wir das Jahresgehalt eines Programmierers als S.

Die Anzahl der Entwickler in einem Team beträgt N.

  • Die Formel für einen Skeptiker: N * (S / 1900) * 2,66 * 100
  • Die reale Formel: N * (S / 1900) * 6 * 150

Wie wir Berechnungen für Teams mit einer anderen Anzahl von Entwicklern in Tabellen zitieren. Die Tabelle zeigt den projizierten Geldbetrag, den ein Entwicklerteam für ein Unternehmen verdienen kann, wenn es im Laufe des Jahres, anstatt Fehler zu bearbeiten, damit beschäftigt ist, etwas Neues zu erstellen. Dies sind die Zahlen, die man mit dem Lizenzpreis vergleichen muss.

Tabellenbeschreibung. Obere Reihe: Entwicklergehalt pro Jahr. Linke Spalte: Anzahl der Programmierer in einem Team. Tabellenzelle: Wie viel Geld das Team im Laufe des Jahres zusätzlich für das Unternehmen verdienen wird, wenn das Team anstelle der Bearbeitung von Fehlern (die das PVS-Studio finden kann) mit nützlicher Programmierung beschäftigt ist.

Tabelle für die Skeptiker:

Tabelle N1. Skeptiker. Rot: Die Verwendung von PVS-Studio kann unangemessen sein. Grün: Die Verwendung des statischen Analysators ist gerechtfertigt und nützlich. Blau: Die Verwendung ist einzigartig vorteilhaft.

Tabelle N1. Skeptiker. Rot: Die Verwendung von PVS-Studio kann unangemessen sein. Grün: Die Verwendung des statischen Analysators ist gerechtfertigt und nützlich. Blau: Die Verwendung ist einzigartig vorteilhaft.

Die aktuelle Tabelle:

Tabelle N2. Realität Rot: Die Verwendung von PVS-Studio kann unangemessen sein. Grün: Die Verwendung des statischen Analysators ist gerechtfertigt und nützlich. Blau: Die Verwendung ist einzigartig vorteilhaft.

Tabelle N2. Realität Rot: Die Verwendung von PVS-Studio kann unangemessen sein. Grün: Die Verwendung des statischen Analysators ist gerechtfertigt und nützlich. Blau: Die Verwendung ist einzigartig vorteilhaft.

Die zweite Tabelle ist unserer Ansicht nach gültig, und es ist sinnvoll, diese bei der Beurteilung der Durchführbarkeit des Lizenzerwerbs zu berücksichtigen.

Hinweis


Natürlich sind die angegebenen Berechnungen nicht immer und nicht überall angemessen. Wenn beispielsweise der Preis für Fehler und Schwachstellen für das Projekt extrem hoch ist, gibt es keinen Grund, den Wert der Verwendung von PVS-Studio mit Gehältern zu verbinden. In solchen Projekten sollte man die möglichen Geld- und Reputationsverluste bewerten und sie mit der Verringerung des Risikos bei Verwendung eines Code-Analysators in Verbindung bringen. Dies ist eine eigene Geschichte, und wir wissen noch nicht, wie wir sie unter dem Gesichtspunkt der Berechnungen angehen sollen.

Auch Berechnungen für Outsourcing-Unternehmen funktionieren möglicherweise nicht. Das mag nicht sehr schön klingen, 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 des Analysegeräts sogar die Einnahmen reduzieren. Dies wird indirekt dadurch bestätigt, dass es unter den Kunden von PVS-Studio keine Outsourcing-Unternehmen gibt. Darüber hinaus können auf den ersten Blick in solchen Unternehmen einige seltsame Prozesse auftreten. In Zeiten geringerer Aktivität kann das Unternehmen ein Projekt auch mit Verlust übernehmen. Es ist besser, als einige Entwickler im Urlaub aufzulösen. Sie wären lieber mit etwas beschäftigt.

Fazit


Auch wenn die Berechnungen möglicherweise nicht für alle Unternehmen geeignet sind, hoffen wir, dass wir es geschafft haben, zu demonstrieren, wie die Bewertung der Effektivität der Verwendung von PVS-Studio im Hinblick auf das gesamte Geschäft angegangen werden kann.

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


All Articles