Saya akan mengatakan bahwa sangat penting untuk memahami setiap detail tentang mengapa beberapa bug terjadi dan mengapa perubahan tertentu menghilangkan bug itu, dan itu juga umum di antara pengembang untuk terkadang membuat program bekerja tanpa benar-benar mengetahui detail tentang mengapa perbaikan bekerja!
Seni mengubah sesuatu sampai bug menghilang, tanpa memahami apa yang menyebabkannya atau mengapa perubahan itu diperbaiki, sering disebut "pemrograman voodoo," dan itu bukan pujian. Sama sekali tidak ada cara Anda bisa yakin bahwa Anda telah benar-benar memperbaiki bug, dan bukan memperbaikinya sebagian untuk kasus tertentu yang Anda selidiki, jika Anda tidak mengerti apa yang menyebabkannya.
Dalam kasus terburuk, Anda belum melakukan apa pun kecuali memindahkan bug: Saya ingat dari komputasi tahun pertama di uni, ketika banyak siswa belajar C dan pointer untuk pertama kalinya, bug pointer sering berhenti bermanifestasi ketika mereka mengubah hal-hal secara acak, karena perubahan akan mengatur ulang struktur data dalam memori yang cukup untuk membuat bug pointer menginjak sedikit memori yang berbeda. Jelas itu tidak membantu sama sekali .
Tetapi setelah mengatakan itu, realitas komersial pemrograman sering sedemikian rupa sehingga memuaskan klien bahwa bug diperbaiki lebih penting daripada memuaskan diri sendiri. Saya tidak akan merekomendasikan Anda mendeklarasikan sesuatu yang diperbaiki jika Anda tidak tahu apa penyebabnya, tetapi jika Anda dapat melihat bahwa beberapa kode bermasalah, dan Anda memperbaikinya, bahkan jika Anda "tidak 100% yakin" bagaimana hal itu menyebabkan spesifik bug untuk dimanifestasikan, kadang-kadang Anda hanya perlu pindah ke bug berikutnya sebelum klien berteriak terlalu keras tentang kemajuan lambat Anda.