Şans değil, yapı.
Bir sistem on yıl ayakta kalıyorsa bunun nedeni ona dokunulmaması değil, makul bir maliyetle değiştirilebilmesidir. Yazılımı hayatta tutan ilk günkü kod değil, yıllar boyunca her değişikliğin maliyetidir — ve bunu birkaç şey belirler: düşük bağımlılık, net sınırlar, bilinen hata durumları ve korunmuş bir gerekçe.
Biz tam da bunun için tasarlıyoruz. Taşıyıcı kararları bilinçli olarak alınmış ve yazıya dökülmüş bir sistem, onu geliştirmemiş kişiler tarafından da güvenle değiştirilebilir. Bu yüzden başka sistemler katılaşıp yerini yenilerine bırakırken o kullanılmaya devam eder.
Değer, değiştirilebilirlikte yatar.
Yazılım bir kez yazılır, ardından on yıl boyunca okunur ve değiştirilir. Maliyet neredeyse hiçbir zaman yazmakta değil, değiştirmektedir. Artık güvenle dokunulamayan bir sistem değerini bir arızayla değil, durağanlıkla kaybeder — her uyarlama bir cesaret sınavına dönüşür, ta ki kimse bir şey değiştirmeyene kadar.
Bu yüzden bakım kolaylığı bir lüks değil, yapılan yatırımın değerini koruyan şeydir. Framework'ten bağımsız iş mantığı, hataların pahalı olduğu yerlerde testler, ilk günden gözlemlenebilirlik: Bunlar üslup meselesi değil, bir sistemin değiştirilebilir kalmasının koşullarıdır.
Küçük makaslar, büyük etki.
Sistemler nadiren tek bir yanlış kararla pahalı hale gelir. Pahalılaşmaları birikimle olur — dağınık iş mantığı, belgelenmemiş kararlar, erken karmaşıklık, kaybolmuş gerekçe. Her biri tek başına zararsızdır; bir araya geldiklerinde küçük bir iş değişikliğinin büyük bir teknik değişikliğe dönüştüğü noktaya varılır.
Tersine, iyi kararlar da aynı şekilde birikir. Ayakta kalan bir sınır; eklemeli olarak büyüyen bir sözleşme; kesintisiz bir migrasyon — her biri yarının değiştirilebilirliğine katkı sağlar. Bu yüzden taşıyıcı kararları hâlâ ucuzken bilinçli ve erken alır, belgeleriz. Kalan müşteriler bağımlı oldukları için değil, sistem yükünü taşımaya devam ettiği için kalır.
Yıllarca dayanması gereken bir sistem mi?
Şirket yönetimiyle konuşun — teknik bir görüşme, satış yok.
