Saya telah mengerjakan proyek perangkat lunak kebanyakan solo selama lebih dari 5 tahun. Awalnya memang berantakan (saya adalah pengembang ketiga atau keempat yang mengerjakannya), dan meskipun tidak terlalu berantakan sekarang ini masih sangat tidak terorganisir. Tingkat kemajuan dalam mengendalikannya adalah gletser dan saya mulai merasa sedih atas keadaannya. Bagaimana cara saya benar-benar mulai memperbaikinya?
Khusus proyek: Ini adalah program penjualan yang ditulis hampir seluruhnya dalam Visual Basic Classic (VB6) dengan ujung belakang MySQL dan mesin pelaporan yang ditulis dalam C #. Modul pelaporan C # adalah kegembiraan untuk dikerjakan, itu baru saja ditulis dalam beberapa tahun terakhir dan sebelum itu semua laporan dilakukan di Crystal Reports 9 (ya, kami masih memiliki beberapa laporan yang mengandalkannya).
Program yang sebenarnya itu sendiri, bagaimanapun, adalah bencana yang lengkap. Tidak ada total 90k LOC, dan sekitar 10k baris komentar (kebanyakan bukan dokumentasi, tetapi kode lama yang sudah dikomentari). 158 file formulir, dan 80 file modul. Saya tidak tahu berapa banyak dari mereka yang benar-benar digunakan, karena beberapa fitur dari program ini cukup usang dan (eh, kadang-kadang) dicatat seperti itu tanpa kode yang terkait dihapus dari program. Saya kira hanya 50% kode yang digunakan secara produktif sebenarnya.
Saya takut menyentuh banyak kode hanya karena saya tidak yakin jika saya melanggar sesuatu yang diandalkan oleh satu klien yang tidak dikenal, itu terjadi pada lebih banyak kesempatan daripada yang bisa saya hitung. Ini seperti ada ranjau darat berserakan di seluruh kode.
Ada tidak benar-benar struktur proyek. Ini tidak berorientasi objek kecuali di beberapa tempat saya memiliki kesabaran untuk melakukan reformasi sejauh ini. Jika Anda perlu mendapatkan data pada formulir, Anda instantiate objek database, mendeklarasikan permintaan Anda di sana dalam fungsi, jalankan dan lakukan apa yang Anda inginkan dengan dataset.
Ketika saya mulai mengerjakan proyek tidak ada sumber kontrol yang digunakan. Saya mencoba untuk mendorong orang lain yang sedang berusaha untuk menggunakannya, tetapi saya adalah orang baru dan upaya saya untuk membuat orang menggunakan subversi tetapi gagal. Pengembang utama perusahaan akhirnya menangkap bug lincah dalam beberapa tahun terakhir dan dia memastikan bahwa semua pengembang menggunakan kontrol sumber pada semua proyek sekarang, jadi setidaknya itu beberapa kemajuan.
Saya pikir jika saya dapat bekerja untuk mereformasi proyek secara penuh, saya akan dapat membuat kemajuan yang layak dan mungkin bahkan memiliki perkiraan untuk berapa lama waktu yang saya perlukan untuk menyelesaikan proyek sepenuhnya, tetapi itu sedang digunakan secara aktif dan saya terus-menerus diminta untuk memadamkan api, memperbaiki bug, menambahkan fitur, dll.
Jadi bagaimana saya mulai benar-benar memperbaiki proyek ini? Cobalah untuk alat VB6 dengan bahasa lain? Coba dan tulis ulang program di waktu luang saya? Atau ini benar tanpa harapan?
Memperbarui
Setelah posting ini saya kembali ke proyek dengan semangat baru, tetapi jatuh kembali ke keputusasaan dalam beberapa bulan setelah melihat tingkat kemajuan yang lambat. Saya kemudian mengulangi siklus ini 2 atau 3 kali lebih banyak selama satu tahun ke depan.
Sejak itu saya pindah ke pekerjaan lain. Meskipun setelah bertahun-tahun vb6, dan hanya pengalaman periferal dengan teknologi lain pencarian itu sulit dan saya menghadapi banyak penolakan di sepanjang jalan (sekitar selusin wawancara selama setahun). Saran saya kepada orang lain dalam situasi ini adalah mempertimbangkan meninggalkan faktor ini sendirian. Pertimbangkan kerusakan yang dapat Anda lakukan untuk karier Anda dengan tetap berada di posisi buntu seperti ini.