Geri dönüşü uzun soluklu bir seri ile yapmaya karar verdim. Mevcut AI'ların geldiği noktada saf teknik bir blogun çok da anlamlı olduğunu düşünmüyorum. Bu yüzden bu seride daha çok insan tecrübesine ve araştırmaya yönelik yazılar karalayacağım.

Yazılımdan anlamayanların AI (ya da SI) kullanarak "geliştirdikleri" uygulamaları sizden daha hızlı geliştirdiklerine dikkat ettiniz mi? Çoğu durumda bu uygulamalar daha bitmiş hissi de vermiyor değil.

Bence sebebi basit. AI'ın yaptığı iş, eskiden "script kiddie" dediğimiz kitlenin yaptığına çok benziyor. Hazır şablonları birazcık değiştirip kullanıcıya vermek.

Biraz gerçek kod yazmış birisi ise orada durmayacak. Mimariye, kod standartlarına eğilecek. CI/CD, güvenlik, ölçeklenebilirlik gibi birçok farklı konunun da çözülmesini isteyecek. Dışarıdan bakınca da yavaş görünecek.

Promptun görünmeyen kısmı

Bunların hepsi aslında "örtük bilgi" dediğimiz kavram. Siz farkında olmadan bunları promptlarınıza işliyorsunuz. Bu bilgiye sahip olmayanlar ise sadece şablonu kullanıyorlar.

Kavram Michael Polanyi'ye ait ve kendisi bunu tek cümleyle özetliyor, "Söyleyebildiğimizden fazlasını biliriz."

İşin rahatsız edici tarafı da burada. Söyleyemediğimiz bir şeyi prompta da tam olarak yazamayız. Kıdemli bir geliştiricinin bir pull request'e bakıp "burada bir şey var" demesi tam olarak bu. Çoğu zaman neye baktığını kendisi de anlatamaz.

Bu seri örtük bilginin tamamını kurallara dökebileceğimizi iddia etmeyecek. Dökebileceğimiz kısım daha mütevazı, o bilginin yıllardır elle yakaladığı ve tekrar tekrar karşımıza çıkan hatalar.

Terziden fabrikaya

Ben şu an yaşadığımızı sanayi devrimine benzetiyorum. Zamanında terzilerin, ayakkabı ustalarının yaşadığı durumu yaşıyoruz. AI sayesinde hepimizin küçük fabrikaları var. Eskiden 10 günde yaptığımız işi 1 günde yapıyoruz.

Klasik terzi tekil ürüne odaklanır, onun için her kesim, her dikiş önemlidir. Seri üretimde ise kıstaslar değişir. Tek tek dikişe bakılmaz, hattın hatalı ürün çıkarıp çıkarmadığına bakılır.

Fakat fabrika sahibi olmak, iyi bir fabrikamız olduğu anlamına gelmiyor.

Bunu sayılarda da görüyoruz. 100 binden fazla GitHub geliştiricisine bakan bir NBER çalışması, üç AI aracı nesli boyunca commit sayısında önce %40, sonra %140, en sonunda %180 artış buluyor.

Buraya kadar tablo ışıl ışıl.

Aynı etki proje sayısına geldiğinde %50'ye iniyor. Gerçekten yayınlanan sürüm sayısına geldiğinde ise %30'da kalıyor.

Yani yazmak %180 hızlandı, teslim etmek %30. Aradaki fark buharlaşmıyor, bir yerde birikiyor. GitClear'ın 211 milyon satırlık verisi nerede biriktiğine dair bir ipucu veriyor. Kod tabanları ekleyerek büyüyor, düzenlenen (refactor edilen) satırların payı ise 2020'de %24,1 iken 2024'te %9,5'e inmiş.

Fabrikalar bu sorunu daha önce yaşadı. Seri üretim önce hızı getirdi, kaliteyi ise sonradan ve ayrı bir disiplin olarak öğrendi. Toyota'nın üretim sistemi, yani bugün Lean dediğimiz düşünce, büyük ölçüde bu ikinci derse dair. Hatayı hattın sonunda aramak yerine hattı hatayı kendisi yakalayacak şekilde kurmak. Mary ve Tom Poppendieck bu düşünceyi 2000'lerin başında yazılıma taşımıştı.

Bu seride ne yapacağız

Her yazıda tekrar eden tek bir hatayı ele alacağız. Fabrikalardan ödünç aldığımız bir yöntem var, red rabbit (kırmızı tavşan). Bakalım birisi ne zaman fark edecek diye üretime bilinçli olarak bırakılmış bozuk parça. Biz de AI'a içinde tuzak olan, sıradan görünen istekler vereceğiz ve kaç denemede tuzağa düştüğünü sayacağız. Sonra o hatayı yakalayan kuralı yazıp gerçekten yakaladığını göstereceğiz.

Sıkılıp bırakmazsam serinin sonunda biraz daha farkındalığımız, biraz da küçük araçlarımız olacak.

Görüşmek üzere.

Kaynaklar