Bagi saya itu adalah proporsi stabilitas (seperti dalam semen beton, tanah liat yang dipanggang dalam oven, dibuat dari batu, ditulis dengan tinta permanen). Semakin tidak stabil kode Anda, karena semakin tinggi kemungkinan Anda perlu mengubahnya di masa mendatang, semakin mudah kelenturannya, seperti tanah liat basah, agar tetap produktif. Saya juga menekankan kelenturan dan bukan keterbacaan. Bagi saya kemudahan mengubah kode lebih penting daripada kemudahan membacanya. Kode bisa mudah dibaca dan mimpi buruk berubah, dan apa gunanya bisa membaca dan dengan mudah memahami detail implementasi jika mereka mimpi buruk untuk berubah? Kecuali itu hanya latihan akademis, biasanya titik untuk dapat dengan mudah memahami kode dalam basis kode produksi adalah dengan maksud untuk dapat lebih mudah mengubahnya sesuai kebutuhan. Jika sulit diubah, maka banyak manfaat keterbacaan keluar jendela. Keterbacaan umumnya hanya berguna dalam konteks kelenturan, dan kelenturan hanya berguna dalam konteks ketidakstabilan.
Tentu saja bahkan yang paling sulit untuk mempertahankan kode yang bisa dibayangkan, terlepas dari seberapa mudah atau sulitnya untuk membaca, tidak menimbulkan masalah jika tidak pernah ada alasan untuk mengubahnya, hanya gunakan saja. Dan dimungkinkan untuk mencapai kualitas seperti itu, terutama untuk kode sistem tingkat rendah di mana kinerja sering cenderung paling menghitung. Saya memiliki kode C yang masih saya gunakan secara teratur yang tidak berubah sejak akhir 80-an. Tidak perlu berubah sejak saat itu. Kode ini jelek, ditulis pada masa-masa sulit, dan saya hampir tidak memahaminya. Namun itu masih berlaku hari ini, dan saya tidak perlu memahami implementasinya untuk mendapatkan banyak manfaat darinya.
Tes penulisan yang menyeluruh adalah salah satu cara untuk meningkatkan stabilitas. Lainnya adalah decoupling. Jika kode Anda tidak bergantung pada hal lain, maka satu-satunya alasan untuk mengubahnya adalah jika itu sendiri perlu diubah. Kadang-kadang sejumlah kecil duplikasi kode dapat berfungsi sebagai mekanisme decoupling untuk secara dramatis meningkatkan stabilitas dengan cara yang membuatnya menjadi pertukaran yang layak jika, sebagai gantinya, Anda mendapatkan kode yang sekarang benar-benar independen dari hal lain. Sekarang kode itu kebal terhadap perubahan ke dunia luar. Sementara itu kode yang bergantung pada 10 pustaka eksternal yang berbeda memiliki 10 kali alasan untuk mengubahnya di masa depan.
Hal lain yang bermanfaat dalam praktik adalah untuk memisahkan perpustakaan Anda dari bagian basis kode Anda yang tidak stabil, bahkan mungkin membangunnya secara terpisah, seperti yang mungkin Anda lakukan untuk perpustakaan pihak ketiga (yang juga dimaksudkan untuk hanya digunakan, tidak diubah, setidaknya tidak oleh Anda tim). Jenis organisasi seperti itu dapat mencegah orang merusaknya.
Lain adalah minimalis. Semakin sedikit kode yang Anda coba lakukan, semakin besar kemungkinan dapat melakukan apa yang dilakukannya dengan baik. Desain monolitik hampir tidak stabil secara permanen, karena semakin banyak fungsi ditambahkan ke dalamnya, semakin tidak lengkap tampaknya.
Stabilitas harus menjadi tujuan utama Anda setiap kali Anda ingin menulis kode yang pasti akan sulit diubah, seperti kode SIMD paralel yang telah disetel mikro hingga mati. Anda menangkal kesulitan mempertahankan kode dengan memaksimalkan kemungkinan Anda tidak perlu mengubah kode, dan karenanya tidak harus mempertahankannya di masa mendatang. Itu membuat biaya pemeliharaan turun ke nol tidak peduli betapa sulitnya kode untuk dipelihara.