Jadi pertanyaannya adalah:
Apakah ini sebenarnya praktik yang umum atau dalam cara apa pun merupakan ide yang baik?
Di antara jawaban yang tersedia saat ini adalah no . Jadi ada beberapa hal lain yang bisa saya ikuti seperti; bahkan kode prosedural dapat dibuat modular dan termasuk semuanya tetapi kitchen sink bukanlah cara Anda mencapai modularitas. Yang dilakukan oleh satu kelas raksasa menjadi parsial, semuanya bertambah menjadi satu kekacauan besar.
Namun pertanyaan itu adalah ikan haring merah ke bagian kritis nyata apa yang telah terjawab; karena OP juga memiliki pendapat berikut tentang situasi tersebut:
(...) Sementara reaksi usus saya adalah untuk mengeluarkannya dari orbit, mereka bersikeras ...
(...) Saya cenderung mengambil langkah segera untuk menjatuhkan makhluk buas ini (atau setidaknya mencegahnya agar tidak bertambah besar) tetapi saya bersedia percaya bahwa saya salah.
PEGANG KUDAMU!
Ini di sini adalah sesuatu yang akan membuat monocle kiasan saya berbicara jatuh ke dalam cangkir teh kiasan saya.
Saya pernah berada dalam situasi yang sama dan biarkan saya memberi tahu Anda: JANGAN jatuh hati pada dorongan untuk melakukannya. Tentu, Anda dapat menjatuhkan Nuke Hammer of Justice ke dalam tim, tetapi sebelum melakukannya, silakan humor sendiri dengan sedikit teka-teki berikut:
Apa yang akan terjadi jika Anda memberi tahu tim bahwa kode mereka menyebalkan dan turun ?
(... atau sesuatu seperti itu tetapi tidak terlalu ofensif, itu tidak masalah karena mereka akan tersinggung terlepas dari apa yang kamu lakukan jika kamu memutuskan untuk memaksakan diri pada mereka)
Bagaimana situasi saat ini dengan basis kode? Apakah ini berhasil? Maka Anda akan memiliki masalah besar menjelaskan kepada klien mereka bahwa kode mereka pada dasarnya payah . Apa pun alasan mereka: selama itu berhasil, sebagian besar klien tidak peduli tentang bagaimana kode tersebut disusun.
Juga menempatkan diri Anda pada posisi mereka, apa yang akan mereka lakukan? Biarkan saya menghibur Anda dengan hasil yang sangat mungkin berikut:
Anggota Tim # 1: "Jadi ada orang ini yang memberi tahu kami bahwa kami telah melakukan kesalahan selama beberapa tahun terakhir."
Anggota Tim # 2 dan # 3: "Dasar brengsek."
Anggota Tim Influential # 4: "Jangan khawatir tentang itu, saya akan pergi ke manajemen dan melaporkannya sebagai pelecehan."
Lihat apa yang Pengaruh Anggota Tim # 4 lakukan di sana? Dia pergi ke manajemen dan mengurangi karma Anda di perusahaan. Dia mungkin orang Amerika-Italia, menyuruh semua orang untuk tidak khawatir tentang hal itu, tapi kemudian aku akan rasis tentang hal itu.
Melukis tim yang menyinggung ke sudut dengan membiarkan mereka mengakui bahwa mereka melakukan kesalahan begitu lama juga merupakan ide yang buruk dan mengarah ke hal yang sama. Anda akan kehilangan rasa hormat dan beberapa karma politik kantor.
Bahkan jika Anda berhasil membuat banyak orang untuk menandatangani ini, untuk "mengajar tim pelajaran", ingat bahwa Anda melakukan ini kepada orang-orang yang cukup pintar yang tampaknya menyelesaikan beberapa hal. Setelah kode akan ditulis ulang / refactored / ditangani / apa pun dengan dan masalah muncul bahwa Anda akan bertanggung jawab karena Anda adalah firestarter .
Menjadi lawan tentang situasi seperti ini sebagian besar merupakan permainan kalah / kalah karena berisiko menjadi lingkaran setan permainan menyalahkan. Ini adalah hasil yang kurang optimal untuk situasi ini. Bahkan jika Anda menang, Anda tiba-tiba diserahkan kekacauan yang orang lain lakukan.
Ada Cara Lain (Banyak Dewasa)
Saya berada dalam situasi yang sama sekali, tetapi kemudian saya mengambil panah di lutut. Jadi setelah beberapa saat dengan karir yang tiba-tiba mengubah panah dalam pikiran saya, saya mendapatkan buku Driving Technical Change oleh Terrence Ryan . Ini mencantumkan beberapa pola skeptis, jenis orang yang tidak bertindak berdasarkan ide-ide bagus. Mereka semua kemungkinan besar berlaku dalam kasus OP:
- The Uninformed - Mereka benar-benar tidak tahu ada cara lain atau hanya tidak mengerti. Pengembang junior biasanya cocok dengan kategori ini tetapi tidak harus. (Sejujurnya: Saya sudah bertemu pengembang junior yang akan lebih cerah dari ini.)
- The Herd - Mereka tahu teknik yang lebih baik daripada menggunakan kelas parsial tetapi tidak tahu bahwa mereka diizinkan.
- The Cynic - Mereka hanya suka berdebat bahwa memiliki kelas parsial lebih baik daripada ide Anda hanya untuk berdebat. Sangat mudah untuk melakukannya di tengah orang banyak daripada berdiri di depan orang banyak.
- The Burned - Untuk beberapa alasan aneh mereka tidak suka membuat kelas baru, kemungkinan besar mereka menganggapnya terlalu sulit.
- The Time Crunched - Mereka begitu sibuk sehingga mereka tidak bisa repot-repot memperbaiki kode mereka.
- Bos - Mereka berpikir: "Ya itu berhasil; jadi mengapa repot-repot?"
- The Irrational - Ok, mereka benar-benar gila.
Buku ini berlanjut dengan daftar strategi dan seterusnya, tetapi dalam kasus OP itu masalah persuasi. Akan kuat dengan fakta-fakta tentang pola-anti saja tidak cukup.
Jika Anda berminat untuk meningkatkan kualitas kode, setidaknya berikan kesempatan kepada tim yang menyinggung untuk mengulangi dan memperbaiki kekacauan mereka sendiri . Secara pribadi saya akan mencoba untuk mempengaruhi mereka dengan mendengarkan dan mengajukan pertanyaan-pertanyaan terkemuka, biarkan mereka menceritakan kisah mereka:
- Apa sebenarnya yang dilakukan kelas dewa mereka?
- Apakah mereka mengalami masalah? Apakah mereka punya bug? Sarankan perbaikan waras tanpa menyuruh mereka melakukannya.
- Jika Anda pengguna kelas dewa ini sebagai API: Apakah ada cara yang lebih sederhana untuk menggunakan kode daripada menggunakan semuanya? Sarankan contoh yang lebih sederhana, lihat bagaimana mereka bereaksi.
- Bisakah Anda mengganti beberapa fungsi dengan yang lain, tanpa harus menulis fungsinya?
- Apakah mereka membutuhkan pelatihan? Dapatkah Anda meyakinkan manajemen untuk memberikannya kepada mereka atau mengadakan pertemuan makan siang tentang pola dan praktik?
... dan seterusnya. Beri mereka saran kecil agar mereka dapat bergerak maju. Butuh waktu dan akan membutuhkan minyak siku kelas politik kantor tetapi kesabaran dan kerja keras adalah kebajikan kan?