PVS-Studioアナライザーを使用することで、金銭的にどのような利益が得られるのかを時々尋ねられます。 サイトにROI計算機を実装し、その動作原理の詳細な説明を投稿することにしました。 しかし、最初に、議論のために自分の考えと計算を提出することにしました。 計算機を可能な限り信頼性が高く説得力のあるものにするのに役立つ、興味深い有用なコメントを取得したいと考えています。
開発プロセス中にPVS-Studio静的コードアナライザーを使用した場合の投資収益率を計算できる計算機の説明を提供します。
記事の新しいバージョン: RU 、 EN
|
デフォルトの計算機は懐疑的なモードです。 ただし、この記事を読んだ後、モードに切り替える方がより正確であることに同意することを願っています。記事「PVS-Studio ROI」で説明されている計算を信頼します:)。
プログラマー時間の値
PVS-Studioが返す金額を決定するには、まずプログラマーの労働時間の実際のコスト(価値)を計算する必要があります。
実際には、プログラマの月給を受け取ってそれを160(週40時間の労働での1か月の平均時間)で割るだけでは十分ではありません。
第一に、他の分野の従業員と同様に、プログラマーは給与よりも多くのお金を持ち込みます。そうでなければ、ビジネスはマイナスで機能します。 プログラマーは職場を提供され、施設の家賃を支払い、彼らのためにクッキーを購入し、インターネットを提供するなどの必要があります。 そうそう、まだボーナス、企業パーティー、さまざまなボーナスがあります。
同時に、プログラマーの使用は有益である必要があります。つまり、プログラマーは直接的または間接的に会社に純利益をもたらす必要があります。 実際には、これは、状況に応じてプログラマの仕事が給与に費やされる額の2〜10倍のお金をもたらすことを意味します。 ここでもう一度強調しますが、ここのプログラマーは他の従業員と何の違いもありません。 アウトソーシングにはいくつかの機能がありますが、これは別の話です。
懐疑的な読者の場合、係数2を使用します。つまり、プログラマーは給与に費やされる金額の2倍のお金を持ち込みます。 実際、このような比率の企業は、損益分岐点でバランスを取っています。 少なくとも3の係数を取る方がより正直です。
これはどういう意味ですか? プログラマーが開発プロセスから1時間脱落した場合、会社はその作業時間に相当する量を受け取りませんでしたが、2〜3倍多く受け取りました。
実際の労働時間の価格に影響する2番目の要因があります。 事実、従業員は1日8時間はまったくプログラムしていません。 朝にどのようにやって来て、どのように座ったかという人が、停止することなく8時間にわたってコードで作業していると想像することは不可能です。 プログラマーはTrelloと連携し、会議に参加し、メールで回答し、コードレビューに参加します。 最後に、彼はまだトイレに行き、お茶を飲む必要があります:)。 最良の場合、6時間コードで直接動作します。 そして、あなたがこのテキストを懐疑的に読んでいないなら、あなたは実際に4時間がはるかに信じられない時間であることを理解します。
したがって、1時間のコストに8/6 = 1.33または2をさらに掛ける必要があることがわかります。
次に、2つの考慮された係数を乗算し、プログラマの1時間の作業のコストを乗算する必要がある最終的な係数を取得します。
- 懐疑論者の係数:2 * 1.33 = 2.66
- 現実に近い係数:3 * 2 = 6
実際には、計算では休暇を考慮しないため、係数はわずかに大きくなります。
ここで、100,000ルーブルの給与を持つ会社のプログラマーが1時間のワークフローで失うことが、会社にとって何を意味するのかを見てみましょう。
ご注意 理解するために、実際には、会社は給与の支払いに100,000ルーブル以上を費やしていることに注意してください。 会社はさまざまな基金(「給与税」)に寄付していることに注意してください。 そして、税の13%を源泉徴収した後、手に87,000ルーブルを受け取ります。 計算を簡素化するために、控除を考慮せず、会社が100,000だけを費やすと仮定します。これをメモして、PVS-Studioに有利ではない丸めを行っていることを示すことにしました。
給与が100,000ルーブルの場合、1時間の労働率は625ルーブルになります。 プログラマーがエラーを修正するために1時間気を取られた場合、会社はこのために収益を上げることができません。
- 懐疑論者の場合:625ルーブル/時間* 2.66 = 1660ルーブル/時間
- 実際には以上:625ルーブル/時間* 6 = 3750ルーブル/時間
これは、プログラマが有用な仕事で忙しいときの1時間の実際の値(値)です。
PVS-Studioは何時間節約しますか
初期段階でエラーを見つけることによってPVS-Studioが年間何時間節約できるかを言うのは非常に困難です。 エラーは大きく異なります。 それらのいくつかは、プログラマーによってすぐに気づかれ、すぐに修正されます。 そして時にはバグがプログラマを数日間役に立つ活動からそらします。
懐疑論者の経験的な理由から、アナライザーは週に少なくとも2時間のプログラマーを節約し、ユニットテストまたはテスト部門で見つかったバグを探す必要がなくなると言います。 はい、バグの修正には通常数分かかりますが、問題の再現、バグクラッカーでの対応、テスト実行、マージなどは、この2時間を簡単に消費します。
アナライザーは、再現性の低いハイゼンバッグの出現を防ぐことができる場合があることを考慮すると、平均値3時間を示すことはかなり可能です。
1年に約52週間があります。 1年で、アナライザーはプログラマーの実際の以下の時間を節約します。
- 静的分析に関する懐疑論:2時間* 52 = 104時間節約
- 前向きな姿勢:3時間* 52 = 156時間節約
ROIをカウントする時間です
その後、100,000ルーブルの給与を持つ1人のプログラマーによるPVS-Studioの使用は、毎年ビジネスに戻ります。
- あなたが懐疑的である場合:1,660ルーブル/時間* 104時間= 172,640ルーブル
- 本当に:3750ルーブル/時間* 156時間= 585,000ルーブル
次に、10人の典型的な開発チームを取り上げます。 PVS-Studioを実装すると、時間を節約したおかげで、チームは以下の費用で有用な作業を行えるようになると期待できます。
- 懐疑論者:1,726,400ルーブル
- 現実:5 850 000ルーブル
最終式
それでは、すべてを計算機で使用される単一の数式に結合しましょう。
プログラマーの月給をSとして示します。
チーム内のプログラマの数はNで示されます。
- 懐疑論者の式:N *(S / 160)* 2.66 * 104
- 実際の数式:N *(S / 160)* 6 * 156
ここで、他の規模のチームのテーブル計算の形式で提示します。 この表は、会社の開発チームがバグを編集する代わりに何か新しいものを作成するのに忙しい場合に稼ぐことができる予測金額を示しています。 これらの数値は、ライセンスのコストと比較する必要があります。
トップライン:チーム内のプログラマーの数。 左の列:開発者の給与。
懐疑論者のための表:
表N1。 懐疑的。 赤:PVS-Studioの使用は不当な場合があります。 緑:静的アナライザーを使用することは正当化され、有用です。 青:明らかに有益です。
実テーブル:
表N2。 現実。 赤:PVS-Studioの使用は不当な場合があります。 緑:静的アナライザーを使用することは正当化され、有用です。 青:明らかに有益です。
私の意見では、2番目の表は信頼できるものであり、彼女がライセンス取得の経済的実行可能性を評価する際の指針となることは合理的です。
ご注意
もちろん、上記の計算は常にではなく、常に関連しているわけでもありません。 たとえば、プロジェクトのエラーや脆弱性の価格が非常に高い場合、PVS-Studioを使用することで得られる価値とプログラマの給与を関連付ける意味はありません。 このようなプロジェクトでは、金銭的および評判上の損失の可能性を評価する必要があり、コードアナライザーを使用する際のリスクの低減にすでに関連付けられている必要があります。 これは別の話であり、計算の観点からどのようにアプローチするかはまだわかりません。
また、アウトソーシング会社では計算が機能しない場合があります。 これはあまり良いことではないかもしれませんが、そのような企業は開発、テスト、およびメンテナンスのためにできるだけ多くの時間を売りたいと考えています。 ある意味では、アナライザーを使用しても収益が減少するだけです。 これは、PVS-Studioクライアントの中にアウトソーシング会社が存在しないという事実によって間接的に確認されています。 さらに、そのような企業では、一見すると奇妙なプロセスが発生することがあります。 仕事量が少ない会社は、たとえ損失があっても、ある種のプロジェクトを引き受けることができます。 これは、一部の開発者に休暇をとらせるよりも優れています。 仕事で上手くなり、何かで忙しくなります。
おわりに
したがって、計算はすべての企業に適しているわけではありませんが、ビジネス全体の観点からPVS-Studioを使用する効果の評価にアプローチする方法を示すことができたと思います。