Kapan boleh mengirim produk dengan bug yang dikenal?
Kapan boleh mengirim produk dengan bug yang dikenal?
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?
Itu harus selalu baik-baik saja, karena tidak ada yang namanya perangkat lunak tanpa bug.
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.
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.
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.
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.
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.
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.