Teknik borç (technical debt) , Ward Cunningham tarafından ortaya koyulmuş bir analoji. Cunningham sistemlerimizdeki idealden uzak durumları, tasarım hatalarını ödenmesi gereken finansal borçlara benzetiyor. Ev almak araba almak için aldığımız krediler, borçlar zamanı gelince ödenmesi gereken zorunluluklar bizim için. Eğer ayağımızı yorganımıza göre uzattıysak ne ala, sıkı bir disiplin ile borçlarımızı zamanı geldikçe öder ve normal rutinimize geri döneriz. Hesapsız yola çıktıysak vay halimize borcu daha fazla borç ile kapatmaya çalışır içinden çıkılmaz bir duruma düşeriz.
Analoji, yalnızca ödeme sürecini değil, borcun alınma sürecini de kapsıyor. Bu borçları ne zaman nasıl aldık? Ne yaptığımızın farkında mıydık? Gördüğüm kadarı ile çoğu takımın durumunu borç olarak nitelemek imkansız; oluşan şeyin adı teknik kirlilik(cruft). Bu kirlilik bazen bilgi eksikliğinden bazen tembellikten ve disiplinsizlikten bazen de kendi kendine oluyor (kullandığınız o kütüphaneler güncellenmeyecek mi sanıyordunuz).
Borç analojisi her zaman tam olarak çalışmasa da Martin Fowler’ın pragmatik yaklaşımı [1] bana mantıklı geliyor; teknik borç kavramı da teknik kirlilik kavramı da nihayetinde birer analoji. Analojileri de daha iyi iletişim kurmak için kullanıyoruz. Borç, herkesin aşina olduğu bir kavram ve teknik kirliliğin bizi nasıl yavaşlattığını ve temizlemenin ancak disiplin ile uzun zamanda mümkün olacağını herkesin anlayabileceği şekilde ifade etmenin güzel bir yolu.
Peki siz geliştirme yaparken gerçekten borç mu alıyorsunuz yoksa bilinçsizce etrafı mı kirletiyorsunuz?

Leave a comment