Suatu hari saya meninjau kode seseorang di tim saya menulis. Solusinya tidak sepenuhnya berfungsi dan desainnya jauh lebih rumit - yang berarti menyimpan informasi yang tidak perlu, membangun fitur yang tidak perlu, dan pada dasarnya kode memiliki banyak kerumitan yang tidak perlu seperti pelapisan emas dan mencoba memecahkan masalah yang tidak ada.
Dalam situasi ini saya bertanya, "Mengapa itu dilakukan seperti ini?"
Jawabannya adalah orang lain merasa ingin melakukannya dengan cara itu.
Lalu saya bertanya apakah salah satu dari fitur ini adalah bagian dari spesifikasi proyek, atau apakah ada gunanya bagi pengguna akhir, atau apakah ada data tambahan yang akan disajikan kepada pengguna akhir.
Jawabannya adalah tidak.
Jadi saya menyarankan agar dia menghapus semua kompleksitas yang tidak perlu. Jawaban yang biasanya saya dapatkan adalah "sudah selesai".
Pandangan saya adalah bahwa itu tidak dilakukan, itu buggy, tidak melakukan apa yang diinginkan pengguna, dan biaya perawatan akan lebih tinggi daripada jika dilakukan dengan cara yang lebih sederhana yang saya sarankan.
Skenario yang setara adalah:
Rekan menghabiskan 8 jam kode refactoring dengan tangan yang bisa dilakukan secara otomatis di Resharper dalam 10 detik. Secara alami saya tidak mempercayai refactoring dengan tangan karena kualitasnya meragukan dan tidak sepenuhnya diuji.
Lagi-lagi respons yang saya dapatkan adalah "sudah selesai."
Apa tanggapan yang pantas untuk sikap ini?