Yani soru şuydu:
Bu aslında yaygın bir uygulama mı yoksa herhangi bir şekilde iyi bir fikir mi?
Mevcut cevaplar arasında yankılanan bir no . Yani, bunun hakkında çınlayabileceğim başka şeyler de var; usule ait kodlar bile modüler hale getirilebilir ve her şey dahil ancak mutfak lavabosu modülerliği nasıl elde ettiğinizden ibaret değildir. Devasa bir sınıfın kısmi parçalara ayırdığı gibi, hepsi büyük bir karmaşaya yol açar.
Ancak bu soru, kaçırılanın asıl kritik kısmına kırmızı bir ringa balığıdır ; OP’nin de durum hakkında söylenecekleri var:
(...) Bağırsak reaksiyonum onu yörüngeden çıkarmak iken, ısrar ediyorlar ...
(...) Bu canavarı yıkmak için hemen adımlar atmaya meyilliyim (veya en azından daha fazla büyümesini engelleyeceğim) ama yanıldığımı düşünmeye istekliyim.
ATLARINIZI TUTUN!
Bu, mecazi anlamda konuşan monocle'imin figüratif çayma düşmesini sağlayacak bir şey.
Benzer durumlar içindeyim ve size söyleyeyim: Dürtü yapmaya isteme. Tabii ki, Nuke of Justice Adalet'i takıma bırakabilirsiniz, ancak bunu yapmadan önce lütfen aşağıdaki sıkıntılarla kendinizi şımartın:
Ekibe kodlarının berbat olduğunu ve ayrıldığını söylerseniz ne olacak ?
(... ya da onun gibi bir şey ama daha az saldırgan, gerçekten önemli değil çünkü onlar için tam güçlendirme yapmaya karar verirseniz ne yaparsanız yapın kırgın olacaklar)
Kod tabanındaki mevcut durum nedir? Çalışıyormu? O zaman müşterilerine kodlarının esasen berbat olduğunu açıklamakta büyük problemleriniz olacak . Hangi sebepleri olursa olsun: çalışır durumdayken, çoğu müşteri kodun nasıl organize edileceği ile ilgilenmez.
Ayrıca kendinizi ayakkabılarına koyun, ne yaparlardı? Sizi aşağıdaki çok olası sonuç ile eğlendireyim:
Takım Üyesi # 1: "Son yıllarda yanlış yaptığımızı söyleyen bu adam var."
Takım Üyesi # 2 ve # 3: "Ne salak."
Etkili Ekip Üyesi # 4: "Endişelenme, sadece yönetime gidiyorum ve bir zarar verme olarak rapor edeceğim."
4 numaralı Etkili Ekip Üyesi'nin orada ne yaptığını gördün mü? Yönetime gitti ve şirketteki karmasını azalttı. Amerikan-İtalyan olabilir, herkese endişe etmemesini söylüyor, ama o zaman ırkçı olacağım.
Suçlu takımı, uzun süredir yanlış yaptıklarını kabul etmelerine izin vererek bir köşeye boyamak, aynı zamanda kötü bir fikirdir ve aynı şeye yol açar. Saygı ve bazı ofis politika karmalarını kaybedeceksiniz.
Bir grup kişiye bunu imzalamasını başarmış olsanız bile, "takıma bir ders vermek" için, bunu görünüşte bazı şeyleri yapan oldukça zeki insanlara yaptığınızı unutmayın. Bir kez kod yeniden yazılacak / yeniden düzenlenmiş / dağıtılmış / ne olursa olsun ve ne olursa olsun, itfaiyeci olduğunuz gibi sorumlu tutulacaksınız .
Bu gibi durumlar konusunda çekişmeli olmak, genellikle suçlu oyunların kısır döngüsüne dönüşme riski taşıdığı için kaybetme / kaybetme oyunudur . Bu, bu durum için yetersiz bir sonuçtur. Kazansan bile, birdenbire başkasının yaptığı pisliği devredersin.
Başka (Çok Olgun) Yollar Var
Bir zamanlar benzer bir durumdaydım, sonra dizimden bir ok aldım. Bir süre sonra okuduğum ani kariyeri okla değiştirirken aklımda Terrence Ryan'ın Sürücü Teknik Değişimi adlı bir kitap aldım . Birkaç şüpheci modelini listeler, insanların iyi fikirlere etki etmemeleri. Hepsi OP'nin durumunda geçerli olabilir:
- Bilgilendirilmemiş - Gerçekten başka yollar olduğunu bilmiyorlardı ya da sadece anlamadılar. Küçük geliştiriciler genellikle bu kategoriye uyuyor ancak zorunlu değil. (Dürüst olmak gerekirse: Bundan daha parlak olacak olan genç geliştiricilerle tanıştım.)
- Sürü - Kısmi sınıfları kullanmaktan daha iyi teknikler biliyorlardı ancak izin verildiklerini bilmiyorlardı.
- Cynic - Sadece kısmi sınıflara sahip olmanın sadece tartışma uğruna sizin fikrinizden daha iyi olduğunu iddia etmek istiyorlar. Kalabalığın önünde durmak yerine, kalabalığın içinde yapmak kolaydır.
- Burned - Bazı garip sebeplerden dolayı, yeni sınıflar oluşturmayı sevmiyorlar, büyük olasılıkla bunu çok zor olarak algılıyorlar.
- Crunch Time - O kadar meşguldürler, kodlarını düzeltmek için uğraşmazlar.
- Patron - Düşünüyorlar: "İyi çalışıyor; peki neden rahatsız ediyorsun?"
- Mantıksız - Tamam, onlar tamamen çılgınca.
Kitap bir strateji listesiyle devam ediyor, ancak OP'nin durumunda bu bir ikna meselesi. Anti-patern hakkındaki gerçeklerle güçlü kafa dolaşmak yeterli değildir.
Kod kalitesini yükseltmek ilginizi çekiyorsa, en azından rahatsız edici ekibin kendi karışıklıklarını yinelemeleri ve düzeltmeleri için şans verin . Şahsen, önde gelen soruları dinleyerek ve sorarak onları sallamaya çalışırdım, öykülerini anlatmalarına izin verin:
- Tanrı sınıfları tam olarak ne yapıyor?
- Herhangi bir sorunla karşılaştılar mı? Herhangi bir böcek var mı? Akıllıca düzeltmeler yapmalarını söylemeden onlara önerin.
- API olarak bu tanrı sınıfının kullanıcısıysanız: Kodu kullanmanın her şeyi kullanmaktan daha basit yolları var mı? Daha basit örnekler önerin, nasıl tepki gösterdiklerini görün.
- Fonksiyonu yazmak zorunda kalmadan başka bir fonksiyonelliğe geçiş yapabilir misiniz?
- Bazı eğitimlere ihtiyaçları var mı? Yönetimi onlara vermeye veya kalıplar ve uygulamalar hakkında öğle yemeği toplantıları yapmaya ikna edebilir misiniz?
... ve bunun gibi. Onlara küçük önerilerde bulunun, böylece ileriye gidebilirler. Zaman alır ve bazı ofis politikalarında sınıfta dirsek yağı gerekir ama sabır ve sıkı çalışmak bir erdem midir?