Dari waktu ke waktu kami ditanyai manfaat apa yang akan diterima perusahaan dari segi moneter dengan menggunakan alat analisa PVS-Studio. Kami memutuskan untuk menyusun jawaban dalam bentuk artikel dan memberikan tabel yang menunjukkan bagaimana penganalisa dapat bermanfaat. Kami tidak dapat membuktikan keandalan mutlak dari semua perhitungan dalam artikel, tetapi kami pikir pembaca akan setuju dengan pemikiran kami, dan ini akan membantu untuk membuat keputusan tentang masalah mendapatkan lisensi.
Pertama, kami ingin menerapkan kalkulator ROI di situs dan memposting deskripsi terperinci tentang prinsip kerjanya. Namun, setelah menyiapkan uraian, menjadi jelas bahwa kalkulator tidak berguna. Cukup dari tabel-tabel yang diberikan dalam penjelasan. Karenanya, kami hanya membingkai penjelasan ini dalam bentuk artikel yang sedang Anda baca sekarang. Kami berharap ini akan membantu memastikan bahwa penggunaan reguler dari alat analisa kode statis PVS-Studio adalah rasional.
PVS-Studio adalah alat untuk mendeteksi kesalahan dan kerentanan potensial dalam kode sumber program yang ditulis dalam C, C ++, C # dan Java. Ini berjalan pada Windows, Linux, dan macOS.
Mari kita hitung pengembalian investasi dari menggunakan penganalisis kode statis PVS-Studio dalam mode "skeptis" selama proses pengembangan, dan kemudian dalam versi yang lebih realistis.
Nilai Jam Programmer
Untuk menentukan berapa banyak uang yang akan dikembalikan oleh PVS-Studio, pertama-tama Anda perlu menghitung berapa biaya (nilai) sebenarnya dari jam kerja programmer.
Faktanya adalah bahwa tidak cukup hanya dengan mengambil gaji bulanan seorang programmer dan membaginya dengan 160 (jumlah rata-rata jam dalam sebulan pada 40 jam minggu kerja).
Pertama, programmer, seperti karyawan di bidang lain, mendatangkan lebih banyak uang daripada yang dibayar, jika tidak bisnis akan bekerja pada minus. Pemrogram perlu diberi tempat kerja, membayar sewa tempat, membeli kue untuk mereka, menyediakan internet, dan sebagainya. Oh ya, masih ada bonus, pesta perusahaan, berbagai bonus.
Pada saat yang sama, penggunaan seorang programmer harus menguntungkan, yaitu, ia harus secara langsung atau tidak langsung membawa laba bersih kepada perusahaan. Dalam prakteknya, ini berarti bahwa pekerjaan seorang programmer, tergantung pada situasinya, membawa 2-10 kali lebih banyak uang daripada yang dihabiskan untuk gajinya. Kami menekankan sekali lagi bahwa programmer di sini tidak berbeda dengan karyawan lainnya. Outsourcing memiliki beberapa fitur, tetapi ini adalah cerita yang berbeda.
Untuk pembaca yang skeptis, kita mengambil koefisien 2. Artinya, programmer membawa 2 kali lebih banyak uang daripada yang dihabiskan untuk gajinya. Faktanya, perusahaan dengan rasio seperti itu hampir mencapai titik impas. Lebih jujur untuk mengambil koefisien sama dengan setidaknya 3.
Apa artinya semua ini? Jika programmer keluar dari proses pengembangan selama 1 jam, perusahaan tidak menerima jumlah yang sama dengan jam kerjanya, tetapi 2 atau 3 kali lebih banyak.
Ada faktor kedua yang mempengaruhi harga jam kerja nyata. Faktanya adalah bahwa seorang karyawan sama sekali tidak memprogram 8 jam sehari. Tidak mungkin untuk membayangkan bahwa seseorang datang di pagi hari dan duduk, jadi selama 8 jam, tanpa henti, ia terlibat dalam kode. Programmer bekerja dengan Trello, berpartisipasi dalam rapat, menjawab surat melalui pos, berpartisipasi dalam tinjauan kode. Pada akhirnya, dia masih perlu ke toilet dan minum teh :). Dalam kasus terbaik, ini akan bekerja secara langsung dengan kode selama 6 jam. Dan jika Anda tidak membaca teks ini dalam skeptisisme, maka Anda memahami bahwa sebenarnya 4 jam adalah waktu yang jauh lebih dapat dipercaya.
Jadi ternyata biaya satu jam perlu dikalikan dengan 8/6 = 1,33 (mode skeptis) atau 8/4 = 2 (opsi lebih dekat dengan kenyataan).
Sekarang kita gandakan dua koefisien yang dipertimbangkan dan dapatkan koefisien akhir yang dengannya Anda perlu mengalikan biaya jam kerja programmer:
- koefisien untuk skeptis: 2 * 1,33 = 2.66
- Koefisien mendekati kenyataan: 3 * 2 = 6
Dalam praktiknya, koefisien akan sedikit lebih besar, karena kami tidak memperhitungkan liburan dalam perhitungan kami.
Sekarang mari kita lihat apa artinya bagi perusahaan untuk mengeluarkan seorang programmer dengan gaji 100.000 rubel dari alur kerja selama 1 jam.
Catatan Untuk memahami, kami mencatat bahwa sebenarnya perusahaan menghabiskan lebih dari 100.000 rubel untuk pembayaran gaji. Perlu dicatat bahwa perusahaan memberikan kontribusi ke berbagai dana (“pajak gaji”). Dan di tangan setelah dikurangi 13% dari pajak, seseorang menerima 87.000 rubel. Untuk menyederhanakan perhitungan, kami tidak akan mempertimbangkan pengurangan akun dan mengasumsikan bahwa perusahaan hanya membelanjakan 100.000.Kami memutuskan untuk mencatat ini untuk menunjukkan bahwa kami tidak mendapatkan keuntungan dari PVS-Studio.
Dengan gaji 100.000 rubel, angka 1 jam kerja adalah 625 rubel. Ternyata jika programmer terganggu selama 1 jam untuk memperbaiki kesalahan, maka perusahaan tidak akan dapat menghasilkan karena ini:
- untuk skeptis: 625 rubel / jam * 2,66 = 1660 rubel / jam
- pada kenyataannya lebih dari: 625 rubel / jam * 6 = 3750 rubel / jam
Ini adalah nilai nyata (nilai) dari satu jam programmer ketika dia sibuk dengan pekerjaan yang bermanfaat.
Berapa jam yang disimpan oleh PVS-Studio
Sangat sulit untuk mengatakan berapa jam per tahun PVS-Studio akan dihemat dengan menemukan kesalahan pada tahap awal. Kesalahannya sangat berbeda. Beberapa dari mereka langsung diperhatikan oleh programmer dan segera diperbaiki. Dan terkadang bug dapat mengalihkan perhatian programmer dari aktivitas yang berguna selama
beberapa hari .
Untuk alasan empiris untuk skeptis, kami mengatakan bahwa penganalisa akan menghemat setidaknya 2 jam kerja programmer per minggu, menghilangkan kebutuhan untuk mencari bug yang ditemukan oleh unit test atau departemen pengujian. Ya, memperbaiki bug biasanya memakan waktu beberapa menit, tetapi upaya untuk mereproduksi masalah, korespondensi dalam pelacak bug, uji coba, penggabungan, dan sebagainya, akan dengan mudah memakan 2 jam ini.
Dua jam di atas adalah pilihan skeptis, pada kenyataannya, mungkin ada lebih banyak. Menimbang bahwa kadang-kadang penganalisa dapat mencegah munculnya
tas heisen yang mereproduksi
keras , sangat mungkin untuk menunjukkan nilai rata-rata 3 jam.
Ada sekitar 52 minggu dalam setahun. Dalam setahun, penganalisa menghemat jam kerja programmer sebenarnya:
- skeptis tentang analisis statis: 2 jam * 52 = 104 jam disimpan
- sikap positif: 3 jam * 52 = 156 jam dihemat
Saatnya menghitung ROI
Kemudian penggunaan PVS-Studio oleh satu programmer dengan gaji 100.000 rubel akan kembali ke bisnis per tahun:
- Jika Anda skeptis: 1.660 rubel / jam * 104 jam = 172.640 rubel
- Sungguh: 3750 rubel / jam * 156 jam = 585.000 rubel
Sekarang mari kita ambil tim pengembangan tipikal yang terdiri dari 10 orang. Setelah menerapkan PVS-Studio, kita dapat berharap bahwa berkat waktu yang dihemat, tim akan dapat melakukan pekerjaan yang bermanfaat dengan biaya:
- Skeptis: 1.726.400 rubel
- Realita: 5 850.000 rubel
Formula akhir
Jadi, sekarang mari kita gabungkan semuanya menjadi satu formula.
Nyatakan gaji bulanan programmer sebagai S.
Jumlah programmer dalam sebuah tim dilambangkan dengan N.
- Rumus untuk skeptis: N * (S / 160) * 2.66 * 104
- Formula Nyata: N * (S / 160) * 6 * 156
Sekarang kami hadir dalam bentuk tabel perhitungan untuk tim dengan ukuran lain. Tabel menunjukkan jumlah uang yang diprediksi bahwa tim pengembangan untuk perusahaan dapat memperolehnya jika selama tahun ini alih-alih mengedit bug, ia akan sibuk membuat sesuatu yang baru. Angka-angka ini harus dibandingkan dengan biaya lisensi.
Deskripsi tabel. Baris atas: gaji pengembang bulanan. Kolom kiri: jumlah programmer dalam suatu tim. Table cell: berapa banyak uang yang tim akan dapatkan untuk perusahaan sepanjang tahun jika, alih-alih mengedit bug yang ditemukan PVS-Studio, itu akan melakukan pemrograman yang bermanfaat.
Tabel untuk skeptis:

Tabel N1. Skeptis. Merah: penggunaan PVS-Studio dapat dibenarkan. Hijau: Menggunakan penganalisa statis dibenarkan dan bermanfaat. Biru: penggunaan jelas bermanfaat.Meja nyata:

Tabel N2. Realita Merah: penggunaan PVS-Studio dapat dibenarkan. Hijau: Menggunakan penganalisa statis dibenarkan dan bermanfaat. Biru: penggunaan jelas bermanfaat.Tabel kedua, menurut pendapat kami, dapat diandalkan, dan masuk akal baginya untuk dibimbing dalam menilai kelayakan ekonomi untuk memperoleh lisensi.
Catatan
Tentu saja, perhitungan di atas tidak selalu dan tidak selalu relevan. Misalnya, jika biaya kesalahan dan kerentanan untuk suatu proyek sangat tinggi, maka tidak ada gunanya menghubungkan nilai dari menggunakan PVS-Studio dengan gaji seorang programmer. Dalam proyek semacam itu, kemungkinan kerugian moneter dan reputasi harus dinilai dan harus sudah dikaitkan dengan pengurangan risiko saat menggunakan penganalisa kode. Ini adalah cerita yang terpisah, dan kami belum tahu cara mendekatinya dari sudut pandang perhitungan.
Selain itu, perhitungan mungkin tidak berfungsi untuk perusahaan outsourcing. Ini mungkin kedengarannya tidak terlalu bagus, tetapi perusahaan semacam itu tertarik untuk menjual jam sebanyak mungkin untuk pengembangan, pengujian dan pemeliharaan. Dalam arti tertentu, menggunakan penganalisis hanya dapat mengurangi pendapatan mereka. Ini secara tidak langsung dikonfirmasi oleh fakta bahwa tidak ada perusahaan outsourcing di antara klien PVS-Studio. Plus, proses aneh kadang-kadang dapat terjadi di perusahaan seperti itu pada pandangan pertama. Sebuah perusahaan pada saat beban kerja rendah dapat mengambil beberapa jenis proyek, bahkan pada kerugian. Ini lebih baik daripada membiarkan beberapa pengembang pergi berlibur. Biarkan mereka menjadi lebih baik di tempat kerja dan sibuk dengan sesuatu.
Omong-omong, perhitungan dan tabel di atas berbeda dari yang diberikan dalam
versi bahasa Inggris artikel . Kami harus memperhitungkan tingkat gaji yang berbeda, yang ternyata PVS-Studio berguna untuk hampir semua tim. Yah, mungkin memang begitu. Ini secara tidak langsung dikonfirmasi oleh fakta bahwa AS dan Eropa memberi kami lebih banyak pesanan daripada Rusia, meskipun di Rusia mereka tahu lebih banyak tentang kami.
Kesimpulan
Jadi, walaupun perhitungannya mungkin tidak cocok untuk semua perusahaan, kami berharap bahwa kami dapat menunjukkan cara mendekati penilaian efektivitas menggunakan PVS-Studio dari sudut pandang bisnis secara keseluruhan.

Jika Anda ingin berbagi artikel ini dengan audiens yang berbahasa Inggris, silakan gunakan tautan ke terjemahan: Andrey Karpov.
ROI PVS-Studio .