Saat ini saya bekerja untuk perusahaan kecil yang memiliki beberapa produk yang rumit secara teknis. Saya satu-satunya pengembang untuk salah satunya. Sekitar setahun yang lalu, saya mendapatkan versi produk warisan dan mulai "mendukung" itu.
Pelanggan hanya berbicara tentang fitur baru, nilai bisnis, dan lainnya dari jenis itu. Masalahnya adalah, meskipun kodenya dalam C #, itu cukup prosedural. Tidak ada abstraksi, kelas hanya digunakan di mana Visual Studio membutuhkannya - Formulir, misalnya. Implementasi kelas-kelas ini sangat buruk dan kodenya sangat sulit untuk dipelihara.
Sepanjang tahun ini saya menghabiskan waktu saya sendiri untuk refactoring. Dalam versi terbaru, ada banyak abstraksi dan semacamnya. Saya harus menerapkan kembali sejumlah komponen dari awal dan saya benar-benar merasa bahwa menambahkan fitur baru atau mengubah perilaku ke komponen-komponen ini JAUH lebih mudah daripada yang lain.
Masalahnya adalah, saya menghabiskan waktu saya sendiri. Saya sangat suka hasilnya, tapi saya tidak suka bekerja 12 jam per hari. Pernahkah Anda ke situasi yang sama? Apa yang harus saya coba? Saya sudah mencoba membahasnya, tetapi masih belum berhasil.
Saya hanya takut pada saat ketika kami memutuskan untuk mengimplementasikan fitur baru yang membutuhkan banyak perubahan pada kode legacy. Itu bisa sangat mengejutkan bagi pelanggan: mengapa Anda perlu 8 jam untuk mengubah ikon ini? Pelanggan tidak peduli bahwa ada 500 tempat dalam kode yang perlu saya ubah. Dan saya juga harus menemukan semua 500 tempat ini terlebih dahulu.
Ada ide?