14 puan yazan davespark 2025-10-27 | 1 yorum | WhatsApp'ta paylaş

Bu yazı, Spec-Driven Development'ın (şartname odaklı geliştirme), yapay zeka ajanlarıyla yürütülen kodlama çalışmalarında umut verici olsa da, küresel ürün bağlamında doğal dil şartnamelerinin belirsizliği nedeniyle büyük ölçekte genişletildiğinde başarısız olduğunu savunuyor. Yazar, bunu çözmek için kod ile konuşmalı yapay zekayı birleştiren, "yaşayan şartnameler (living specifications)" adlı hiyerarşik ve evrimsel bir sistem öneriyor; bu sistem, ürün kararları için bir geri bildirim döngüsü oluşturarak uyumsuzlukları azaltıyor ve etkili, büyük ölçekli yapay zeka destekli geliştirmeyi mümkün kılıyor.

Spec-Driven Development'ın büyük ölçekte başarısız olmasının başlıca nedenleri

Geleneksel Spec-Driven Development, küresel ürün şartnamelerinde şu nedenlerle sorun çıkarır:

  • Doğal dil şartnamelerinin belirsizliği: Büyük ölçekli şartnameler doğal dille yazılır ve bu yüzden kesin değildir, belirsizlik taşır. Yapay zeka, şartnameye uygun gibi görünen kodu tutarlı biçimde üretebilir, ancak bu kod geliştiricinin niyetinden farklı olabilir. Örneğin tüm web sitesi için bir ürün şartnamesi yazılır ve yapay zeka ajanı bunu 2 günde inşa ederse, ortaya çıkan sonuç şartnameyle uyumlu olsa da niyetle örtüşmeyebilir. Bunu çözmek için belirsizlikleri giderecek ayrıntılı bölümler sonsuza kadar eklenirse belge aşırı uzun ve hantal hale gelir, şartname yazmanın avantajı kaybolur ve sonunda koddan pek farkı olmayan biçimselleştirilmiş bir dile dönüşür.

  • Paylaşılan bağlam ve dünya bilgisinin eksikliği: Yapay zeka, açık veriler sayesinde geniş bir bilgi birikimine sahip olsa da, şirkete özgü pratikleri, kod tabanı kurallarını ve içerideki "iş yapma biçimini" anlamaz. İnsanlar ise bunları deneme-yanılma, PR incelemeleri, toplantılar ve gayriresmî sohbetler yoluyla biriktirir. Tek bir bağlam belgesi bunları yakalayamaz.

  • Netleştirme sürecindeki verimsizlik: İnsanlar, paylaşılan bağlam sayesinde yalnızca ilgili belirsizlikleri verimli şekilde çözer; örneğin kütüphane seçimi gibi açık olan şeyleri sormaz. Ancak yapay zeka, bağlamın inceliklerini yeterince kavrayamadığı için gereksiz sorular sorabilir ya da netleştirme becerisi hâlâ erken aşamadadır. Bu da yapay zekayı sürekli yönlendirme gerektiren "aşırı hırslı bir stajyer" gibi yapar.

Bu sorunlar nedeniyle, ek mekanizmalar olmadan küresel ölçekte şartname odaklı geliştirme gerçekçi değildir ve insan iş birliğinin akıcılığını yakalayamaz.

Somut örnekler
  • Aşırı şartname odaklı senaryo: Geliştirici tüm web sitesinin şartnamesini yazar ve yapay zeka 2 gün içinde tamamlanmış ürünü üretir; ancak belirsizlikler nedeniyle sonuç niyetten sapar.
  • İnsan öğrenme süreci: Geliştirici, ilk kod değişiklikleri, PR incelemeleri, toplantılar ve koridor sohbetleriyle şirket normlarını öğrenirken, yapay zeka bu tür örtük bilgiyi biriktiremez.
  • Yaşlanmış kod tabanı: Geleneksel iş akışında geliştiriciler şartname olmadan kodu okuyup değiştirir; sonuçta ortaya tutarsız bir "patchwork quilt" çıkar ve kaybolmuş ürün kararlarının üzerinden "trammeling over" geçilir.

Yazar, önceki bir yazıya (roaming RAG ile ilgili) atıf yaparak yapay zekanın hiyerarşik bağlantı yapılarını gezinmede yetkin olduğunu belirtiyor. Resmî bir vaka çalışması yok; anlatım daha çok varsayımsal ve açıklayıcı örneklere dayanıyor.

Önerilen çözüm

Yazı, belirsizlik yönetimi, bağlam inşası ve kod entegrasyonuna odaklanan birbirine bağlı bir çözüm öneriyor:

Konuşmalı netleştirme ile açıklığın etkinleştirilmesi
  • Yapay zeka ile geliştirici arasında ileri-geri etkileşimler sağlayan bir yapı (örneğin sohbet deneyimi) kurularak şartnamedeki belirsizliklerin tespit edilmesi ve netleştirilmesi öneriliyor. Küçük görevlerde yapay zeka, şartnamenin birden çok uygulama sürümünü üretip belirsizliği görünür kılar; ardından geliştirici bunları karşılaştırıp tartışır.
Hiyerarşik şartnamelerle ajanın dünya görüşünün kurulması
  • Şirket ve kod tabanı normlarını anlamak için hiyerarşik yapıda küresel şartnameler kullanılmalı. Tek bir dev belge yerine, ana şartname alt şartname belgelerine bağlanmalı:
    • Dizin bazlı toplulaştırılmış sürümler gibi, kod yapısına sıkı sıkıya bağlı dosya bazlı şartnameler.
    • Serbest biçimli wiki tarzı yapı (ancak aşırı karmaşıklığa dikkat edilmeli).
  • Yapay zekanın bağlantıları takip etme becerisinden yararlanılmalı (önceki yazıya referansla).
Nihai şartname olarak kodun rolü
  • Mevcut kod, düşük seviyeli varsayımların açık olduğu bir "yaprak seviye" şartname olarak ele alınmalı. Ana şartnameden her şeyi baştan üretmek yerine, mevcut kod tabanını temel alan değişiklikler hedeflenmeli. Doğal dilin her seferinde aynı çıktıyı garanti edemeyeceği kabul edilmeli ve imkânsız hassasiyet taleplerinden kaçınılmalı.
Yaşayan şartnameler: kullanım ve evrim
  • Şartnameler, kod tabanıyla birlikte evrilen "yaşayan belgeler" haline getirilmeli:
    • Yapay zeka, küresel şartnameyi gezerek uygulamayı onunla hizalar ve ürün kararlarını insan iş akışından daha iyi korur.
    • Geliştirici, yapay zekayla konuşarak ilgili şartname bilgisini çıkarır; her şeyi baştan sona okuması gerekmez. Kapsam belirleme sırasında uyumsuzluklar işaretlenir.
    • Kod değiştiğinde şartname güncellemesi tetiklenir: değişiklik mevcut şartnameyle karşılaştırılır, düzenlenir ve PR içine şartname değişiklikleri de eklenir.
  • Faydalar: Mühendislerin değişikliklerin etkisini anlaması kolaylaşır, ürün yöneticilerinin katılımı artar (okunması kolay şartnameleri düzenleyebilirler) ve yöneticiler ürün evrimi hakkında sorgular yapabilir. Geleneksel belgelerde görülen güncel kalmama sorunu, yapay zeka otomasyonu ile azaltılır.
Sonuç ve öneri

Şartname odaklı geliştirmenin geleceği, doğal dil şartnamelerini kusursuzlaştırmakta değil; belirsizliği konuşma, hiyerarşik bağlam ve kod temeli üzerinden yöneten sistemler kurmakta yatıyor. Gerçek atılım, yapay zekanın sürdürdüğü yaşayan şartnamelerdir; bunlar ürün kararlarını koruyan, bağlamı muhafaza eden ve şartname ile uygulama arasındaki boşluğu ortadan kaldıran bir geri bildirim döngüsü oluşturur. Öneri, kod ile konuşmalı yapay zekayı birleştiren hiyerarşik ve evrimsel şartnameleri benimseyerek, geleneksel insan geliştirmeyi aşan ölçeklenebilir yapay zeka iş akışlarını hayata geçirmektir.

1 yorum

 
raykim 2025-10-28

GPT ile çevrilip ortaya atılmış bir gönderi hissi çok güçlü.