𝗕𝗮𝗴𝗮𝗶𝗺𝗮𝗻𝗮 𝗞𝗮𝗺𝗶 𝗠𝗲𝗺𝘂𝘁𝘂𝘀𝗸𝗮𝗻 𝗞𝗮𝗽𝗮𝗻 𝗛𝗮𝗿𝘂𝘀 𝗥𝗲𝗳𝗮𝗰𝘁𝗼𝗿 𝗱𝗮𝗻 𝗞𝗮𝗽𝗮𝗻 𝗛𝗮𝗿𝘂𝘀 𝗠𝗲𝗻𝘂𝗹𝗶𝘀 𝗨𝗹𝗮𝗻𝗴
Setiap pengembang menghadapi momen ini.
Basis kode terasa lambat. Menambahkan fitur memakan waktu terlalu lama. Karyawan baru kesulitan memahami sistem. Seseorang akhirnya menyarankan untuk menulis ulang seluruhnya.
Tim biasanya terbagi menjadi dua kelompok. Satu kelompok ingin memulai dari awal. Kelompok lainnya takut akan kegagalan penulisan ulang di masa lalu. Kedua belah pihak memiliki argumen yang valid.
Menulis ulang bukanlah solusi ajaib. Hal ini sering kali memakan waktu lebih lama dari yang direncanakan. Anda akhirnya harus memelihara dua sistem sekaligus. Anda bahkan mungkin mengulangi kesalahan yang sama di versi baru.
Menulis ulang masuk akal dalam kasus-kasus spesifik berikut:
• Model datanya secara fundamental salah bagi bisnis. • Teknologinya sudah mati dan tidak lagi mendapatkan pembaruan keamanan. • Kebutuhan bisnis telah berubah sedemikian rupa sehingga sistem aslinya sudah usang. • Tidak ada seorang pun di tim saat ini yang memahami cara kerja sistem tersebut.
Meskipun begitu, jangan lakukan penggantian secara sekaligus (big bang replacement). Gunakan pola strangler fig. Bangun sistem baru secara bertahap berdampingan dengan sistem lama.
Sering kali, yang sebenarnya Anda butuhkan adalah refactor.
Refactoring adalah pilihan yang tepat ketika:
• Anda masih bisa menambahkan fitur, meskipun lambat. • Tim memahami kode yang ada saat ini. • Kekacauan hanya terbatas pada modul-modul tertentu. • Bisnis tidak bisa berhenti merilis fitur-fitur baru.
Sebelum Anda memilih, tanyakan mengapa kodenya menjadi buruk.
Jika masalahnya adalah utang teknis (technical debt), lakukan refactor pada bagian-bagian terburuk. Jika masalahnya adalah kurangnya peninjauan kode (code review) atau budaya yang buruk, menulis ulang tidak akan membantu. Anda hanya akan membangun kekacauan baru dengan kebiasaan lama yang sama.
Ajukan pertanyaan-pertanyaan ini sebelum Anda memutuskan:
• Bisakah kita memperbaiki bagian terburuk secara terisolasi? • Apakah model datanya sudah tidak sesuai dengan kebutuhan bisnis saat ini? • Pengetahuan apa yang akan hilang jika kita mulai dari awal? • Apakah bisnis memiliki stabilitas untuk menangani transisi yang panjang?
Memulai dari awal terasa menyenangkan. Menyelesaikan penulisan ulang adalah bagian yang sulit. Sering kali, rencana refactoring yang terstruktur lebih aman dan lebih efektif.
Sumber: https://dev.to/daviefano/how-we-decide-when-to-refactor-and-when-to-rewrite-40pk