Saya Kehilangan Seminggu Kerja karena Crash yang Seharusnya Bisa Saya Lalui

Saya pernah kehilangan hampir seminggu penuh hasil kerja hanya karena satu crash. Bukan karena crash itu sendiri merupakan bencana langka — itu hanyalah gangguan biasa yang membosankan, hal yang sering terjadi. Saya kehilangan seminggu itu karena saya tidak menyimpan apa pun selama prosesnya. Jadi sebuah gangguan yang muncul beberapa menit menjelang akhir membuang kemajuan berhari-hari yang telah terkumpul, dan tidak ada cara untuk mengembalikannya. Semuanya hilang begitu saja, dan sepanjang waktu itu sebenarnya memang rentan hilang tanpa saya sadari.

Yang menyakitkan, jika dipikir kembali, adalah betapa sepenuhnya hal itu bisa dihindari. Crash itu tidak menghancurkan kerja saya. Kegagalan saya membuat kerja saya bisa bertahanlah yang menghancurkannya.

Optimisme diam-diam yang mengasumsikan proses akan selesai

Saya membangun proses-proses berjalan-lama saya seolah-olah proses itu akan selalu berjalan bersih dari awal hingga akhir, tanpa gangguan, setiap kali. Tidak ada penyimpanan keadaan antara. Tidak ada cara untuk pulih di tengah jalan. Cukup jalankan, biarkan berjalan, dan asumsikan ia akan mencapai akhir. Jika Anda bertanya langsung kepada saya apakah asumsi itu aman, saya akan menjawab tidak. Tetapi saya tidak pernah bertanya, jadi saya tetap saja terus membangun di atasnya.

Ini adalah jenis optimisme yang merajalela dan nyaris tak terlihat: diam-diam mengasumsikan bahwa jalan yang mulus adalah satu-satunya jalan. Anda merancang untuk dunia di mana segalanya berjalan benar, karena itulah dunia yang Anda bayangkan saat membangun. Lalu Anda merilisnya ke dunia nyata, yang punya banyak jalan lain, sebagian besar kurang menyenangkan.

Apa pun yang berjalan cukup lama akan terganggu

Inilah kebenaran yang saya tolak untuk dijadikan dasar perencanaan. Proses apa pun yang berjalan cukup lama, pada akhirnya, akan terganggu. Sebuah crash. Listrik yang berkedip. Mesin yang kehabisan memori. Sebuah kesalahan dari pihak saya. Reboot yang tak bisa ditunda. Penyebab spesifiknya tidak penting, dan ada lebih banyak penyebab daripada yang bisa Anda daftarkan.

Dalam jendela waktu yang singkat, gangguan adalah sebuah risiko. Dalam horizon yang cukup panjang, ia berhenti menjadi risiko dan menjadi sebuah kepastian. Bukan soal apakah sesuatu yang berjalan-lama akan terganggu, melainkan kapan dan seberapa sering. Dan begitu Anda melihatnya dengan cara itu, merancang seolah-olah hal itu tidak akan terjadi terungkap sebagaimana adanya: merencanakan, dengan sengaja, untuk salah tentang sesuatu yang dijamin akan terjadi.

Biayanya ditentukan oleh apa yang Anda simpan, bukan oleh crash-nya

Inilah wawasan yang menata ulang cara saya memikirkan semua ini. Kerusakan akibat sebuah gangguan ditentukan hampir sepenuhnya oleh seberapa bisa-dipulihkan kerja Anda — bukan oleh seberapa parah gangguan itu. Crash jarang menjadi variabel yang penting. Apa yang Anda lakukan sebelumnya itulah yang penting.

Crash yang persis sama, menyerang pada saat yang persis sama, menghabiskan biaya lima menit jika Anda baru saja menyimpan kemajuan Anda, atau lima hari jika Anda tidak menyimpan apa pun sama sekali. Gangguannya identik dalam kedua kasus. Konsekuensinya berbeda secara liar, dan perbedaan itu ditentukan sepenuhnya oleh pilihan yang Anda buat sebelumnya, jauh sebelum crash itu tiba. Crash tidak menentukan berapa banyak yang Anda hilangkan. Andalah yang menentukan, di awal, dengan memutuskan seberapa banyak yang bersedia Anda buat dapat dipulihkan.

Checkpointing adalah aritmetika, bukan paranoia

Begitu saya membingkainya seperti itu, alasan untuk menyimpan keadaan antara secara teratur berhenti tampak seperti kehati-hatian berlebihan dan mulai tampak seperti aritmetika sederhana. Gangguan itu pasti seiring waktu. Biayanya ketika hal itu terjadi dibatasi oleh seberapa lama sejak terakhir kali Anda menyimpan. Jadi menyimpan secara sering hanyalah asuransi murah terhadap suatu peristiwa yang dijamin, dengan premi yang bisa Anda tetapkan serendah yang Anda inginkan dengan menyimpan sedikit lebih sering.

Menolak melakukannya bukanlah keberanian atau fokus atau bergerak cepat. Itu hanyalah matematika yang buruk — menolak perlindungan murah terhadap sesuatu yang pasti terjadi, demi sedikit kenyamanan sekarang. Saya telah menyelamati diri sendiri karena tidak membuang waktu untuk jaring pengaman, sementara diam-diam menjalankan risiko besar tanpa asuransi terhadap suatu peristiwa yang bahkan tidak diragukan lagi.

Rancang untuk melanjutkan, bukan sekadar memulai ulang

Namun, ada tingkat di luar penyimpanan berkala, dan itulah yang paling penting. Perbaikan yang lebih mendalam adalah membangun kerja yang berjalan-lama sedemikian rupa sehingga sebuah gangguan melanjutkan dari titik berhenti, alih-alih memulai lagi dari awal.

Perbedaan ini adalah segalanya ketika gangguan sering terjadi. Sebuah proses yang memulai ulang dari nol setiap kali ia dijatuhkan bisa, dalam lingkungan yang cukup buruk, tidak pernah selesai sama sekali — setiap gangguan menghapus segalanya, dan jika gangguan itu datang cukup sering relatif terhadap durasi jalannya, Anda tidak membuat kemajuan bersih sama sekali sekeras apa pun Anda bekerja. Sebaliknya, proses yang melanjutkan selalu bergerak maju. Ia bisa dijatuhkan berulang kali dan tetap, pada akhirnya, sampai, karena setiap gangguan hanya menghabiskan sedikit bagian sejak penyimpanan terakhir. Memulai ulang itu rapuh dengan cara yang berlipat ganda; melanjutkan itu kokoh dengan cara yang berlipat ganda ke arah sebaliknya.

Prinsip yang sama, hampir di mana-mana

Ini dapat digeneralisasikan jauh melampaui satu komputasi berjalan-lama mana pun. Ia berlaku untuk hampir semua kerja yang nilainya terakumulasi seiring waktu dan hilang jika tidak dipertahankan secara sengaja. Polanya identik: kemajuan terbangun, sebuah gangguan tiba, dan apa pun yang tidak dibuat tahan-lama lenyap.

Maka pertanyaan yang saya pelajari untuk diajukan, tentang apa pun yang memakan waktu lama dan penting, bukan lagi yang nyaman — “bagaimana jika ini terganggu?” — yang dipegang sejauh lengan sebagai sebuah hipotesis. Pertanyaannya adalah versi yang tumpul, anggap-itu-akan-terjadi: “ketika ini terganggu, berapa banyak yang akan saya hilangkan?” Pertanyaan itu, yang diajukan sejak dini, mengubah apa yang Anda bangun. Pertanyaan pertama membiarkan Anda berharap. Pertanyaan kedua memaksa Anda bersiap.

Pelajaran yang lebih dalam: gangguan adalah peristiwa yang terjadwal

Semuanya bermuara pada bahwa saya berhenti merancang untuk dunia di mana segalanya berjalan benar, dan mulai merancang untuk dunia di mana segalanya rutin berjalan salah — karena yang kedua itulah dunia yang benar-benar ada, dan yang pertama tidak pernah lebih dari sekadar asumsi menyenangkan yang diam-diam saya gantikan dengan realitas.

Ketahanan, akhirnya saya pahami, bukanlah pesimisme. Ia adalah akurasi. Gangguan bukanlah hipotesis jauh yang harus didiskon secara optimis. Ia, pada hakikatnya, adalah peristiwa yang terjadwal — Anda hanya tidak diberi tahu tanggalnya. Membangun seolah-olah ia akan datang bukanlah hal yang muram atau penuh ketakutan. Itu hanya jujur tentang satu-satunya dunia yang ada untuk dibangun. Saya kehilangan seminggu untuk mempelajari bahwa crash itu tidak pernah menjadi masalahnya. Masalahnya adalah saya telah membangun sesuatu tanpa cara untuk bertahan dari gangguan, di sebuah dunia di mana terganggu adalah suatu kepastian.

— Tanpa sinyal, tanpa imbal hasil, bukan nasihat investasi.