Yemek dünyasında "slow food" hareketi, hızlı yemeğe tepki olarak doğdu. Yazılımın kendi versiyonunun zamanı çoktan geldi: yavaş yazılım. Adı kulağa tembel geliyor, olsun. Kastımız tembellik değil; hızın tapınıldığı bir çağda, bilinçli yavaşlamanın ürettiği değeri savunmak. Çünkü ekranda akan loglar ile gerçek ilerleme aynı şey değil.

Hız Yerine Acele

Acele eden yazılımın belirtileri herkesçe bilinir: fabrika ayarlarında isimlendirilmemiş değişkenler, "geçici" diye düzeltilecek ama asla düzeltilmeyen çözümler, üç ay sonra kimse tarafından anlaşılmayan tek satırlık sihirler. Acele kodun faturası vade farksız kesilir; ödemeye çoğu zaman başkası girer. Teknik borç dediğimiz şey aslında budur: bugün kazanılan yarım saat, altı ay sonra iki gün olarak ödenir. Faiz oranı her dilde, her çerçevede aynıdır — yüksektir.

Bu borcun en sinsi yönü, görünmez olmasıdır. Panoya gelen hata bildirimi, sayfayı yavaşlatan sorgu, yeniden üretilmesi imkânsız bir hata — hepsi geçmişte yapılan birer acelemanın bugüne taşınmış hâlidir. Ekip büyüdükçe tablo netleşir: kod tabanına yeni katılan meslektaşın ilk sorusu "burada ne oluyor?" ise, suç o an yazılan kodda değil, yıllar önce aceleye getirilmiş kararlardadır. Hız ölçümlerine "okuyucunun harcadığı zamanı" da eklemeyi öneriyoruz; gerçek maliyet ancak o zaman görünür.

Kodun gerçek maliyeti yazarken ödenmez; okuyan, değiştiren ve bakımını yapan kişinin zamanıyla ödenir. Acele yazılan kod, pahalı kod demektir.

Yavaşlık Lüks Değil, Disiplin

Yavaş yazılım, saatte tek satır yazmak demek değil. Demek ki, ölçerek yazmak. Önce problemi tam anlamak, sonra çözümü basitten başlatmak, iş bitince de okuyanı düşünmek. Kod incelemesinde "işe yarıyor mu" sorusunun yanına "altı ay sonra anlaşılır mı" sorusunu eklemek. Otomasyon testlerine bugünden alışmak, çünkü gelecek hafta değil, gelecek yıl da çalışsın. Bu disiplin hızın düşmanı değil; doğru hızın bulunmasıdır. Yeterince iyi, zamanında teslim edilen ve üç yıl sonra bile okunabilen yazılım, aceleye getirilip baştan üç kez yazılan yazılımdan hızlıdır.

Bu hareket, yeni bir şey de söylemiyor aslında. Onlarca yıldır okuduğumuz klasiklerin özüydü: kod, çoğunlukla yazıldığı gün değil, okunduğu günler için yazılır. Tasarımın en yalın hâli, en zor işti. Yeniden icat edilen ise yalnızca ad: yavaş yazılım, eski bilgeliğin hız çağına giydirilmiş yeni bir cekettir. "Bugün yetişmeli" ile "yanlış yapmaya hakkımız yok" ikilemine tutulan makul bir cevap. Aceleye getirilmemiş kodun değeri, üzerinde bir kez değil, bin kez geçilebilmesinde.

Yol Uzun, Sabır Kıymetli

Bu köşede yıllardır savunduğumuz görüşü bir cümlede toplayalım: yazılım bir sprint değil, maratondur. Maratonda kazanan, ilk yüz metrede önde olan değil; temposunu bilen, nefesini kademelendiren koşucudur. Ekiplerimize "hızlı olun" demek yerine "sürdürülebilir olun" demeye başlasak, teknik borcun faizi de teslim tarihinin de daha insanî olduğunu hep birlikte görürüz. Kod, aceleye getirilmemişse kıymetlidir — tıpkı iyi bir yemek, iyi bir haber ve iyi bir köşe yazısı gibi.