Kent Beck ve AI Çağında Yazılım Geliştirme

9 Haziran 2025 · netologist · 7 dakika, 1448 kelime

50 Yıllık Kariyerin En Eğlenceli Dönemi

Test-Driven Development’ın yaratıcısı ve Agile Manifesto’nun yazarlarından Kent Beck ile AI araçları, TDD’nin evrimi ve yazılım geliştirmenin geleceği üzerine kapsamlı bir röportaj.

Giriş: Efsane ile Tanışma

Kent Beck’i tanıtmaya gerek yok aslında. Extreme Programming’in yaratıcısı, Agile Manifesto’nun yazarlarından biri, Test-Driven Development’ın öncüsü… 52 yıllık programlama kariyerinin ardından kendisini hiç bu kadar enerjik görmemiştim.

Son röportajımızda AI araçlarıyla günde 6-10 saat kod yazıyor ve bundan keyif aldığını öğrenince şaşırdım. Peki neden? Cevap, yazılım geliştirmenin temellerini sarsan bir dönüşümde gizli.

AI Araçları: “Genie” Metaforu

Neden Genie?

Kent Beck, AI kodlama araçlarını “genie” (cin) olarak tanımlıyor. Bu metafor mükemmel çünkü:

Genie’nin Davranış Örnekleri

Pozitif Sürprizler:

Beck: "B+ tree için stress tester yaz"
Genie: Beck'in düşünmediği bir sürü faydalı özellik ekliyor
Sonuç: "Cool, bu da vardı!"

Negatif Sürprizler: Beck bir small talk parser üzerinde çalışırken:

Beck: "Bu string input için bu syntax tree output olmalı"
Genie: "Oh problem görüyorum, testi değiştireyim"
Beck: "HAYIR! Test doğru, kodu düzelt!"

En Sinir Bozucu Örnek: Test case’leri verdiğinde genie basit bir lookup table yaptı. Beck sinirlenip “asla böyle yapma” dedi, genie özür diledi. Bir saat sonra lookup table geri gelmişti!

Addictive Loop: Slot Machine Etkisi

AI araçlarıyla çalışmak tam bir dopamine rush yaratıyor:

Beck’in addiction belirtileri:

Leverage Devrimi: %90-%10 Kuralı

Beck’in 2 yıl önce attığı tweet bugünün gerçekliğini özetliyor:

“Yeteneklerimin %90’ı sıfır dolara düştü, %10’u 1000x arttı”

Değer Kaybeden Yetenekler (90%)

Değer Kazanan Yetenekler (10%)

Büyük Düşünme İmkanı

Eskiden Engeller:

Beck: "Harika bir fikrim var!"
Sonra: "Ama npm package management'la uğraşmam lazım"
Sonra: "Circular dependency'ler olacak"
Sonra: "Birisi stupid tool yazacak, onunla uğraşacağım"
Sonuç: "Boş ver, yapmayayım"

Şimdi:

Beck: "Circular dependency var"
Genie: "Hepsini birleştirdim"
Beck: "Wow! Şimdi neleri ayırabiliriz?"
Genie: "Şunu, bunu, bunu"
Beck: "Mükemmel!"

Bu değişim, Beck’i 20 yıldır hayal ettiği projeler üzerinde çalışmaya teşvik etti. Şu anda “server Smalltalk” üzerinde çalışıyor - persistent, transactional, parallel processing destekleyen, gigabyte’larca veriyle çalışabilen ambitious bir proje.

Dil Öğrenme Devrimi

Emotional Attachment’ın Sonu

Eskiden programcılar tribal kimlikler geliştirirdi: “Java guy”, “Clojure guy”, “Scala guy”. Beck artık bu us-them ayrımından sıkılmış:

“We’re programmers, we write programs, we should be kind to each other”

Osmosis Learning

Son bir ayda denediği diller: Swift, Go, Rust, Haskell, C++, JavaScript. (C++ fazla sürmemiş 😄)

Genie sayesinde dil detaylarını öğrenme ihtiyacı yok. Osmosis ile öğreniyor ve her dilde proje başlatabiliyor.

TDD ve AI: Kritik İlişki

Paradoks şu: TDD’nin yaratıcısı olarak Beck, AI araçlarıyla çalışırken TDD’nin daha da kritik hale geldiğini keşfetti.

Neden TDD Daha Önemli?

  1. Genie kontrolü - AI’ın öngörülemez değişikliklerini yakalamak
  2. Communication tool - Testler üzerinden AI’ya doğru sonuçları kommunike etmek
  3. Safety net - AI’ın accidental breakage’ını engellemek

Beck’in 300ms’de çalışan test suite’i var ve sürekli çalıştırıyor. “Immutable annotation” istiyor - AI’ın asla değiştiremeyeceği testler için.

Konkret Örnek

Small talk parser çalışırken:

Beck: "Bu input için bu output olmalı"
Genie: "Problem var, testi değiştireyim"
Beck: "HAYIR! Eğer bunu değiştirirsen darkness'ta uyanacaksın!"

TDD’nin Doğuş Hikayesi: Çocukluktan Epifaniye

Çocukluk Kökleri

Beck 8-10 yaşlarındayken babasının getirdiği programlama kitaplarında “tape-to-tape” sistemleri okumuş. Sistemin çalışma prensibi:

  1. Gerçek input tape’i al
  2. Expected output’u manuel yaz
  3. Program çalıştır
  4. Actual vs expected’ı karşılaştır

Epifani Anı

Yıllar sonra, SUnit testing framework’ünü yazdıktan sonra:

“Peki bu testing framework’ümü var, genelde var olan kod için test yazıyorum. Tape-to-tape fikrini hatırlıyorum. Ya expected values’ları kodu yazmadan önce yazsam?”

İlk denemesi stack üzerinde oldu. Sonuç:

“Programlama hayatımın emotional experience’ını transform etti. Anxiety tamamen yok oldu.”

Red-Green-Refactor’ın Gerçek Anlamı

Beck, TDD’yi sadece “red-green-red-green” olarak görmek yanlış diyor. Gerçek döngü:

  1. Test yazarken - API design kararları
  2. Red’dan Green’e - tension ve release hissi
  3. Green’da nefes alma - anxiety yok, büyük düşünceler için alan
  4. Refactor - design improvement

“Müzisyen değilim ama red-green test’in tension-release hissini biliyorum”

Extreme Programming: Accidental Innovation

Chrysler Projesi

Beck’in XP yaratma hikayesi:

“Extreme” İsminin Hikayesi

Beck stratejik olarak bu ismi seçti:

Metafor da işe yarıyordu: Extreme athletes ya en iyi hazırlanmış olur ya da ölürler.

Pair Programming’in Kanıtı

İlk XP team’inden 6 ay sonra gelen data:

Agile Manifesto: Yanlış Kelime Seçimi

Utah’ta Doğuş

2001’de Utah’taki kar kayağı resort’unda yazılan manifesto, yıllarca süren workshop serisinin sonucuydu. Beck’in katkısı minimal:

Neden “Agile” Yanlıştı?

“Çok attractive. Kimse agile olmak istemiyor değil. Herkes agile olduğunu iddia edecek.”

Beck’in önerisi “conversational” kelimesiydi - monolog değil diyalog yaklaşımı.

Dilution Sorunu

Beck’in öngörüsü doğru çıktı. JP Morgan örneği:

Facebook Deneyi: TDD’den Vazgeçme

2011 Facebook: Perfect Storm

Beck Facebook’a katıldığında TDD class’ı açtı. Sonuç:

Monkey See, Monkey Do

Beck radikal karar aldı:

“Tüm bildiğimi silip monkey see, monkey do yapacağım”

Facebook’un Benzersiz Ekosistemi

Güçlü Feedback Loop’lar:

  1. Dev servers - saniyeler içinde görsel feedback
  2. Code review - peer validation
  3. Internal deployment - 2000 çalışan canlı test kullanıcısı
  4. Feature flags - runtime kontrol
  5. Incremental rollout - günlük/haftalık deployment
  6. Observability - comprehensive monitoring

Personal Accountability:

Concrete Örnekler

Beck’in İlk Feature’ı:

Task: Relationship status'a "civil union" ve "domestic partnership" ekle
Method: TDD kullandı
Result: Zaman kaybı, notification sistemi çöktü (implicit coupling)
Fix: Başkası error rate artışını görüp hotfix yaptı
Reaction: "Bu tür şeyler olur" - normal karşılandı

Quadrillion Scale:

Sosyal Paradoks

En ilginç bulgu:

“Sosyal etkileşim sitesi, sosyal becerileri olmayan insanlar tarafından yapılıyordu”

Gizli sosyal wizard yoktu. Sadece:

2017’ye Kadar Değişim

2011: 2,000 çalışan

2017: 15,000 çalışan

Concrete Conflict:

AI ve TDD: Yeni Sentez

Context Matters

Beck’in temel mesajı: Dogma yok, context var.

Facebook’ta TDD gereksizdi çünkü:

AI ile TDD kritik çünkü:

Hibrit Gelecek

İdeal yaklaşım:

Geleceğe Bakış: Experimentation Revolution

Yeni Gerçekler

“Nobody knows what process will work best. Nobody knows anything.”

Economic Shift:

Organizational Changes:

Try All The Things

Beck’in tavsiyesi basit:

“People should be experimenting. Try all the things.”

Çünkü landscape tamamen değişti ve kimse ne işe yarayacağını bilmiyor.

Sonuç: Pragmatic Optimism

Kent Beck’in AI görüşü dengeli ve pragmatik:

Güçlü Yönler:

Limitler:

Meta Learning: 52 yıllık kariyerin ardından Beck hala öğrenmeye devam ediyor. AI araçları ona yeni possibilities gösterdi ve “I love that moment of discovery” hissini yeniden yaşatıyor.

Belki de en önemli ders şu: Değişime direnç göstermek yerine, adaptive thinking ile yeni fırsatları keşfetmek. Beck bunu TDD’den Facebook’a, Facebook’tan AI’ya kadar her dönemde yapmış.


Kent Beck’in complete interview’ını dinlemek için Pragmatic Engineer Podcast‘in youtube kanalını ziyaret edin. Daha fazla yazılım geliştirme insight’ı için newsletter’ını takip etmeyi unutmayın.