Over-Engineering Adalah Cara Favorit Saya untuk Menunda-nunda

Ada satu periode ketika saya bekerja sangat keras pada proyek ini, menghasilkan sangat banyak, dan merasa luar biasa atas semuanya — sementara nyaris tidak ada kemajuan nyata. Saya sedang merancang masa depan agung dari sistem ini: sebuah arsitektur yang luas, terdiri dari banyak bagian, penuh dengan komponen yang akan saling berkoordinasi, menskala, dan pada akhirnya berjalan sendiri.

Satu-satunya masalah adalah bahwa hal dasar yang seharusnya menjadi pondasi dari semua itu belum berfungsi. Sama sekali belum.

Membangun kerajaan sebelum desanya ada

Inti dari sistem ini — satu hal fundamental yang harus dilakukannya sebelum hal lain menjadi penting — tidak berfungsi. Ia tidak andal, setengah rusak, dan keras kepala menolak segala upaya saya untuk memperbaikinya.

Maka, secara alami, saya mengalihkan perhatian ke lapisan-lapisan yang akan duduk di atasnya. Bagaimana bagian-bagian itu akan saling berbicara. Bagaimana ia akan berkembang untuk menangani jauh lebih banyak daripada yang saat ini bahkan tidak bisa ditanganinya sedikit pun. Bagaimana ia akan men-deploy dan memperbarui dirinya sendiri begitu selesai. Saya, pada dasarnya, sedang menggambar bagan organisasi yang rinci untuk sebuah perusahaan yang belum punya produk — merencanakan struktur manajemen sebuah perusahaan yang fungsi inti tunggalnya saja belum berjalan.

Mengapa over-engineering terasa begitu nikmat

Saya ingin jujur tentang mengapa ini begitu menggoda, karena godaan itu sendiri adalah seluruh jebakannya. Merancang arsitektur masa depan adalah kenikmatan yang murni dan tanpa hambatan. Tidak ada uji yang gagal menatap balik ke arah Anda, tidak ada bug keras kepala yang menolak mati, tidak ada kenyataan yang mendorong rencana Anda. Yang ada hanyalah Anda dan sebuah diagram mental yang rapi di mana segalanya cocok dengan sempurna, justru karena tidak ada satu pun di dalamnya yang pernah dipaksa untuk benar-benar berjalan.

Ia terasa seperti jenis kerja yang paling produktif justru karena ia adalah jenis yang tanpa perlawanan. Dan ketiadaan perlawanan bisa terasa seperti kemajuan, tepat sampai Anda menyadari bahwa Anda sebenarnya tidak ke mana-mana.

Nama jujurnya: penghindaran

Kegiatan yang sebenarnya, setelah dilucuti dari deskripsi yang menyanjungnya, adalah penghindaran. Masalah intinya — membuat hal dasar itu berfungsi — sulit, membuat frustrasi, dan benar-benar tidak pasti; saya tidak tahu apakah saya bisa menyelesaikannya, dan setiap upaya menggosokkan ketidakpastian itu ke wajah saya. Arsitektur agung itu, sebaliknya, mudah dan tak henti-hentinya memuaskan. Saya selalu bisa membuat kemajuan di sana, karena “kemajuan” hanya berarti menambahkan satu kotak rapi lagi ke dalam diagram.

Maka saya terus melarikan diri dari masalah yang sulit dan nyata menuju masalah yang nyaman dan khayalan, dan saya memberi pelarian itu nama yang terhormat. Saya menyebutnya desain.

Tanda-tandanya: menyelesaikan masalah yang belum saya punya

Ada satu tanda jelas yang lama saya abaikan. Setiap bagian rumit yang saya rancang menyelesaikan masalah yang baru muncul setelah sistem dasarnya berfungsi. Koordinasi hanya penting jika bagian-bagiannya berfungsi. Penskalaan hanya penting jika ada sesuatu yang layak diskalakan. Self-deployment hanya penting jika ada sesuatu yang selesai untuk di-deploy. Saya sedang membangun jawaban-jawaban yang cermat untuk pertanyaan-pertanyaan yang belum berhak diajukan oleh proyek saya.

Ketika Anda mendapati diri Anda menyelesaikan masalah yang sebenarnya belum Anda punya, ada baiknya bertanya masalah mana yang justru sedang Anda hindari.

Biayanya lebih buruk daripada sekadar waktu yang terbuang

Kerusakannya melampaui jam-jam yang saya tuangkan ke infrastruktur khayalan. Struktur rumit yang saya rancang berubah menjadi semacam sangkar. Begitu saya berkomitmen pada bentuk agung itu, perbaikan sederhana dan langsung yang sebenarnya dibutuhkan oleh masalah nyata harus berjuang menerobos seluruh arsitektur yang terlalu dini saya bungkuskan di sekeliling sistem yang tidak berfungsi. Saya telah membangun perancah untuk gedung yang tidak ada, lalu harus membongkar perancah itu sebelum saya bahkan bisa mulai meletakkan pondasinya.

Struktur yang prematur tidak sekadar membuang upaya Anda. Ia bisa secara aktif membatasi hal yang seharusnya ia layani, dan semakin rumit ia, semakin keras ia menolak perubahan-perubahan kecil dan jujur yang pada akhirnya harus Anda buat.

Solusinya: dapatkan dulu lapisan berikutnya

Yang akhirnya membantu adalah sebuah aturan, hampir memalukan saking lugasnya: Anda tidak boleh membangun lapisan di atas sebelum lapisan di bawah benar-benar berfungsi. Bukan “sudah dirancang.” Bukan “sudah direncanakan.” Berfungsi. Penskalaan, koordinasi, otomatisasi — ini adalah imbalan yang Anda peroleh karena memiliki sesuatu yang nyata dan layak diskalakan, bukan hiasan yang Anda tambahkan di muka agar merasa sedang membangun sesuatu yang serius.

Saya merobohkan sebagian besar kerajaan khayalan itu. Pada akhirnya, justru melegakan untuk ditinggalkan sendirian dengan satu masalah sulit yang selama ini begitu rumit saya hindari.

Pelajaran yang lebih dalam: kenyamanan bisa jadi peringatan

Hal paling tidak nyaman yang saya petik dari ini adalah kecurigaan terhadap kenyamanan itu sendiri. Ketika sebuah pekerjaan terasa benar-benar menyenangkan — tanpa hambatan, memuaskan, tanpa kegagalan dan tanpa kenyataan yang berkata tidak — ada kemungkinan nyata bahwa Anda diam-diam telah menyimpang dari masalah yang sebenarnya menuju masalah yang lebih mudah dan khayalan yang kebetulan terasa seperti hal yang sama.

Masalah yang sulit melawan balik. Itu bagian dari cara Anda tahu bahwa itulah yang nyata. Jadi sekarang, ketika proses membangun mulai terasa menyenangkan secara mencurigakan, saya mencoba memperlakukan kesenangan itu sebagai pertanyaan, bukan sebagai imbalan: hal sulit, penuh perlawanan, dan benar-benar penting apa yang sedang saya hindari dengan begitu menikmati ini?

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