Memecahkan bug mana yang akan memberikan manfaat biaya terbesar [ditutup]

9

Saya ingin mendapatkan ide untuk mengkategorikan bug berdasarkan seberapa mudahnya untuk menyelesaikannya dan seberapa besar manfaatnya bagi saya. misalnya, jika ada bug yang akan membutuhkan waktu satu jam (tutup file ganda dll.) untuk menyelesaikan vs lainnya yang membutuhkan waktu sehari (kesalahan segmentasi). Tetapi jika menyelesaikan bug pertama tidak terlalu penting, maka saya mungkin akan bekerja pada bug kedua.

Apakah ada makalah penelitian yang mengkategorikan bug berdasarkan manfaat-biaya atau metrik serupa?


Katakanlah adalah mungkin untuk mengelompokkan bug berdasarkan karakteristik bug misalnya kerentanan keamanan, kesalahan memori, kesalahan logika dll. Di dimensi lain mungkin ada parameter seperti kesulitan (mudah, sedang, keras). Apakah ada dimensi lain yang harus saya cari. Untuk mempermudah, saya dapat mengasumsikan dua hal:

  1. Setiap programmer dalam tim sama-sama mampu memecahkan bug apa pun
  2. Tidak ada batas waktu
AK
sumber
Saya setuju dengan kamu. Saya tidak meminta pendekatan universal tetapi perkiraan. Ada bug tertentu yang dapat dengan mudah kita perkirakan waktunya (yang kadang-kadang mungkin salah tetapi tidak apa-apa).
AK
1
Jangan kategorikan pada waktu yang akan / mungkin diperlukan. Kategorikan pada kepentingan: "show stoppers" (macet, tidak mulai, ui tidak dapat digunakan), "kebenaran", "kepuasan pelanggan", dll; dan tentang urgensi. Pesanlah sesuai yang penting dan mendesak; penting tetapi tidak mendesak; tidak penting dan mendesak; tidak penting tidak mendesak. (Jika Anda hanya melihat hal-hal yang mendesak maka hal-hal yang tidak penting cenderung terdesak oleh hal-hal yang tidak penting).
Marjan Venema
2
Pertanyaan ini juga diposting di sini: pm.stackexchange.com/questions/9664/… . Saya tidak berpikir bahaya telah dilakukan karena ini bisa dibilang masuk ke Manajemen Proyek. Saya menautkan ini sehingga orang lain yang menemukan pertanyaan ini dapat melihat semua jawabannya. Semoga ini membantu! :)
jmort253
"Apakah ada makalah penelitian ..." - Pertanyaan yang meminta kami untuk merekomendasikan alat, pustaka, atau sumber daya di luar situs favorit adalah di luar topik bagi Pemrogram karena mereka cenderung menarik jawaban yang beralasan dan spam. Alih-alih, jelaskan masalahnya dan apa yang telah dilakukan sejauh ini untuk menyelesaikannya.
nyamuk

Jawaban:

11

Sistem pelacakan bug biasanya memiliki dua, mungkin tiga bidang yang mengidentifikasi rasio manfaat biaya bug:

  1. Prioritas (ditugaskan oleh pemilik bisnis)
  2. Severity (klasifikasi bug - kritis ke rendah)
  3. Perkiraan jam (tebakan berapa lama waktu yang diperlukan)

Seperti yang Anda perhatikan, ini mengidentifikasi bug mana yang paling penting untuk dikerjakan.

Sistem yang diajukan dalam PEF / REV: Metrik pelacakan bug multi-dimensi menambahkan lebih banyak informasi tentang komponen bisnis dan pengembang untuk keuntungan biaya bug.

Semua nilai berada pada skala 1 .. N (nilai atas yang sama untuk masing-masing).

DTP diidentifikasi oleh bisnis:

  • P ain - Betapa menyakitkan bug itu
  • E ffort - Berapa banyak upaya yang diperlukan untuk mengatasi bug
  • F requency - Seberapa sering bug terjadi

REV berasal dari pengembang:

  • R isk - Betapa beresikonya memperbaiki sistem
  • E ffort - Berapa banyak upaya yang ada untuk memperbaiki bug
  • V erifiability - Betapa mudahnya untuk memverifikasi perbaikan bug

Jika, misalnya, Anda memiliki crash yang jarang terjadi yang mudah untuk diselesaikan (nyalakan autosave), itu bisa menjadi DTP 7,1,1 (skor 9). Sementara memperbaikinya mungkin melibatkan perubahan ke modul inti dan memiliki REV 9,3,2 (skor 14).

Di sisi lain, Anda dapat memiliki gangguan yang selalu ada (3,3,9 - skor 15) yang memiliki perbaikan sepele (1,1,3 - skor 5).

Dalam contoh ini, gangguan tampaknya menjadi hal biaya / manfaat yang lebih baik untuk dikerjakan.


sumber
Saya suka ini. Sepertinya akan mungkin untuk menerapkan ini pada "fitur baru" juga.
Martin Wickman
Ini sangat informatif. Tim kami menggunakan bugzilla, dan saya pikir itu tidak memiliki fitur serupa.
AK
1
@AdityaKumar Bugzilla sangat dapat dikustomisasi meskipun hal ini dapat dilakukan dengan penambahan bidang khusus dan kemudian menjalankan laporan terhadap nilai PEF / REV.
@MartinWickman absoultely. REV dapat diterjemahkan dengan hampir tidak ada perubahan. PEF kemungkinan akan menjadi kombinasi Utilitas (betapa menyenangkannya memiliki) dan Frekuensi (Seberapa sering digunakan) dan Nilai (Seberapa banyak nilai yang dirasakan dari fitur akan). (Dan terima kasih telah membuat saya berpikir tentang dimensi itu)
5

Masalah yang Anda gambarkan sangat umum dan jawaban terbaik mungkin "gunakan perasaan Anda".

Saya biasanya membagi bug dalam tiga kategori: Crashing, Annoying, Cosmetic (mereka mungkin disebut 1, 2, 3 - itu tidak masalah) dan kemudian meletakkan perkiraan keseluruhan pada waktu yang dibutuhkan untuk memperbaiki setiap bug (semua bug harus memiliki perkiraan kasar yang diperbarui setiap saat).

Saat menyelesaikan bug, Crashing> Annoying> Cosmetic, dan kemudian saya hanya melakukan "pekerjaan terpendek pertama" untuk mendapatkan hasil awal sebanyak mungkin.

Saya merasa SANGAT sulit untuk menghitung segala bentuk manfaat finansial langsung dari penyelesaian bug apa pun - kecuali itu adalah pekerjaan bergaji yang sangat tertutup.

Satu catatan yang mungkin Anda butuhkan adalah bahwa Anda benar-benar harus hidup sampai titik kelima pada The Joel Test - ini mungkin dipengaruhi oleh ukuran tim dan distribusi di antara berbagai masalah "lokal" lainnya - tetapi ini umumnya merupakan tanda praktik yang baik.

Michael Banzon
sumber
1
Setuju di sini, tetapi arti dari masing-masing klasifikasi tersebut adalah penting untuk disetujui jika Anda bekerja dengan orang lain menggunakannya. "Menghancurkan" tampaknya cukup objektif - bisa atau tidak. Tapi kemudian kita sampai pada bagian "Mengganggu" / "Kosmetik". Menyebalkan sekali? Dan kepada siapa? Dll Seringkali ada klasifikasi lain di antara "Crashing" dan "Annoying". Di mana "Crashing" mungkin tidak memiliki solusi, "Breaking" (jika saya bisa) mungkin memiliki solusi.
tamouse
Saya setuju @tamouse - contoh saya diterjemahkan dari kata (mungkin buruk) dalam bahasa ibu saya ;-)
Michael Banzon
3

Pertimbangan lain mungkin jenis pengujian atau organisasi pengujian yang mengungkap bug, ketika mencoba untuk menentukan dampak dan biaya bug dan memperbaiki. Pengujian unit atau fungsional mungkin menunjuk pada sesuatu dalam desain yang perlu diubah, dan dengan demikian mengoreksi lebih awal akan lebih mudah dan lebih murah daripada nanti. Pengujian sistem atau integrasi mungkin menunjuk ke sesuatu yang memengaruhi beragam pelanggan yang lebih luas. Dan pengujian Standar, walaupun sering merupakan sesuatu yang tidak penting bagi sebagian besar pelanggan, dapat menyebabkan hilangnya sertifikasi jika tidak diperbaiki dan berdampak negatif pada bisnis.

Yang mengatakan, hanya karena organisasi pengujian tertentu gagal tes tidak seharusnya secara otomatis membuat bug "kritis." Misalnya, mungkin ada godaan untuk mengatakan sesuatu seperti "semua pengujian sistem harus lulus sebelum pengiriman, dengan demikian setiap pengujian sistem yang gagal secara otomatis menghasilkan bug kritis / sangat parah." Semoga tidak ada organisasi yang akan membuat pernyataan itu (kriteria keluar tes yang baik adalah diskusi yang berbeda), tetapi intinya adalah bahwa "tingkat keparahan" bug harus dinilai pada dampaknya terhadap pelanggan, produk, atau citra perusahaan daripada di mana atau kapan ditemukan.

Salah satu cara yang mungkin untuk mengatasi itu adalah dengan membuat perbedaan antara "keparahan" dan "urgensi." Sebagai contoh, ketika tanggal rilis mendekati ada tekanan waktu untuk menentukan apakah bug dengan tingkat keparahan yang lebih rendah dapat memengaruhi sebagian besar pelanggan, memberi bug "urgensi" yang lebih besar dan meningkatkan pekerjaan pada bug tersebut di atas (beberapa) lainnya di Setidaknya sampai tekad itu dapat dibuat. Keseimbangan yang tepat antara keduanya, bersama dengan pengalaman dan penilaian yang baik, akan membantu mengarahkan ke mana waktu dan upaya dihabiskan.

Tandai Grubbs
sumber
2

Selain apa yang orang lain katakan tentang klasifikasi bug, dll, juga mempertimbangkan melihat Afferent Coupling (Ca) untuk menentukan tingkat kekritisan yang mungkin ditunjukkan oleh bug tertentu. Jika Anda memiliki bug dalam modul dengan jumlah Ca yang tinggi, saya mungkin mencari cara untuk memperbaiki yang pertama karena dapat menguntungkan komponen lain dalam sistem. Ca membantu Anda menentukan tingkat tanggung jawab, dan modul yang bertanggung jawab dengan bug di dalamnya merusak keseluruhan aplikasi (baca lebih lanjut tentang Ca di sini: http://www.ibm.com/developerworks/java/library/j-cq04256/index.html ).

Dengan mengingat hal itu, kami cenderung mengategorikan bug dan menempatkannya dalam prioritas berdasarkan dampaknya terhadap pelanggan. Pelanggan Anda akan berbeda-beda, tetapi melibatkan mereka dalam diskusi pada akhirnya akan mengarahkan bug apa yang harus diperbaiki atas orang lain. Ini bukan ilmiah nyata, tetapi sebagai tim keseluruhan kami cenderung untuk mencapai konsensus tentang prioritas dan kategorisasi bug, semua orang memiliki input pada "yang besar" (semua pemangku kepentingan dapat memberikan masukan), dan kami menumpuk dan memutar dari sana.

Mendongkrak
sumber
2

Anda tidak dapat menentukan biaya aktual semua bug. Beberapa bisa, bagi banyak orang sangat sulit untuk diukur. Misalnya, Anda memiliki bug yang menyebabkan semua teks pada tombol sedikit tidak sejajar. Itu membuat produk 1.0 Anda terlihat sedikit ceroboh. Ini tidak menyebabkan program Anda macet, atau pengguna Anda kehilangan data. Mungkin bug yang cukup murah, bukan?

Sekarang, bagaimana jika setiap pelanggan Anda memperhatikan masalah ini, dan setiap pengulas menyebutkannya dalam ulasan produk Anda. Dan bagaimana jika bug ini terbawa dari versi 1.0 ke 1.1 dan 1.2. Perusahaan Anda sekarang mungkin memiliki reputasi menjadi sedikit ceroboh dalam hal kontrol kualitas. Seberapa mahal bug sederhana ini dalam hal potensi penjualan yang hilang untuk perusahaan Anda untuk produk di masa depan? Atau, bagaimana hal ini dapat memengaruhi ulasan yang diperoleh produk Anda - produk Anda mungkin memenuhi kebutuhan pelanggan Anda dengan sempurna, tetapi hanya mendapat nilai 9 dari 10 karena terlihat sedikit ceroboh.

Jadi, Anda tidak hanya perlu melihat biaya bug tertentu dalam hal apa biaya untuk memperbaiki dan itu berdampak langsung pada pengguna, tetapi Anda harus mempertimbangkannya dalam konteks yang lebih besar tentang bagaimana hal itu mempengaruhi persepsi produk Anda di pasar, dan bagaimana persepsi itu memengaruhi penjualan di masa mendatang.

Ini mungkin tampak dibuat-buat tetapi sebenarnya tidak. Pada saat saya menulis ini, Anda dapat pergi ke situs lain di web yang memiliki artikel tentang bagaimana Apple telah memindahkan "1" pada ikon kalender mereka lebih dari satu atau dua piksel. Jika Anda melakukan pencarian, Anda akan melihat beberapa artikel negatif tentang bug kecil ini. Tentu saja, ini tidak secara langsung mempengaruhi garis bawah Apple, tetapi mereka mempromosikan diri mereka sebagai puncak dari desain yang baik, sehingga memiliki bug desain memengaruhi persepsi itu, meskipun hanya sedikit.

Bryan Oakley
sumber
Saya menyukai ide Anda bahwa dampak pada pelanggan / pengguna dapat menjadi kekuatan pendorong besar di mana bug untuk dipecahkan.
AK