1970’lerin sonlarında Meir Lehman, büyük ölçekli yazılım sistemlerinin zaman içindeki davranışlarını inceleyerek bir dizi kanun ortaya koydu. Bu kanunlar teorik değil, doğrudan üretim sistemlerinden elde edilen gözlemlere dayanıyordu.
Bugün ise farklı bir kırılma noktasındayız. Yazılım artık sadece insanlar tarafından yazılmıyor, giderek artan oranda AI ile üretiliyor.

Bu durum şu soruyu gündeme getiriyor:
AI ile üretilmiş yazılım, Lehman’ın kanunlarından muaf mı, yoksa bu kanunlar daha sert mi uygulanıyor?
Kısa cevap nettir. Lehman’ın kanunları geçerliliğini korur. Hatta AI bağlamında daha agresif şekilde kendini gösterir.
Lehman Kanunlarına Kısa Bir Bakış
Tüm kanunlar önemli olmakla birlikte, AI ile üretilmiş sistemler açısından özellikle şu başlıklar kritik hale gelir:
Kanun-1: Sürekli Değişim
Bir sistem, içinde bulunduğu ortam değiştikçe adapte olmak zorundadır. Aksi takdirde zamanla değerini kaybeder.
Kanun-2: Artan Karmaşıklık
Bir sistem evrildikçe karmaşıklığı artar. Bu artışı dengelemek için bilinçli sadeleştirme yapılmazsa sistem kontrol edilemez hale gelir.
Kanun-3: Sürekli Büyüme
Kullanıcı memnuniyetini korumak için sistemin fonksiyonelliği sürekli artmak zorundadır.
Kanun-4: Azalan Kalite
Aktif bakım yapılmazsa sistemin kalitesi zamanla düşer.
Kanun-5: Geri Besleme Sistemi
Sistem evrimi, kullanıcılar, operasyonel veriler ve iş ihtiyaçları gibi geri besleme mekanizmaları ile yönlendirilir.
Bu kanunlar insan tarafından geliştirilen sistemler için tanımlanmıştır. Ancak asıl soru şudur: AI ile üretilen sistemlerde ne değişir?
Yanılsama: AI Kod Yazıyor, O Halde Çürüme Yok
Bugün sahada sık karşılaşılan bir varsayım var:
AI kodu her zaman yeniden üretebilir, bu yüzden uzun vadeli bakım artık kritik değildir.
Bu varsayım hatalıdır.
AI şunları ortadan kaldırmaz:
- Değişen iş ihtiyaçları
- Evrilen API ve bağımlılıklar
- Mimari kararların etkileri
- Operasyonel kısıtlar
AI sadece üretim mekanizmasını değiştirir. Sistem davranışını değil.
Kanun-1: Sürekli Değişim ve AI Sistemler
AI ile üretilmiş sistemler genellikle şu girdilere dayanır:
- Prompt
- Context
- Model
Ancak gerçek dünya sabit değildir:
- API versiyonları değişir
- Regülasyonlar güncellenir
- İş kuralları evrilir
- Altyapı kısıtları farklılaşır
Kod yeniden üretilebilir. Ancak doğru bağlam olmadan yapılan üretim, evrim değil sapma üretir.
AI değişimi ortadan kaldırmaz. Yönetilmeyen değişimi hızlandırır.
Kanun-2: Artan Karmaşıklık Artık Gizli
Klasik sistemlerde karmaşıklık şuralarda birikir:
- Kod
- Mimari
- Bağımlılıklar
AI ile üretilmiş sistemlerde yeni bir katman vardır:
- Prompt yapıları
- Context bağımlılıkları
- Model davranış varyasyonu
Artık iki sistem yönetiyorsunuz:
- Runtime sistem
- Generation sistemi
Bu ayrım yönetilmezse:
- Pattern tutarsızlığı
- Logic duplikasyonu
- Mimari drift
kaçınılmazdır.
Karmaşıklık azalmaz. Sadece görünmez hale gelir.
Kanun-3: Sürekli Büyüme ve Feature Enflasyonu
AI ile feature geliştirme maliyeti dramatik şekilde düşer.
Bu, kontrolsüz büyümeyi tetikler.
AI şunları yapar:
- Lokal optimize eder
- Global mimariyi ihmal eder
- Yeniden üretir, soyutlamaz
Sonuç:
- Hızlı büyüme
- Hızlı entropy artışı
Bu noktada büyüme artık değer değil, risk üretir.
Kanun-4: Azalan Kalite Artık Daha Sinsi
Klasik kalite düşüşü görünürdür:
- Code smell
- Performans problemleri
- Teknik borç
AI ile üretilmiş sistemlerde kalite düşüşü daha sinsi ilerler:
- Semantik drift
- Prompt hassasiyeti
- Sessiz regresyonlar
Üretilen kod:
- Derlenir
- Okunur
- Temiz görünür
Ama sistemle uyumsuz olabilir.
Bu da kalite problemlerini tespit etmeyi zorlaştırır.
Kanun-5: Geri Besleme Olmadan Evrim Yok
Lehman’ın en kritik noktası geri beslemedir.
AI süreçlerinde çoğunlukla eksik olan da budur:
- Runtime feedback yok
- Prompt adaptasyonu yok
- Otomatik doğrulama yok
Bu durumda sistem doğruyu değil, makul olanı üretir.
Bu evrim değildir. Drift’tir.
Yeni Bir Kavram: Regenerative Rot
Klasik yazılım çürümesi teknik borç birikimidir.
AI ile yeni bir pattern ortaya çıkar:
Regenerative Rot
Sistem sürekli yeniden üretilir, ama her iterasyonda doğruluktan uzaklaşır.
Sebep:
- Context kaybı
- Non-determinism
- Tarihsel kararların kaybı
- Invariant enforcement eksikliği
Bu ihmal değil. Sistematik bir bozulmadır.
Mühendislik Perspektifi
AI, mühendisliği ortadan kaldırmaz. Daha kritik hale getirir.
Mimari
Sınırlar ve kontratlar açık tanımlanmalıdır.
AI bu sınırları kendiliğinden korumaz.
Sistem Tasarımı
Prompt yeterli değildir.
Gerekli olan:
- Generation pipeline
- Validation layer
- Test automation
Observability
Şunlar ölçülmelidir:
- Kod değişimi
- Davranış değişimi
- Performans
Versioning
Artık sadece kod değil:
- Prompt
- Model
- Context
versiyonlanmalıdır.
İnsan Rolü
Geliştirici rolü değişir:
- Kod yazan değil
- Sistem yöneten
- Doğrulayan
Sonuç
Lehman’ın kanunları insanlara değil, kompleks sistemlere aittir.
AI bu kanunları bozmaz.
Sadece ihlal edilme hızını artırır.
AI ile üretilmiş yazılım:
- Daha hızlı geliştirilir
- Daha hızlı değişir
- Daha hızlı bozulur
Kontrol edilmezse.
Problem artık kod yazmak değildir.
Problem, kendini üreten sistemleri kontrol etmektir.
Bu yazıyı beğendiyseniz Twitter’da takipçilerinizle paylaşabilir veya beni Twitter’da takip edebilirsiniz.
Referanslar
- Lehman, M. M. (1980). “Programs, Life Cycles, and Laws of Software Evolution”. Proceedings of the IEEE.
- Lehman, M. M., & Belady, L. A. (1985). “Program Evolution: Processes of Software Change”. Academic Press.
- Lehman, M. M. (1996). “Laws of Software Evolution Revisited”. European Workshop on Software Process Technology.
Not: Bu yazıda kullanılan “Kanun-1” vb. numaralandırma, Lehman’ın orijinal çalışmalarındaki sınıflandırmanın sadeleştirilmiş ve AI bağlamına uyarlanmış halidir.