Teknik borç, bir yazılımda hız kazanmak için alınan kestirme kararların (geçici çözüm, atlanmış test, düzensiz kod) zamanla biriktirdiği ve ileride ek emekle ödenmesi gereken gizli maliyettir; faizi, her yeni değişikliğin zorlaşmasıdır.
Teknik borç, mali borca benzetilerek adlandırılmıştır. Bir geliştirici teslim tarihine yetişmek için geçici bir çözüm yazar, testi sonraya bırakır ya da aynı kodu iki yere kopyalar; iş o an biter ama kodda bir eksik kalır. Bu eksik, sonraki her değişiklikte kendini hatırlatır: yeni özellik eklemek daha uzun sürer, küçük bir düzeltme başka bir yeri bozar, yeni bir geliştiricinin kodu anlaması zorlaşır. Borç bilinçli alınabilir ve planlı ödenebilir; sorun, farkında olmadan biriken ve hiç ödenmeyen borçtur. Bakım anlaşmalarında ayrılan iyileştirme zamanı çoğunlukla bu borcu ödemeye gider.
İşletme sahibi için neden önemli
Teknik borç doğrudan görünmez; görünen sonucu, giderek yavaşlayan geliştirme ve artan hata sayısıdır. Başlangıçta bir günde eklenen özellik türü bir yıl sonra bir hafta sürüyorsa borç birikmiştir. Uzun süre kullanacağınız bir yazılım yaptırıyorsanız, teklifin yalnızca ilk teslimi değil, kodun sürdürülebilirliğini de kapsayıp kapsamadığını sormak gerekir. Çok düşük bir teklif, çoğu zaman borcun size devredileceği anlamına gelir.
Örnek
Bir lojistik firmasının sipariş takip yazılımı iki yıl önce hızlıca yazılmış; kargo entegrasyonu, araç takibi ve faturalama sonradan üstüne eklenmiş. Yeni bir kargo firması eklemek istendiğinde geliştirici, önceki entegrasyonların birbirine dolandığını görüyor ve önce entegrasyon katmanını yeniden düzenlemek zorunda kalıyor. Yeni özellik için harcanan emeğin büyük kısmı, aslında eski borcun ödenmesidir.
Sık yapılan hata
Borcu görmezden gelip yalnızca yeni özellik istemektir. Her yeni özellik, düzensiz bir temelin üstüne eklendiğinde borcu büyütür ve bir noktada yeniden yazmaktan başka çare kalmaz. Diğer hata, geliştiricinin iyileştirme talebini gereksiz masraf saymaktır; oysa planlı iyileştirme, plansız çöküşten ucuzdur.
Teklif alırken sorulacak soru
Kod kalitesi ve test kapsamı için hangi standartlar uygulanacak ve bunlar nasıl belgelenecek? Bakım döneminde teknik iyileştirme için ayrılmış bir pay olacak mı?
Sık sorulanlar
Teknik borç tamamen önlenebilir mi?
Hayır. Her projede bir miktar borç oluşur; önemli olan bilinçli alınması, kaydedilmesi ve planlı ödenmesidir. Sıfır borç değil, yönetilen borç hedeflenir.
Teknik borcun ne kadar olduğunu nasıl anlarım?
Geliştirme hızındaki düşüş ve düzeltme sonrası çıkan yeni hatalar en pratik göstergelerdir. Bağımsız bir kod incelemesi de mevcut durumu somutlaştırır.