Teknik borç, yazılımın en kolay sarhoş olduğu cümleyle doğar: "Şimdilik böyle yapalım, sonra düzeltiriz." Sonra der ki işler aceleyle güçleşir; "sonra" gelir ama düzeltme gelmez. Her geçen gün borç, bir faiz işlemeye başlar: Yeni özelliğin geliştirme süresi uzar, test etmek güçleşir, hatanın yeri belirsizleşir. Borç bilinçli alınmışsa bir finansman aracıdır; bilinçsiz alınmışsa, gelecekten çalınmış bir zamandır. Muhasebe, borcun varlığını değil, faizini tartışan bilimdir.

Borcun türleri de aynı değildir ve muhasebesi de öyle olmalıdır. Kasıtlı ve belgelenmiş borç — "bu pazarlama kampanyası için geçici çözüm, kampanyadan sonra düzeceğiz" — yönetilebilir bir borçtur; kaydı vardır, vadesi vardır. Kasıtsız borç ise fark edilmediği için tehlikelidir: yıllar içinde biriken eski kararlar, kimse hatırlamadığı için giderilemeyen çözümler. Üçüncü tür ise en sızıntılısıdır: bilinen ama hiç konuşulmayan borç. Ekipte herkesin bildiği ama toplantıya taşınmayan konu, bir bakıma gizli bir bilanço kalemidir; ve gizli kalemler, iflasın en sık sebebidir.

Görünmez Kalemin Bedeli

Finansal muhasebede her borç bir kayıt ister; teknik borçta ise kayıt çoğu ekipte yoktur. Borç, kodun içinde ama tabloda görünmez; o yüzden her bütçe görüşmesinde ilk kurban odur. Oysa borcun faizi her gün işletmedir: Basit bir değişikliğin üç gün sürmesi, tek bir modüle dokununca iki modülün kırılması, yeni çalışanın ilk ayında "burada ne oluyor" sorusunun sıklaşması. Bunlar tesadüf değil, borcun faiz ödemesidir. Hız ölçen ekip, bu faizi "ekip yavaşladı" diye yazar; oysa yavaşlayan ekip değil, borç alan kod tabanıdır.

Teknik borcun faizi, yapmadığınız işlerin faturasıdır: Bugün yazılmayan test, yarın ayıklanan günler olarak ödenir.

Borcu Ölçmek ve Ödemek

Borcun yönetimi üç adımla başlar. Birincisi saydılık: Borç tek bir listede toplanmalıdır; hangi modülde, ne kadar sürebilir, neyi zorluyor. İkincisi ölçüm: Aynı işin borçsuz kısımda bir gün, borçlu kısımda üç gün sürdüğünü biliyorsanız, faiz oranını elinizde tutuyorsunuz demektir. Üçüncüsü ödeme planı: Her geliştirme döngüsünde belli bir oranın — örneğin yüzde yirmisinin — borç ödemesine ayrılması, sistemin kendini onaran bir canlı gibi yaşamasını sağlar. Borç kapatılmalı diye bütün iş durmaz; faizi, büyümesinden yüksek olacak şekilde ödenir.

Muhasebeci Kim

Son soru şudur: Bu muhasebeyi kim tutar? Cevap, yöneticidir; ama kalemi ekibin herkesi taşır. Yöneticinin işi, borcu bir teknik aksaklık değil, bir iş maliyeti olarak sunmayı öğrenmektir. "Kodumuzu düzeltmemiz lazım" cümlesi, "bu modüle yeni özellik eklemek şu an üç kat pahalı; bir hafta ayırırsak, sonraki her iş bir kat daha hızlanır" cümlesine dönüştüğünde, bütçe kapısı açılır. Teknik borç, bir yazılımcı sorunu değil, bir şirketin nakit akışı meselesidir; muhasebesini bilen ekip, faizi ödemekten faiz kazanmaya geçer.