Bug penting diperbaiki. Biasanya mereka diperbaiki sebelum produk memasuki produksi. Kecuali jika Anda menggunakan sampel awal, Anda mungkin tidak akan pernah melihat bug terburuk.
Memperbaiki bug itu sulit dan mahal. Bukan hanya mengubah satu baris kode RTL. Jika Anda melakukan itu, Anda harus mensintesis ulang, mengulang tata letak fisik, mengubah tata letak untuk memperbaiki masalah waktu, membeli set topeng baru, menghasilkan wafer baru, menguji wafer (biasanya), memvalidasi perbaikan baru, dan mungkin mengkarakterisasi atau memenuhi syarat produk lagi. Ini membutuhkan waktu berbulan-bulan dan menghabiskan banyak uang. Untuk alasan itu, kami mencoba memperbaiki bug secara langsung dalam tata letak (lebih disukai pada lapisan logam tunggal). Ini lebih cepat dan lebih murah daripada memulai kembali dari sintesis RTL, tetapi itu masih tidak baik.
Jika kita memperbaiki bug penting, mengapa tidak memperbaiki semua bug lain juga? Sekali lagi, ini membutuhkan waktu - waktu untuk mencari tahu dan menerapkan perbaikan, waktu untuk menjalankan kembali tes verifikasi desain. Waktu itu berarti akan membutuhkan waktu lebih lama untuk mendapatkan produk berikutnya ke pasar. Dan sementara itu, Anda hampir pasti akan menemukan lebih banyak bug dalam produk Anda saat ini jika Anda terlihat cukup keras. Ini pertempuran yang kalah. Memperbaiki bug lebih sulit lagi pada produk yang sudah lama tidak digunakan, karena orang harus menyelami desain lama untuk mencari tahu apa yang terjadi. Seperti yang dikatakan Null, pelanggan mungkin harus mengkualifikasi ulang produk Anda dalam sistem mereka. Jika produk Anda masih dalam pengembangan, menunda rilis produksi dapat menyebabkan jadwal pelanggan tergelincir, yang membuat pelanggan sangat tidak senang.
Biasanya, bug yang tertinggal hanya terjadi dalam konfigurasi yang aneh, menyebabkan masalah yang sangat kecil, memiliki solusi yang mudah, atau semua hal di atas. Mereka tidak cukup buruk untuk sepadan dengan masalahnya. Dan jika Anda menggunakan kembali modul perangkat keras pada produk berikutnya, pelanggan Anda yang sudah ada akan tetap memiliki solusi dalam perangkat lunak mereka.
Toolchain perangkat lunak adalah faktor lain. Jika modul bertahan cukup lama, toolchain Anda mungkin berubah cukup sehingga mengulang tes validasi lama menjadi proyek utama. Dan Anda mungkin tidak bisa begitu saja memuat alat lama, karena Anda tidak membayar lisensi situs lagi. Tetapi selama Anda tidak mengubah modul, Anda dapat terus menyalin dan menempelkannya ke MCU baru.
Perangkat lunak juga merupakan masalah di sisi pelanggan. Jika perbaikan bug Anda merusak kompatibilitas ke belakang dengan cara apa pun, semua pelanggan Anda harus memperbarui kode mereka, yang mereka bahkan tidak memiliki alat untuk itu lagi.
Sebagai seseorang yang bekerja dalam pengembangan mikrokontroler, saya dapat memberitahu Anda bahwa kami semua ingin memperbaiki setiap bug. Tetapi mencoba melakukan hal itu akan menunda pengembangan yang tidak terduga, mengganggu pelanggan, menghabiskan banyak uang, dan pada akhirnya, kita mungkin masih gagal.