Saya bekerja di MNC yang cukup terkenal, dan modul tempat saya bekerja telah ditugaskan untuk "lead" baru. Basis kode cukup besar (~ 130K atau lebih, dengan saling ketergantungan pada modul lain), tetapi stabil - beberapa bagian telah tumbuh jelek selama bertahun-tahun, tetapi terbukti dalam kondisi kerja. (Produk kami berjalan selama bertahun-tahun pada mereka, bahkan yang baru). Masalahnya adalah, pimpinan kami ingin menulis ulang kode dari awal , untuk mencakup "rincian yang lebih baik dan desain proaktif".
Saya tahu dalam nyali saya itu bukan ide yang sangat bagus, tetapi bagaimana saya meyakinkan dia / anggota tim lainnya (yang jauh lebih senior dari saya dalam hal tahun exp), tanpa terdengar terlalu sombong sendiri (Anda tidak boleh menulis ulang, karena Joel et al memiliki artikel yang jelas melarangnya)?
Saya memiliki hubungan kerja yang baik dengan orang yang bersangkutan, dan tidak ingin merusaknya, tetapi saya juga tidak ingin menjadi bagian dari keputusan yang pasti akan mengganggu kami selama bertahun - tahun yang akan datang !! Adakah saran untuk pendekatan yang lebih ringan namun efektif? Bahkan kisah bagaimana Anda mengatasi situasi seperti itu sesuai dengan keinginan Anda akan sangat membantu saya!
EDIT: Basis kode yang saya bicarakan bukan produk / GUI, tetapi pada tingkat kernel dengan semua fungsi kritis untuk produk kami. Saya harap sekarang Anda tahu mengapa saya terdengar sangat memprihatinkan !!
sumber
Jawaban:
Lakukan perhitungan matematika dengannya:
Di sisi hutang:
berapa lama untuk membuat ulang fitur yang Anda miliki sekarang. Berapa biayanya (devs + overhead)
seberapa besar kerugian perusahaan karena tidak dapat menggunakan fitur / perbaikan bug baru atau hanya pada tingkat yang jauh lebih lambat?
apa risiko tidak dapat menyelesaikan penulisan ulang dan kembali pada basis sumber saat ini setelah n-bulan? Termasuk risiko membunuh produk secara bersamaan.
Berapa lama sampai basis kode baru terlihat sama jeleknya dengan yang sekarang?
Di sisi aset:
Tambahkan semuanya, mungkin melakukan perbandingan skenario kasus terbaik / terburuk.
Pada akhirnya Anda akan memiliki jawaban. Jika dia mengabaikan jawabannya, bicarakan dengan bosnya.
sumber
Wajib: Hal-hal yang Seharusnya Tidak Pernah Dilakukan, Bagian 1 (Anda pernah melihatnya, tetapi siapa tahu ada pertanyaan ini dan belum.)
Menulis ulang dari awal sangat menggoda bagi pengembang. Tidak ada yang mau mengerjakan kode warisan, semua orang ingin menulis kode baru yang seksi. Tetapi pada akhirnya itu tentang apa yang terbaik untuk bisnis. Mengapa diperlukan penulisan ulang? Bisakah mereka menyajikan kasus itu dengan cara yang jelas yang menunjukkan nilai tambah bagi bisnis?
Anda tidak harus meyakinkan mereka untuk tidak menghabiskan sumber daya. Mereka harus meyakinkan perusahaan untuk menghabiskan sumber daya.
sumber
Seberapa baik pendekatan pengujian Anda mencakup basis kode? Bagaimana dengan pengujian unit?
Jika tidak ada di sana, sarankan bahwa kode apa pun hanya ditulis ulang satu bagian pada satu waktu dan bahwa setiap bagian di bawah penulisan ulang hampir lengkap (90% +) cakupan kode tes unit. Setelah Anda melakukan ini, Anda akan menentukan bagian dari kode yang keduanya didefinisikan dengan baik (kami bisa mengujinya) dan juga memiliki antarmuka yang dikenal.
Pada titik itu, menulis ulang kode itu berisiko jauh lebih rendah. Kesalahan harus ditangkap oleh tes unit / tes lain, dan dengan asumsi Anda juga memiliki kontrol sumber dapat dengan mudah dikembalikan.
Mengambil penulisan ulang dalam potongan yang lebih kecil juga memungkinkan Anda dan pimpinan tim Anda untuk merasakan penulisan ulang yang lebih akurat. Apakah Anda berdua tahu apa yang Anda hadapi? Apakah salah satu dari kalian terlalu pesimis / optomistis?
sumber
Ada beberapa faktor yang relevan untuk dipertimbangkan:
sumber
Katakan saja tidak." Bersikaplah meyakinkan, tetapi berkeinginan untuk mengatakan, "Anda tidak hanya salah tentang manfaatnya, tetapi Anda salah karena boros upaya manusia."
sumber
Di mana kasus bisnis untuk menulis ulang? Anda memiliki basis kode yang memenuhi kebutuhan. Memang, itu mungkin tidak sempurna, tetapi itu merupakan investasi besar dalam hal waktu dan sumber daya. Satu-satunya waktu yang dijamin penulisan ulang lengkap adalah ketika kualitas kode sangat buruk sehingga menyebabkan organisasi seseorang kehilangan uang atau peluang bisnis. Orang perlu mengingat pepatah lama, jika tidak rusak, jangan memperbaikinya!
sumber
Beli celana pendek sebanyak mungkin di bursa. Jika manajemen setuju untuk bunuh diri, setidaknya Anda harus mendapat uang darinya. Bagaimanapun, Anda akan segera berada di jalan setelah mereka tangki.
sumber