Yazılım Notları

Spec, Domain ve Disposable Code

Kod Tek Kullanımlık Hale Geldiğinde: Niyet, Test, Domain Modeli ve Mimari Kararlar

When Code Becomes Disposable...

Kod yeniden üretilebilir hale geldikçe değer niyete, testlere, domain bilgisine ve mimari kararlara kayıyor; bunları yazılı ve doğrulanabilir tutan ekip kazanır.

Yükselen görüş

Kod yeniden üretilebilir bir çıktıya dönüştü; kalıcı varlık artık niyet, davranış testleri, domain modeli ve mimari kararların yazılı hâli.

Spec-driven araçlar ve AGENTS.md standardı bu yönü taşıyor; Thoughtworks ise ağır Spec akışlarının ölçeklenmeyebileceği ve cognitive debt biriktiği uyarısını yapıyor.

Zihinsel model

Kod derleyicinin ürettiği binary gibidir: kimse binary'yi elle düzeltmez, kaynağı düzeltip yeniden derler; kaynak artık niyettir.

Neden

  • Agent bir modülü sıfırdan yazdırmayı yamamaktan ucuz yaptığında, kodun kendisine yatırım yapmanın ekonomik karşılığı kalmaz.
  • Kod ne yapıldığını söyler ama neden yapıldığını söylemez; yazılı olmayan niyet yeniden üretimde sessizce kaybolur.
  • Şema, public API ve event sözleşmesi gibi kararların geri dönüş maliyeti yüksektir; bunlar kod gibi atılamaz.

Kanıt

Thoughtworks Radar, sistemin gerçek davranışı ile ekibin onu anlayışı arasındaki açığı 'codebase cognitive debt' adıyla Caution halkasına aldı.

Thoughtworks Technology Radar, 2026

Geliştiricilerin yüzde 48'i AI çıktısına yalnızca kolayca doğrulayabildiğinde güveniyor.

Stack Overflow Developer Survey, 2026

DORA, AI kodunu doğrulama yükünü 'verification tax' diye adlandırdı ve kazancın kod yazmada değil teslim akışının geri kalanında belirlendiğini gösterdi.

DORA ROI raporu (InfoQ), 2026

Karşı görüş

LLM deterministik olmadığı için aynı Spec'ten her seferinde aynı kod çıkmaz ve ayrıntılı el yazımı Spec'ler de eskir. Bu yüzden Spec tek başına yetmez; davranışı kilitleyen testler olmadan kodu atmak bilgi kaybetmektir.

Kavramlar

Disposable codeKorunmak yerine gerektiğinde silinip baştan ürettirilen, çıktı gibi ele alınan kod.
Spec-anchored developmentSpesifikasyonun görev bitince de yaşatılıp özelliğin evriminde referans kaldığı seviye.
InvariantSistemin her durumunda doğru kalması gereken iş kuralı.
ADRBir mimari kararın bağlamını, seçeneklerini ve gerekçesini kaydeden kısa doküman.
Codebase cognitive debtSistemin gerçek davranışı ile ekibin onu anlayışı arasında büyüyen açık.

Pratikte

  • Her modül için bir sayfalık niyet dokümanı yaz: iş problemi, kurallar ve bilinçli olarak yapılmayanlar.
  • Implementasyona bağlı mock testleri yerine dışarıdan görünen davranışı doğrulayan contract ve property-based testler yaz.
  • CI'da silinen ya da gevşetilen testleri ve şema değişikliklerini işaretle, insan onayı iste.
Önce bunu okuUnderstanding Spec-Driven-Development: Kiro, spec-kit, and Tessl (martinfowler.com)Spec'in koda göre yerini üç seviyede ayırıp sınırlarını dürüstçe tartışıyor.