Saya menemukan diri saya di tempat yang sulit akhir-akhir ini. Sudah mengerjakan game dengan teman pemrograman selama hampir 8 bulan sekarang. Kami berdua mulai sebagai pendatang baru dalam pemrograman sekitar Agustus tahun lalu, ia adalah siswa CS tahun ke-2, saya seorang IT support technology by trade dan seorang programmer otodidak dengan banyak buku dan langganan online.
Masalah yang terus-menerus saya lihat adalah bahwa ketika kita menulis sejumlah kode, sering kali akan sedikit diretas bersama, mengalami banyak kegagalan, dan jika itu adalah konsep baru bagi salah satu dari kita, penuh dengan solusi naif. Ini baik-baik saja, kita sedang belajar, saya berharap kedua kode kita menjadi sedikit diretas bersama pada firs atau pass kedua. Masalahnya muncul dengan sendirinya ketika benar-benar memperbaiki dan refactoring perilaku yang diretas bersama.
Pasangan saya akan berpegang teguh pada perilakunya yang baru saja dirakit, dengan terang-terangan menolak untuk melihat kesalahan pada saat itu mulai bekerja. Mengakui kesempurnaan dari sepotong struktur yang bahkan tidak dapat saya coba gunakan meskipun memiliki komentar dan dengan tepat menyebut metode & bidang. Tidak peduli sekeras apa pun saya berusaha, saya tidak bisa membuatnya melihat kelemahan yang jelas yang akan mencegah setiap perubahan lebih lanjut atau perluasan perilaku tanpa sepenuhnya merusaknya dan segala sesuatu yang begitu erat dipasangkan dengan mereka mungkin berada di kelas yang sama. Solusi yang diretas terus-menerus diretas, desain yang dipikirkan dengan buruk akan tetap seperti saat pertama kali disusun dan diuji.
Saya menghabiskan banyak waktu menjaga kode baru seperti halnya saya menulis sendiri, saya bingung apa yang harus dilakukan. Rekan saya kehilangannya malam ini, dan memperjelas bahwa apa pun yang terjadi, apa pun patokannya, tidak peduli praktik umum, tidak peduli bukti yang tak terbantahkan, kode-kodenya akan tetap seperti yang pertama kali ia lakukan. Bahkan jika seluruh buku telah ditulis tentang mengapa Anda ingin menghindari melakukan sesuatu, ia akan menolak untuk mengakui validitasnya dengan mengklaim itu hanya pendapat seseorang.
Saya memiliki kepentingan dalam proyek kami, namun saya tidak yakin apakah saya dapat terus bekerja dengan mitra saya. Sepertinya saya punya tiga opsi terbuka untuk saya.
- Berhenti peduli tentang basis kode yang berfungsi melewati titik kompilasi, dan hanya berurusan dengan mencoba mempertahankan dan mengurai perilaku yang hampir tidak tertatih-tatih. Berharap bahwa sekali hal-hal mulai serius pecah dia akan melihat itu dan mencoba melakukan lebih dari sekedar meletakkan bandaid di atas desain cacat mendasar.
- Pertahankan argumen tak berujung tentang masalah yang telah ditemukan satu dekade yang lalu oleh individu yang jauh lebih mampu.
- Hentikan pemrograman pada proyek ini, tinggalkan hampir 10.000 baris kode saya dan banyak waktu yang harus saya habiskan untuk merancang dan coba dan temukan proyek baru sendiri.
Pendekatan apa yang bisa saya ambil untuk menentukan apakah layak melanjutkan proyek ini dengan orang ini? Atau faktor apa yang harus memengaruhi keputusan saya? Kami telah menulis banyak kode dan saya tidak ingin menyerah kecuali diperlukan.