Saya telah mendengar dari seorang mantan kolega bahwa tidak semua bug perlu diperbaiki, karena ketika Anda masuk ke daftar prioritas bug, kasus penggunaan yang menyebabkan bug menjadi lebih tidak jelas, atau kepuasan pelanggan yang diperoleh semakin rendah. Tetapi Anda masih harus menghabiskan banyak waktu untuk memperbaiki bug itu.
Dalam upaya meyakinkan pemilik produk kami tentang konsep ini, saya tidak dapat menemukan sumber daya yang baik. Yang bisa saya temukan hanyalah diskusi tentang apakah ada biaya marjinal dalam pengembangan perangkat lunak atau tidak.
Apakah benar-benar sedikit manfaat dalam memperbaiki bug? Apakah ada istilah berbeda yang menjelaskan konsep ini?
project-management
time-management
Gökhan Kurt
sumber
sumber
Jawaban:
Dari perspektif bisnis, perbaikan bug tidak berbeda dengan permintaan fitur. Ini memiliki biaya tertentu dalam waktu pengembangan, dan memiliki nilai tertentu bagi pelanggan. Jika bug tidak kritis, itu benar-benar masuk akal bisnis untuk memprioritaskan fitur berharga di atas perbaikan bug.
Tetapi dari perspektif teknis, bug mungkin lebih kritis, karena bug mengindikasikan kesalahan pada fondasi yang mungkin digunakan / dibangun oleh kode lain, dalam hal ini kesalahannya "menular" dan menambah biaya untuk pemeliharaan di masa depan. Jadi tidak memperbaiki bug adalah hutang teknis yang memerlukan manajemen, sementara tidak menerapkan fitur tidak benar-benar memiliki biaya yang berkelanjutan. Tetapi tingkat hutang teknis yang ditimbulkan oleh bug sangat tergantung pada sifat bug tersebut.
Semua faktor ini harus dipertimbangkan ketika memprioritaskan.
Adapun apakah ada manfaat marjinal untuk memperbaiki bug: Ini diberikan. Karena tidak semua bug memiliki tingkat keparahan yang sama, Anda secara alami memprioritaskan bug yang paling penting terlebih dahulu. Jadi semakin banyak bug yang Anda perbaiki, semakin rendah nilai marginal untuk memperbaiki yang berikutnya. Tetapi apakah itu pernah mencapai tingkat memperbaiki bug tidak sepadan dengan usaha, adalah keputusan bisnis daripada keputusan teknis.
sumber
Ini referensi yang bagus
http://www.joelonsoftware.com/articles/fog0000000043.html
Anda dapat yakin bahwa semakin lama bug itu ada di sini, semakin lama waktu yang diperlukan untuk memperbaikinya begitu mereka menjadi prioritas. Jadi, bukannya memiliki manfaat mentah sekarang, Anda menghindari kerugian yang lebih mahal di masa depan.
Cara yang baik untuk mengelola itu adalah dengan menentukan jumlah waktu yang dialokasikan untuk menangani masalah jaminan simpanan. Ini tidak akan mendorong sebanyak Microsoft, tetapi itu akan memastikan sejumlah penyelesaian masalah di masa depan, jika mereka belum menjadi masalah Anda bahkan jika klien tidak benar-benar peduli.
sumber
Dengan asumsi Anda bekerja untuk organisasi komersial, pasti akan ada seseorang di sana yang mengetahui Analisis Biaya-Manfaat .
Organisasi Anda memiliki jumlah terbatas sumber daya pengembang, dan daftar hal-hal bermanfaat yang tak terbatas untuk dilakukan. Hal-hal yang bermanfaat termasuk menambahkan fitur baru, dan menghapus bug yang ada - menghapus bug meningkatkan perangkat lunak, seperti halnya menambahkan fitur baru.
Jadi jelas ada keputusan yang harus diambil tentang bagaimana mengalokasikan sumber daya terbatas ini ke daftar yang tak terbatas ini, dan tidak terlalu mengejutkan bahwa hasilnya adalah beberapa bug tidak diperbaiki sekarang, atau minggu depan, atau tahun depan, atau di fakta pernah.
Jika Anda mencari pendekatan yang lebih terstruktur di sini, Anda bisa mencoba sistem PEF / REV yang memberikan angka kepada pengguna dan tampilan Programmer bug, sebagai titik awal untuk memutuskan apa yang diperbaiki - dan apa yang tidak.
Lihat juga dua posting ini di sini di Rekayasa Perangkat Lunak:
Memecahkan bug mana yang akan memberikan manfaat biaya terbesar
Hampir setiap bug yang dilaporkan adalah bug prioritas tinggi
sumber
Tidak semua aspek perilaku perangkat lunak yang tidak disengaja atau tidak diinginkan adalah bug. Yang penting adalah memastikan bahwa perangkat lunak memiliki serangkaian kondisi yang berguna dan terdokumentasi di mana ia dapat diandalkan untuk beroperasi dengan cara yang bermanfaat. Pertimbangkan, misalnya, sebuah program yang seharusnya menerima dua angka, gandakan, dan hasilkan hasilnya, dan yang menghasilkan angka palsu jika hasilnya lebih dari 9,95 tetapi kurang dari 10,00, lebih dari 99,95 tetapi kurang dari 100,00, dll Jika program ini ditulis untuk tujuan memproses angka yang produknya antara 3 dan 7, dan tidak akan pernah dipanggil untuk memproses yang lain, memperbaiki perilakunya dengan 9,95 tidak akan membuatnya lebih berguna untuk tujuan yang dimaksudkan. Namun, hal itu mungkin membuat program lebih cocok untuk tujuan lain.
Dalam situasi seperti di atas, akan ada dua tindakan yang masuk akal:
Perbaiki masalah, jika hal itu praktis.
Tentukan rentang di mana output program akan dapat diandalkan dan nyatakan bahwa program hanya cocok untuk digunakan pada data yang diketahui menghasilkan nilai dalam rentang yang valid.
Pendekatan # 1 akan menghilangkan bug. Pendekatan # 2 mungkin membuat kemajuan kurang cocok untuk beberapa tujuan daripada yang seharusnya, tetapi jika tidak ada kebutuhan untuk program untuk menangani nilai-nilai bermasalah yang mungkin tidak menjadi masalah.
Bahkan jika ketidakmampuan untuk menangani nilai 99,95 hingga 100,0 dengan benar adalah hasil dari kesalahan pemrograman [misalnya memutuskan untuk menghasilkan dua digit di sebelah kiri titik desimal sebelum membulatkan ke satu tempat setelah, sehingga menghasilkan 00,00], itu hanya harus dianggap sebagai bug jika program dinyatakan ditentukan sebagai menghasilkan output yang bermakna dalam kasus tersebut. [Kebetulan, masalah tersebut terjadi pada kode printf Turbo C 2.00; dalam konteks itu, itu jelas bug, tetapi kode yang menyebut printf yang salah hanya akan bermasalah jika bisa menghasilkan output dalam rentang bermasalah].
sumber
Dalam pengertian yang longgar, ya, tidak semua bug perlu diperbaiki. Ini semua tentang menganalisis rasio risiko / manfaat.
Apa yang umumnya terjadi adalah bisnis akan mengadakan pertemuan dengan pimpinan teknis dan pemangku kepentingan untuk membahas bug yang tidak jelas dalam tumpukan 'perlu diperbaiki'. Mereka akan memutuskan apakah waktu (= uang) yang diinvestasikan untuk memperbaiki bug akan layak untuk bisnis.
Misalnya, 'bug minor' dapat berupa kesalahan ejaan / tata bahasa di bagian Syarat dan Ketentuan situs web. Individu yang mengemukakan ini mungkin menganggapnya terlalu kecil untuk diubah, tetapi bisnis akan mengenali potensi kerugian yang dapat ditimbulkannya terhadap merek, dan relatif mudahnya memperbaiki beberapa karakter.
Di sisi lain, Anda dapat memiliki bug yang tampaknya penting, tetapi sulit untuk diperbaiki dan hanya memengaruhi jumlah pengguna yang dapat diabaikan. Misalnya tautan tombol minor rusak untuk pengguna yang menggunakan Google Chrome versi lama dan juga Javascriptnya dinonaktifkan.
Alasan lain untuk bisnis TIDAK memperbaiki bug bisa karena waktu yang diinvestasikan akan mengetuk proyek kembali jumlah waktu yang tidak terduga, atau bahwa waktu pengembang akan lebih baik dihabiskan bekerja pada perbaikan / pengkodean lainnya. Bisa juga bug itu cukup kecil sehingga bisa ditayangkan, dan kemudian diperbaiki di kemudian hari.
Harapan yang menjelaskan konsep sedikit lebih baik! Saya pasti akan menghindari memikirkan hal ini secara umum - setiap bug adalah unik dan harus diperlakukan seperti itu.
sumber
Jadi "argumen" mereka sebenarnya
Bug harus diprioritaskan dan ditangani "secara berurutan" seperti halnya Permintaan Fitur baru (tetapi, bisa dibilang, melebihi dan di atas semua yang terakhir).
sumber