2026-07-15
Kita Tidak Mengendalikan Apa yang Kita Warisi
Setahun merawat sistem buatan orang lain mengajari saya satu-satunya pertanyaan yang berguna soal legacy code. Dan itu bukan 'perlu ditulis ulang atau tidak'.
- legacy
- systems-thinking
- stoikisme
Tahun 2023 saya dipromosikan jadi Team Lead, dan tim yang saya dapat tim maintenance. Bukan lead yang membangun sistem baru. Bukan juga yang memimpin proyek unggulan. Yang menjaga semua sistem yang sudah rilis tetap jalan.
Hampir sepanjang tahun itu saya bekerja di dalam keputusan yang bukan saya buat, di kode yang tidak boleh saya tulis ulang, dengan tenggat yang bukan saya tentukan.
"Rewrite atau tidak" itu pertanyaan yang salah
Refleks pertama waktu menerima sistem yang bikin frustrasi adalah bertanya apakah sistem ini perlu ditulis ulang. Pertanyaan itu memuaskan, karena rasanya kendalinya balik ke tangan kita. Tapi biasanya tidak bisa dijawab, dan hampir selalu cuma teori.
Mandatnya jarang ada. Dan kalaupun ada, kita sebenarnya sedang menawarkan diri menghabiskan setahun untuk membuat ulang perilaku sistem yang tidak pernah ditulis di mana pun.
Stoikisme menarik garis antara hal yang bisa kita kendalikan dan yang tidak. Argumennya: hampir semua tenaga yang terbuang berasal dari salah menaruh sesuatu di kolom yang keliru. Legacy code itu contoh paling jelasnya di dunia software.
Yang tidak bisa kita kendalikan:
- keputusan yang sudah terlanjur dibuat
- tenggat yang dikejar tim sebelumnya
- kebutuhan yang masuk akal waktu itu, dan membingungkan sekarang
Yang bisa kita kendalikan:
- apakah orang berikutnya memahaminya lebih cepat daripada kita dulu
Cuma itu. Dan ternyata itu sudah cukup.
Apa bedanya di lapangan
Begitu kita terima bahwa strukturnya bukan milik kita untuk dibongkar, pekerjaannya menata ulang diri sendiri di sekitar pertanyaan yang jauh lebih bisa dikerjakan: apakah sistem ini lebih mudah dijelaskan dibanding bulan lalu?
Pertanyaan itu punya jawaban murah yang tersedia tiap minggu:
- Fungsi yang dinamai sesuai apa yang dia kerjakan, bukan kapan dia ditambahkan.
- Komentar yang mencatat kenapa sebuah kondisi ada, di atas kondisi yang sudah bikin tiga orang bingung.
- Test yang mengunci perilaku yang selama ini tidak ada yang berani sentuh.
- Batas modul yang digambar di tempat tim berikutnya memang akan memotong.
Tidak satu pun dari ini rewrite. Tapi semuanya permanen.
Bagian yang tidak enaknya
Ada alasan kenapa tahun seperti ini jarang masuk portofolio. Tidak ada peluncuran, tidak ada screenshot, tidak ada grafik yang naik ke kanan atas. Hasil kerjanya berupa hal-hal yang tidak terjadi: insiden yang tidak muncul, onboarding yang selesai dua hari alih-alih dua minggu.
Tapi justru tahun itu yang mengajari saya batasan yang saya pakai sampai sekarang. Kode yang kita serahkan ke orang lain harus bisa menjelaskan dirinya sendiri, tanpa kita di ruangan.
Saya belajarnya dari sisi penerima lebih dulu, dan cuma sisi itu yang mengajarkannya dengan jujur. Semua sistem yang saya bangun setelahnya — terutama engine payroll, yang mengharuskan setiap angka bisa dilacak sampai ke sumbernya — adalah usaha untuk jadi pendahulu yang lebih baik daripada yang saya warisi.
Kita tidak mengendalikan apa yang kita warisi. Kita mengendalikan apa yang kita wariskan.