PVS-Studio ROI: bagaimana tidak kehilangan jutaan (draft versi artikel)

ROI PVS-Studio
Dari waktu ke waktu kami ditanyai manfaat apa yang akan diterima perusahaan dalam bentuk uang dari menggunakan alat analisa PVS-Studio. Saya memutuskan untuk menerapkan kalkulator ROI di situs dan memposting deskripsi terperinci tentang prinsip-prinsip operasinya. Tetapi pertama-tama, saya memutuskan untuk menyerahkan pemikiran dan perhitungan saya untuk diskusi. Saya berharap mendapatkan komentar yang menarik dan bermanfaat yang akan membantu membuat kalkulator ini dapat diandalkan dan meyakinkan.

Kami menawarkan kepada Anda deskripsi kalkulator yang memungkinkan Anda menghitung laba atas investasi dengan menggunakan penganalisa kode statis PVS-Studio dalam proses pengembangan.

Versi baru artikel: RU , EN .

Kalkulator default dalam mode skeptis. Namun, kami berharap bahwa setelah membaca artikel Anda akan setuju bahwa akan lebih tepat untuk beralih ke mode: Saya percaya perhitungan yang dijelaskan dalam artikel "PVS-Studio ROI" :).

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 dengan 40 jam kerja seminggu).

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. Saya 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 minimal 3.

Apa artinya semua ini? Jika programmer keluar dari proses pengembangan selama 1 jam, maka 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. Mustahil untuk membayangkan bahwa seseorang, bagaimana dia datang di pagi hari dan bagaimana dia duduk, telah bekerja dengan kode selama 8 jam tanpa berhenti. Programmer bekerja dengan Trello, berpartisipasi dalam rapat, menjawab 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 atau 2.

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 memperhitungkan pengurangan akun dan mengasumsikan bahwa perusahaan hanya menghabiskan 100.000. Saya memutuskan untuk mencatat ini untuk menunjukkan bahwa saya melakukan pembulatan bukan demi 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 programmer seminggu, 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 cracker bug, uji coba, penggabungan, dan sebagainya akan dengan mudah memakan 2 jam ini.

Menimbang bahwa kadang-kadang penganalisis 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, yang digunakan dalam kalkulator.

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 tersebut menunjukkan jumlah uang yang diprediksi yang dapat dihasilkan oleh tim pengembangan untuk perusahaan jika alih-alih mengedit bug, ia akan sibuk membuat sesuatu yang baru. Angka-angka ini harus dibandingkan dengan biaya lisensi.

Baris atas: jumlah programmer dalam tim. Kolom kiri: gaji pengembang.

Tabel untuk skeptis:

Tabel N1.  Skeptis  Merah: penggunaan PVS-Studio dapat dibenarkan.  Hijau: Menggunakan penganalisa statistik dibuktikan dan bermanfaat.  Biru: penggunaan jelas bermanfaat.


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 statistik dibuktikan dan bermanfaat.  Biru: penggunaan jelas bermanfaat.


Tabel N2. Realita Merah: penggunaan PVS-Studio dapat dibenarkan. Hijau: Menggunakan penganalisa statis dibenarkan dan bermanfaat. Biru: penggunaan jelas bermanfaat.

Tabel kedua, menurut saya, 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 harga kesalahan dan kerentanan untuk suatu proyek sangat tinggi, maka tidak ada gunanya mengaitkan 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 saya 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 di perusahaan-perusahaan semacam itu proses-proses aneh kadang-kadang bisa terjadi 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.

Kesimpulan


Jadi, walaupun perhitungannya mungkin tidak cocok untuk semua perusahaan, saya berharap saya dapat menunjukkan bagaimana cara mendekati penilaian efektivitas menggunakan PVS-Studio dari sudut pandang bisnis secara keseluruhan.

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


All Articles