Pertanyaannya mungkin terlalu luas. Alasan mengapa tidak terbatas.
jmq
7
Pertanyaannya adalah: kirim dengan bug atau tidak kirim sama sekali :)
Vitor Py
41
Semua produk dilengkapi dengan bug.
Joel Etherton
4
Tentukan BUG. Kami baru-baru ini mengirimkan produk yang tidak mau dipasang. Bug hebat: D
Barfieldmv
2
Apakah maksud Anda 'bug yang dikenal'?
Tidak seorang pun
Jawaban:
12
Saya berasumsi Anda berbicara tentang bug "dikenal" (pertanyaannya tidak ada artinya sebaliknya). Jawabannya tergantung pada faktor-faktor ini:
1) Siapa pengguna dan bagaimana ia akan menerima bug jika ditemukan?
2) Apa dampak potensial (kerusakan) bug?
3) Apakah layak untuk menunda pengiriman perangkat lunak untuk memperbaiki bug?
4) Yang paling penting: apa yang Anda harapkan dari perangkat lunak Anda? Waktu ke pasar? Kualitas? Apakah Anda ingin melihat apakah pelanggan Anda menggunakan perangkat lunak cukup lama untuk menemukan bug?
tapi sepertinya dia menyadari bug itu ... jadi pada saat itu kelihatannya seorang programmer malas untuk tidak memperbaikinya ...
Kenneth
7
@ Kenenneth: Anda bisa melihatnya seperti itu, tetapi produk harus dikirim, dan mereka akan selalu memiliki bug. Ini akan tergantung pada tingkat keparahan bug, apakah Anda menunda batas waktu Anda.
Matt Ellen
1
@ Mat ini benar. Namun bagi saya tampaknya dalam kebanyakan kasus Anda tidak ingin secara sadar mengirimkan produk dengan bug utama. Itu berarti bahwa bug yang tersisa yang Anda ketahui akan menjadi minor yang dalam banyak kasus akan mudah diperbaiki atau setidaknya diselesaikan. Anda tidak dapat menangani bug yang tidak Anda ketahui tetapi jika proses pengujian dilakukan dengan benar, sebagian besar bug harus ditangkap ...
Kenneth
1
Mungkin sarkasme saya tidak jelas ... tetapi mengatakan bahwa "selalu baik-baik saja" untuk mengirim perangkat lunak kereta agak tidak bertanggung jawab. Itu seperti mengatakan "akan selalu ada pembunuh di dunia, jadi tidak masalah jika aku pergi dan membunuh beberapa orang".
DisgruntledGoat
7
@DisgruntledGoat Tidak semua bug sama: beberapa perbaikan mudah, beberapa proyek menghancurkan bencana. Jelas itu harus diperbaiki. Beberapa bug sangat langka, sulit ditemukan, berdasarkan keadaan yang tidak biasa, dan biasanya sulit diperbaiki tanpa penulisan ulang yang besar. Kadang-kadang mereka hanya harus tinggal karena memperbaikinya menawarkan nilai terlalu sedikit dan perangkat lunak perlu dikirim kemarin. Ini semua tentang analisis biaya / risiko / manfaat.
CodexArcanum
33
Ini panggilan penilaian. Ingat, bug bisa banyak hal. Jika itu sebagian besar fungsi itu tidak berfungsi, maka Anda memperbaikinya terlebih dahulu. Jika itu adalah sesuatu yang kecil yang memiliki dampak minimal atau tidak nyata pada manfaat program, Anda mungkin membiarkannya.
Jadi lihatlah dari sudut pandang biaya / manfaat.
Anda mengirimkan produk dengan bug yang dikenal ketika total biaya dan risiko memperbaiki bug melebihi masalah apa pun dan dampak negatif yang timbul dari bug yang ada di luar sana.
Jadi, jika Anda memiliki periode pengujian 2 minggu sebelum Anda rilis, dan bug kecil ditemukan, pertanyaannya adalah ... memperbaiki bug yang bernilai 2 minggu tambahan yang mungkin harus dihabiskan tim untuk menguji ulang aplikasi dan instalasi (langkah yang sering dilupakan tentang pembuatan perangkat lunak)? Berapa biaya untuk reputasi atau penjualan jika perangkat lunak terlambat? Apakah orang akan marah? Mereka mungkin sangat senang hidup dengan bug minor jika fungsi utama dapat dikirimkan tepat waktu.
Risiko termasuk risiko memperkenalkan masalah baru, tidak hanya dalam memperbaiki bug, tetapi juga hal-hal yang mungkin timbul dari membuat instalasi baru.
Dampak negatif adalah waktu dan upaya berurusan dengan pelanggan yang melaporkan bug, dan hal-hal seperti kerusakan reputasi.
Salah ketik di kotak 'tentang' adalah sesuatu yang harus Anda perbaiki. Ini akan memakan waktu sekitar 0,7 detik (dengan asumsi kita berdua mengetik pada kecepatan yang sama). Namun, jika Anda meninggalkan kesalahan ketik itu, orang-orang dapat melihatnya . Ini adalah kematian instan untuk kepercayaan pengguna Anda pada perangkat lunak Anda jika ada kesalahan yang terlihat dalam antarmuka pengguna.
Ini sepertinya benar bagi saya. Sebagian besar waktu ada beberapa bug kecil yang dikenal dalam suatu produk bahkan ketika itu akan dirilis. Mereka cenderung menjadi hal-hal yang sangat tidak biasa dan memiliki efek yang dapat diabaikan pada operasi aktual dan penggunaan perangkat lunak atau hal-hal yang sebagian besar pengguna tidak pernah melihat.
glenatron
3
Memang, kesalahan ketik di UI Anda menghancurkan kepercayaan terhadap kualitas suatu produk (salah, karena banyak programmer hebat tidak bisa berbahasa Inggris dengan baik), namun saya mengerti maksud Anda - bug sepele yang tidak menyebabkan kerusakan nyata dan mungkin tidak akan pernah datang up tidak sebanding dengan kerumitan menahan rilis. Biarkan untuk titik peluru di 1.01.
Phoshi
Jangan biarkan kesalahan ejaan masuk ke aplikasi Anda. Sejujurnya saya lebih malu dengan mereka daripada bug yang sebenarnya.
ChaosPandion
1
Saya tidak tahu apa yang Anda bicarakan tentang ...;)
Andreas Johansson
6
Bug datang dalam berbagai keparahan. Di perusahaan perangkat lunak mana pun saya pernah bekerja di kami telah mengategorikan bug dalam urutan Prioritas dari P0 ke P4.
P0 Apakah perangkat lunak tidak berfungsi / macet dan dapat menyebabkan kerusakan pada bisnis pelanggan. P1 Ini tidak berfungsi seperti yang dirancang dan macet secara konsisten dalam fungsionalitas inti P2 Kadang-kadang macet dan atau sebagian fungsi samping mungkin tidak berfungsi. P3 Beberapa elemen dari perangkat lunak tidak berfungsi seperti yang direncanakan / masalah P4 Kosmetik yang diharapkan.
Saya telah bekerja di tempat-tempat di mana P4 tidak diperbaiki karena mereka memiliki efek kecil pada perangkat lunak.
Saya katakan tidak apa-apa untuk dikirimkan jika perangkat lunak Anda mengetahui masalah P3 / P4, saya akan memasukkannya ke dalam catatan rilis dan mencatat bahwa mereka sedang dikerjakan.
Saya tidak akan pernah merilis perangkat lunak dengan masalah P0, P1 atau P2 yang saya sadari.
Ini disebut " Masalah Diketahui ". Google, Microsoft, Apple, dll. Semua mengirimkan produk dengan bug, baik yang dikenal maupun yang tidak diketahui. Cobalah untuk meminimalkannya, tetapi jangan menunggu untuk kesempurnaan. Kirim cepat, sering kirim.
Anda tidak dapat mengirim perangkat lunak tanpa bug. Saran yang bisa saya berikan adalah bahwa selalu lebih baik untuk mengatakan kepada pelanggan Anda: "Versi ini tidak bisa melakukan itu dan itu, tetapi kami akan memperbaikinya" daripada situasi ketika pelanggan memberi tahu ANDA bahwa Anda memiliki bug.
Pada catatan yang serius, kecuali jika Anda adalah programmer yang sempurna dengan pengaturan tes yang sempurna, untuk menguji setiap jalur kode tunggal dengan sempurna dan pada akhirnya yang berpotensi ada, tidak mungkin Anda akan mengirimkan produk tanpa bug.
Karena itu, bersikaplah pragmatis, jika semua yang Anda temui dalam pengujian Anda telah diperbaiki, tambahan apa pun harus diperbaiki berdasarkan kebutuhan.
Selama Anda jujur kepada pelanggan, Anda dapat mengirim bug. Memberitahu mereka tentang semua bug yang ada menunjukkan kepada mereka bahwa Anda memiliki pengetahuan yang baik tentang perangkat lunak Anda, dan itu memang sudah teruji dengan baik (jika ya ..). :)
Jelas yang terbaik adalah menghindari pengiriman dengan bug.
Seringkali lebih baik memiliki produk tepat waktu, dengan daftar masalah yang diketahui, daripada tidak mengirim sama sekali.
Salah satu hal dalam dunia pemrograman yang membuat orang percaya pada suatu proyek adalah apakah mereka telah merilis jadwal dan apakah jadwal tetap .
Inilah sebabnya mengapa Ubuntu mengirim rilis setiap setengah tahun, bahkan jika masih ada masalah terbuka.
Dari sudut pandang konsumen ... Tidak pernah. Maksud saya adalah selama Anda tahu ada bug utama dalam perangkat lunak maka Anda tidak boleh mengirimkannya. Namun kekuatan alam (bisnis) menimpa ini jika siklus produksi perangkat lunak sekarang pada tahap di mana ia dapat membahayakan model bisnis dan mereka adalah bug minor yang tidak akan: (i) membahayakan keamanan perangkat lunak (ii) mempengaruhi daya guna
Seperti yang orang katakan, ini pertanyaan yang sangat luas. Ini benar-benar membawa saya ke perspektif yang menarik: apa yang disebut "bug" yang Anda klaim hanya kesalahan yang ditemukan oleh penguji Anda. Mungkin ada lebih banyak celah tanpa batas. Hanya teringat akan cerita menarik yang saya dengar dari seorang Profesor yang disegani di satu Seminar Pascasarjana: Ketika orang-orang di salah satu negara Skandinavia menggunakan mesin pemilihan jenis "tulisan tangan yang dapat dikenali", orang-orang tertentu meretas seluruh sistem dengan menulis kode SQL berbahaya (yang sistem menerima input normal).
Ada sesuatu yang disebut FMEA (Mode kegagalan dan analisis efek), sangat berguna untuk memutuskan kapan bug yang diketahui penting atau tidak berdasarkan:
Faktor penentu lain adalah bagaimana cacat terkait dengan rilis terakhir Anda. Jika bug adalah bagian dari fitur baru, tetapi rusak, maka non-fungsionalitas tidak mewakili regresi fungsionalitas. Silakan dan kirim.
Di sisi lain, jika cacat menyebabkan hilangnya fungsi yang ada yang diketahui bermanfaat bagi pelanggan yang sudah ada, maka itu harus memblokir rilis. Rilis seperti itu akan menjadi penurunan peringkat bagi pelanggan Anda, dan tidak melayani kepentingan Anda maupun kepentingan mereka.
Mungkin ada nuansa abu-abu dalam hal ini. Regresi fungsionalitas inti seharusnya tidak pernah keluar dari pintu. Beberapa regresi dalam fitur periferal dapat digunakan untuk mengarahkan pengguna jika rilis tersebut juga berisi fungsionalitas baru yang telah mereka minati. Cacat yang tidak jelas yang tidak akan memengaruhi banyak pelanggan dapat masuk ke dalam rilis, selama pekerjaan di sekitar disediakan saat hal itu memengaruhi para pelanggan itu. Cacat dalam fitur yang sangat eksperimental yang dinonaktifkan secara default seharusnya tidak pernah menyebabkan rilis menjadi tertunda.
Jawaban:
Saya berasumsi Anda berbicara tentang bug "dikenal" (pertanyaannya tidak ada artinya sebaliknya). Jawabannya tergantung pada faktor-faktor ini:
1) Siapa pengguna dan bagaimana ia akan menerima bug jika ditemukan?
2) Apa dampak potensial (kerusakan) bug?
3) Apakah layak untuk menunda pengiriman perangkat lunak untuk memperbaiki bug?
4) Yang paling penting: apa yang Anda harapkan dari perangkat lunak Anda? Waktu ke pasar? Kualitas? Apakah Anda ingin melihat apakah pelanggan Anda menggunakan perangkat lunak cukup lama untuk menemukan bug?
sumber
Itu harus selalu baik-baik saja, karena tidak ada yang namanya perangkat lunak tanpa bug.
sumber
Ini panggilan penilaian. Ingat, bug bisa banyak hal. Jika itu sebagian besar fungsi itu tidak berfungsi, maka Anda memperbaikinya terlebih dahulu. Jika itu adalah sesuatu yang kecil yang memiliki dampak minimal atau tidak nyata pada manfaat program, Anda mungkin membiarkannya.
Jadi lihatlah dari sudut pandang biaya / manfaat.
Anda mengirimkan produk dengan bug yang dikenal ketika total biaya dan risiko memperbaiki bug melebihi masalah apa pun dan dampak negatif yang timbul dari bug yang ada di luar sana.
Jadi, jika Anda memiliki periode pengujian 2 minggu sebelum Anda rilis, dan bug kecil ditemukan, pertanyaannya adalah ... memperbaiki bug yang bernilai 2 minggu tambahan yang mungkin harus dihabiskan tim untuk menguji ulang aplikasi dan instalasi (langkah yang sering dilupakan tentang pembuatan perangkat lunak)? Berapa biaya untuk reputasi atau penjualan jika perangkat lunak terlambat? Apakah orang akan marah? Mereka mungkin sangat senang hidup dengan bug minor jika fungsi utama dapat dikirimkan tepat waktu.
Risiko termasuk risiko memperkenalkan masalah baru, tidak hanya dalam memperbaiki bug, tetapi juga hal-hal yang mungkin timbul dari membuat instalasi baru.
Dampak negatif adalah waktu dan upaya berurusan dengan pelanggan yang melaporkan bug, dan hal-hal seperti kerusakan reputasi.
sumber
Bug datang dalam berbagai keparahan. Di perusahaan perangkat lunak mana pun saya pernah bekerja di kami telah mengategorikan bug dalam urutan Prioritas dari P0 ke P4.
P0 Apakah perangkat lunak tidak berfungsi / macet dan dapat menyebabkan kerusakan pada bisnis pelanggan. P1 Ini tidak berfungsi seperti yang dirancang dan macet secara konsisten dalam fungsionalitas inti P2 Kadang-kadang macet dan atau sebagian fungsi samping mungkin tidak berfungsi. P3 Beberapa elemen dari perangkat lunak tidak berfungsi seperti yang direncanakan / masalah P4 Kosmetik yang diharapkan.
Saya telah bekerja di tempat-tempat di mana P4 tidak diperbaiki karena mereka memiliki efek kecil pada perangkat lunak.
Saya katakan tidak apa-apa untuk dikirimkan jika perangkat lunak Anda mengetahui masalah P3 / P4, saya akan memasukkannya ke dalam catatan rilis dan mencatat bahwa mereka sedang dikerjakan.
Saya tidak akan pernah merilis perangkat lunak dengan masalah P0, P1 atau P2 yang saya sadari.
sumber
Ini disebut " Masalah Diketahui ". Google, Microsoft, Apple, dll. Semua mengirimkan produk dengan bug, baik yang dikenal maupun yang tidak diketahui. Cobalah untuk meminimalkannya, tetapi jangan menunggu untuk kesempurnaan. Kirim cepat, sering kirim.
sumber
Anda tidak dapat mengirim perangkat lunak tanpa bug. Saran yang bisa saya berikan adalah bahwa selalu lebih baik untuk mengatakan kepada pelanggan Anda: "Versi ini tidak bisa melakukan itu dan itu, tetapi kami akan memperbaikinya" daripada situasi ketika pelanggan memberi tahu ANDA bahwa Anda memiliki bug.
sumber
ketika itu "fitur"! ;)
Pada catatan yang serius, kecuali jika Anda adalah programmer yang sempurna dengan pengaturan tes yang sempurna, untuk menguji setiap jalur kode tunggal dengan sempurna dan pada akhirnya yang berpotensi ada, tidak mungkin Anda akan mengirimkan produk tanpa bug.
Karena itu, bersikaplah pragmatis, jika semua yang Anda temui dalam pengujian Anda telah diperbaiki, tambahan apa pun harus diperbaiki berdasarkan kebutuhan.
sumber
Selama Anda jujur kepada pelanggan, Anda dapat mengirim bug. Memberitahu mereka tentang semua bug yang ada menunjukkan kepada mereka bahwa Anda memiliki pengetahuan yang baik tentang perangkat lunak Anda, dan itu memang sudah teruji dengan baik (jika ya ..). :)
Jelas yang terbaik adalah menghindari pengiriman dengan bug.
sumber
Seringkali lebih baik memiliki produk tepat waktu, dengan daftar masalah yang diketahui, daripada tidak mengirim sama sekali.
Salah satu hal dalam dunia pemrograman yang membuat orang percaya pada suatu proyek adalah apakah mereka telah merilis jadwal dan apakah jadwal tetap .
Inilah sebabnya mengapa Ubuntu mengirim rilis setiap setengah tahun, bahkan jika masih ada masalah terbuka.
sumber
Saya akan mengatakan bahwa aturan praktis yang baik adalah, "Apakah bug ini adalah showstopper?"
Jika bug menyebabkan "skenario jalan bahagia" gagal, maka sama sekali tidak mengirim bug itu.
Jika bug menyebabkan "skenario tangen-to-the-happy-path" gagal dan tidak ada solusi, maka jangan kirimkan bug itu.
Jika bug didokumentasikan dan ada solusi yang diketahui, maka mungkin OK untuk mengirim bug itu.
sumber
Dari sudut pandang konsumen ... Tidak pernah. Maksud saya adalah selama Anda tahu ada bug utama dalam perangkat lunak maka Anda tidak boleh mengirimkannya. Namun kekuatan alam (bisnis) menimpa ini jika siklus produksi perangkat lunak sekarang pada tahap di mana ia dapat membahayakan model bisnis dan mereka adalah bug minor yang tidak akan: (i) membahayakan keamanan perangkat lunak (ii) mempengaruhi daya guna
sumber
Seperti yang orang katakan, ini pertanyaan yang sangat luas. Ini benar-benar membawa saya ke perspektif yang menarik: apa yang disebut "bug" yang Anda klaim hanya kesalahan yang ditemukan oleh penguji Anda. Mungkin ada lebih banyak celah tanpa batas. Hanya teringat akan cerita menarik yang saya dengar dari seorang Profesor yang disegani di satu Seminar Pascasarjana: Ketika orang-orang di salah satu negara Skandinavia menggunakan mesin pemilihan jenis "tulisan tangan yang dapat dikenali", orang-orang tertentu meretas seluruh sistem dengan menulis kode SQL berbahaya (yang sistem menerima input normal).
sumber
Ada sesuatu yang disebut FMEA (Mode kegagalan dan analisis efek), sangat berguna untuk memutuskan kapan bug yang diketahui penting atau tidak berdasarkan:
sumber
Faktor penentu lain adalah bagaimana cacat terkait dengan rilis terakhir Anda. Jika bug adalah bagian dari fitur baru, tetapi rusak, maka non-fungsionalitas tidak mewakili regresi fungsionalitas. Silakan dan kirim.
Di sisi lain, jika cacat menyebabkan hilangnya fungsi yang ada yang diketahui bermanfaat bagi pelanggan yang sudah ada, maka itu harus memblokir rilis. Rilis seperti itu akan menjadi penurunan peringkat bagi pelanggan Anda, dan tidak melayani kepentingan Anda maupun kepentingan mereka.
Mungkin ada nuansa abu-abu dalam hal ini. Regresi fungsionalitas inti seharusnya tidak pernah keluar dari pintu. Beberapa regresi dalam fitur periferal dapat digunakan untuk mengarahkan pengguna jika rilis tersebut juga berisi fungsionalitas baru yang telah mereka minati. Cacat yang tidak jelas yang tidak akan memengaruhi banyak pelanggan dapat masuk ke dalam rilis, selama pekerjaan di sekitar disediakan saat hal itu memengaruhi para pelanggan itu. Cacat dalam fitur yang sangat eksperimental yang dinonaktifkan secara default seharusnya tidak pernah menyebabkan rilis menjadi tertunda.
sumber