Aku akan benar-benar tumpul ...
- Apakah Anda bertanggung jawab atas pengembang dalam pekerjaan ini?
- Apakah Anda pemimpin proyek?
- Berapa "taruhan" yang dimiliki pengembang dalam proyek?
- Apa justifikasi bisnis Anda untuk menulis ulang?
- Ada apa dengan basis kode yang membuatnya sama sekali tidak berguna dan tidak dapat dipulihkan?
Anda telah menyatakan bahwa Anda baru saja memulai pekerjaan, namun Anda tampaknya sudah menguasai situasi di sana. Mungkin saya telah salah mengerti maksud pertanyaan Anda, tetapi saya mendapat kesan bahwa Anda telah memasuki pekerjaan di mana Anda melihat sejumlah masalah, dan Anda telah melompat ke kesimpulan termudah di mana kode rusak dan satu-satunya jalan ke depan adalah menulis ulang, tetapi apakah Anda benar-benar mempertimbangkan biaya untuk majikan Anda untuk melakukannya?
Dengan basis kode yang ada - tidak peduli seberapa buruk keadaannya - pemilik biasanya akan memiliki investasi yang cukup besar dalam produk yang diwakili oleh kode tersebut. Ada biaya langsung dan tidak langsung yang terkait dengan basis kode, dan penulisan ulang sering kali merupakan hal terakhir yang ingin Anda lakukan sebagai pengembang perangkat lunak, karena Anda berisiko mendevaluasi aset kode Anda, dan karenanya mendapatkan pengembalian yang lebih rendah pada semua yang sebelumnya upaya.
Ambil sistem operasi Window sebagai contoh. Dengan setiap versi baru dibuat, ada sejumlah besar kode yang dibawa maju dari versi sebelumnya. Terkadang, seluruh pustaka dan API diseret ke depan melintasi beberapa generasi OS. Mengapa? Karena pengembang tahu bahwa elemen-elemen ini berfungsi, telah diuji, telah ditambal dan diperbaiki untuk mencegah masalah keamanan dan memori, dan karena mereka menghabiskan banyak uang untuk masuk ke keadaan itu. Tidak ada yang mau membuang kode kerja ketika menghasilkan uang, bahkan jika biaya perawatannya relatif tinggi, biaya untuk memulai dari awal akan selalu lebih tinggi lagi, dan di perusahaan seperti kasing Microsoft, mereka memiliki miliaran di bank yang memungkinkan mereka untuk memulai dari awal jika mereka mau, tetapi mereka tidak t karena mereka ingin memaksimalkan laba dari investasi mereka. Majikan Anda tidak berbeda dengan Microsoft, kecuali sedikit tentang memiliki miliaran uang tunai untuk dilemparkan pada suatu proyek.
Jadi kodenya berantakan, dan sepertinya ada masalah komunikasi dan batas antara berbagai bidang perusahaan. Apa yang dapat Anda atau kolega Anda lakukan tentang ini?
Salah satu pilihan adalah terus melanjutkan apa yang telah dilakukan tim, dan berharap akan keajaiban di masa depan. Mungkin bukan ide yang bagus, dan kemungkinan hanya akan menambah frustrasi dan stres Anda.
Pilihan yang lebih baik adalah dengan hanya menyerah dan melakukan pekerjaan Anda, tetapi sebagai bagian dari ini mencari peluang untuk menambahkan tes untuk mendukung area kode yang tampaknya paling rapuh, kemudian refactor mereka sampai mereka menjadi lebih stabil. Anda akan memiliki waktu yang lebih mudah untuk membuat argumen yang meyakinkan untuk meningkatkan investasi perusahaan alih-alih berdebat untuk membuangnya begitu saja.
Opsi yang lebih baik lagi adalah diorganisir sebagai sebuah tim, dan untuk memastikan Anda mendapatkan seseorang yang cukup senior sehingga mereka dapat membuat kasus yang baik untuk memungkinkan tim lebih fleksibel untuk menjadwalkan waktu untuk meningkatkan basis kode. Saya tidak peduli seberapa sibuk sebuah perusahaan, atau seberapa kaku jadwalnya, selalu ada "jeda" dalam aktivitas yang dapat digunakan untuk melakukan peningkatan atau dua peningkatan. Akan lebih baik jika perbaikan dapat dilakukan sambil menyelesaikan tugas lain. Jika itu saya, saya akan menyesuaikan diri dengan seorang manajer dan memperkenalkan mereka pada konsep-konsep dalam beberapa buku kanonik yang dibaca pengembang perangkat lunak. Kode Bersihmungkin yang paling dibutuhkan tim Anda. Tanam beberapa benih tentang cara meningkatkan kode, dan berikan beberapa contoh tentang maksud Anda. Seorang manajer yang baik akan melihat nilai penambahan peningkatan kode, terutama jika Anda dapat menggambarkan konsep Hutang Teknis . Bantu pemimpin tim atau manajer Anda untuk membuat kasus bisnis yang baik untuk meningkatkan kode, dan mereka akan memiliki motivasi yang lebih baik untuk menindaklanjutinya.
Itu juga tidak cukup untuk mengatakan "kode itu tidak rapi". Anda perlu mendorong kolega Anda untuk mempraktikkan pengkodean bersih sepanjang waktu, dan menggunakan teknik pengkodean bersih untuk mendorong sedikit merapikan saat Anda mulai. Saya memiliki poster kecil yang saya cetak dan gantung di dinding kantor setiap kali saya menerima pekerjaan baru. Itu mengatakan "Selalu berusaha untuk meninggalkan kode sedikit lebih indah daripada yang Anda temukan". Tepat di sebelahnya saya menambahkan yang lain yang mengatakan "Lili tidak perlu disepuh". Keduanya berfungsi untuk mengingatkan saya bahwa saya harus selalu berusaha meningkatkan apa yang saya temukan, tetapi menghindari hanya menyepuh emas satu masalah dengan yang lain. Penulisan ulang besar-besaran sering kali merupakan jenis "pelapisan emas" terburuk, karena sering dilakukan karena alasan yang salah. Tentu versi produk yang sama sekali baru mungkin dapat dibenarkan pada beberapa titik,