"Aşırı karmaşıklık noktası" İngilizce olarak şu şekilde ifade edilir:
Aman Tanrım BU ÇAP NEDİR?
Sorun şu ki, bu aslında basit bir şey için geçerli olabilir, ancak aynı reaksiyona sahip olacak kadar korkunç bir şekilde uygulanır.
Bu yüzden çok karmaşık bir şeyi çok korkunç bir şeyden ayırmak zor olabilir.
ANCAK: Aslında tüm yazılımların başına gelme eğilimi şu şekilde bir süreçtir:
Adım 1: güzel bir spec var, güzel bir tasarım yapmak, güzel şeyler uygulamak. Herkes mutlu.
1. adımın sonunda: geliştiriciler tasarımlarının harika zarafetinden dolayı kendilerini tebrik ederler ve mutlu düşünerek uzaklaşırlar. daha iyi bir yer."
Adım 2: Bazı değişiklikler yapılır, işler eklenir, yeni işlevler eklenir. Adım 1'deki mimari ve yapı bunu oldukça ağrısız bir süreç haline getirdi. [Ama ayy, "ham faktör" biraz arttı.]
2. adımın sonunda: geliştiriciler tasarımlarının harika zarafetinden dolayı kendilerini tebrik ederler ve mutlu düşünerek uzaklaşırlar. "Gee, Adım 1'deki tüm izinleri almak için çok zekiyim. burada başkalarının gelecekte bir şeyler eklemesi harika olacak ve dünya daha iyi bir yer olacak. "
Adım 3: Daha fazla değişiklik yapılır, daha fazla şey eklenir, daha yeni işlevler, bir sürü şey değiştirilir, kullanıcı geri bildirimi gerçekten dinlenir.
3. adımın sonunda: geliştiriciler tasarımlarının harika zarafetinden dolayı kendilerini tebrik ederler ve oldukça mutlu düşünerek uzaklaşırlar. X ve Y ve Z hakkında. Şimdi biraz temizlenebilirlerdi ama! Ahhh !!! Adım 1'deki tüm ödenekleri yapmak için çok zekiyim. Bu çok iyi gitti. Burada harika bir mirasım var. diğerleri gelecekte bir şeyler eklemek için harika olacak ve dünya daha iyi bir yer olacak. "
Adım 4: Tıpkı 3. Adım gibi.
4. adımın sonunda: geliştiriciler şöyle düşünüyor: "Bu kadar iyi olan şeyler Çirkinleşmeyi sürdürüyor. Gerçekten bazı ciddi değişikliklere ihtiyacı var. Bu konuda çalışmayı gerçekten sevmiyorum. Yeniden düzenleme ihtiyacı var. Patronun ne olduğunu merak ediyorum Ona 6 hafta gerektiğini söyledi ve kullanıcıların bunun sonunda görmek için hiçbir şey olmayacağını söyleyeceğim ... ama bunu yaparak nefis gelecek değişiklik kapsamı 5 yıl daha var .... hmmm .. ... bira içmek için bara gitme zamanı. "
5. Adım: Birkaç değişiklik yapılması gerekir.
Ve 5. adımda geliştiriciler birbirlerine: "Bu kod berbat. Bunu kim yazdı? Vurulmalılar. Korkunç. Yeniden Yazmamız Gerekiyor."
Adım 5 ölümcül. Bu, ham faktörün o kadar kötüye gittiği, kodun sadece birkaç değişikliğe sahip olamayacağı, bazı BÜYÜK değişikliklere sahip olması gerekiyor.
5. Adımdaki sorun, onu atma ve yeniden başlama arzusudur. Bunun ölümcül olmasının nedeni "Netscape Faktörü" dür. Google'a git. Şirketler bu noktada DIE, çünkü tekrar başlamak, gerçekler yerine yaklaşık% 50 varsayımlar, bilgi yerine% 150 coşku, alçakgönüllülük yerine% 200 kibir ile başladığınız anlamına gelir ("Bu adamlar çok stoooopid!"). Ve bir sürü yeni hata tanıtıyorsunuz.
Yapılacak en iyi şey refactor etmektir. Her seferinde biraz değiştirin. Mimari biraz yoruluyorsa düzeltin. Ekleme, genişletme, geliştirme. Yavaş yavaş. Yol boyunca her adımda, biraz daha test edin, test edin ve test edin. Bunun gibi artan değişiklikler, 10 yıl sonra mevcut ve orijinal kodun büyükbaba baltası gibi olduğu anlamına gelir ("10 yeni kafası ve 3 yeni kulpu vardı, ancak hala büyükbaba baltası"). Başka bir deyişle, pek fazla ortak nokta kalmamıştır. Ama yavaş yavaş ve dikkatli bir şekilde eskiden yeniye geçtiniz. Bu riski azaltır ve müşteriler için sinirli faktörü azaltır.