54 puan yazan xguru 2025-09-15 | Henüz yorum yok. | WhatsApp'ta paylaş
  • Spec-Driven Development: Geleneksel geliştirmede yardımcı bir araç olan spec (şartname) kavramını çalıştırılabilir spec düzeyine çıkararak, spec’ten doğrudan çalışan bir implementasyon üretmeyi hedefleyen yaklaşım
    • Kod merkezli alışkanlığı dönüştürerek önce ne ve neden sorularını tanımlayıp, daha sonra nasıl kısmını somutlaştıran niyet odaklı geliştirmeyi vurgular
    • Temel fikir, spec aracılığıyla tutarlı çıktılar üretmek ve tekrar eden işleri otomatikleştirerek geliştiricinin ürün problemlerine odaklanmasını sağlamaktır
  • Spec Kit, bu spec’leri çalıştırılabilir çıktılara dönüştürerek implementasyonu otomatikleştirmeye yardımcı olan bir araç setidir
  • Kurulumdan sonra /specify ile ne/neden anlatılır, /plan ile stack/mimari tanımlanır, /tasks ile iş birimleri oluşturulur
  • Amaç, organizasyonların fark yaratmayan ortak kodu yazmaktan çıkıp ürün senaryolarına odaklanmasına yardımcı olmak; spec odaklı yaklaşımla hem kaliteyi hem de hızı artırmayı amaçlayan deneysel bir çerçeve sunmaktır

Temel felsefe: Core philosophy

  • Niyet odaklı geliştirme ile neyi öne çıkaran ve nasıl kısmını daha sonra somutlaştıran spec önce düşünce yapısı
  • Guardrail’ler ve kurumsal ilkeler içeren zengin spec’ler yazılır; tek seferlik kod üretimi yerine çok aşamalı rafinasyon süreci izlenir
  • Gelişmiş yapay zeka modellerinin yorumlama yeteneğine aktif biçimde dayanarak spec’i çalıştırılabilir sonuçlara dönüştürmeyi hedefler

Spec Kit ile spec odaklı süreç

  • Spec Kit, spec’i mühendislik sürecinin merkezine yerleştirir; implementasyon, checklist ve iş kırılımını bunun üzerinden yönlendirir, geliştirici ise çoğunlukla yönlendirici rol üstlenir
    • Yazım işlerinin büyük kısmını coding agent üstlenir
  • Süreç 4 aşamadan oluşur; her aşamada net kontrol noktaları vardır ve mevcut çalışma tamamen doğrulanmadan bir sonraki aşamaya geçilmez
  • Specify aşaması: Yüksek seviyeli açıklama verildiğinde coding agent ayrıntılı bir spec üretir; bu, teknoloji stack’ine değil kullanıcı yolculuğuna, deneyime ve başarı metriklerine odaklanır
    • Kullanıcının kim olduğu, hangi problemin çözüldüğü, etkileşim biçimi ve önemli sonuçlar haritalanır
    • Bu, kullanıcıdan öğrenildikçe evrilen canlı bir artifact niteliği taşır
  • Plan aşaması: İstenen stack, mimari ve kısıtlar verildiğinde coding agent kapsamlı bir teknik plan üretir
    • Şirketin standart teknolojileri, legacy sistem entegrasyonu, mevzuat uyumu ve performans hedefleri buna dahildir
    • Karşılaştırma için birden fazla plan varyasyonu istenebilir; iç dokümanlar sağlanırsa mimari kalıplar doğrudan entegre edilir
  • Tasks aşaması: Spec ve plan temelinde coding agent işleri küçük, gözden geçirilebilir parçalara böler
    • Her görev bağımsız şekilde implementasyon ve test edilebilir; yapay zekanın görevleri doğrulayıp takip edebilmesi için tasarlanır
    • Örneğin “kimlik doğrulama kur” yerine “e-posta formatı doğrulaması yapan kullanıcı kayıt endpoint’i oluştur” gibi somuttur
  • Implement aşaması: Coding agent görevleri tek tek ya da paralel işler, geliştirici ise odaklı değişiklikleri gözden geçirir
    • Spec neyin inşa edileceğini, plan bunun nasıl inşa edileceğini, tasks ise hangi işlerin yapılacağını gösterir
  • Her aşamada geliştirici düşünüp rafine eder; spec’in niyeti yakalayıp yakalamadığını, planın gerçek kısıtları dikkate alıp almadığını, eksik veya edge case olup olmadığını denetleyen bir doğrulayıcı rolü üstlenir

Agentic workflow içinde Spec Kit nasıl kullanılır

  • Spec Kit, GitHub Copilot, Claude Code, Gemini CLI gibi coding agent’larla çalışır; basit bir komut dizisiyle agent’ı yönlendirip artifact’ler üretir
    • Bu yaklaşım, muğlak prompt’ları net niyetlere dönüştürerek güvenilir icra sağlar
  • Proje başlatıldıktan sonra /specify komutuyla yüksek seviyeli prompt verildiğinde coding agent projenin tüm spec’ini üretir ve projenin “ne” ve “neden”ine odaklanır
  • /plan komutuyla yüksek seviyeli teknik yön verildiğinde coding agent mimariye ve kısıtlara saygı duyan ayrıntılı plan oluşturur
  • /tasks komutuyla spec ve plan çalıştırılabilir görev listesine ayrıştırılır; coding agent da buna göre proje gereksinimlerini uygular

Geliştirme aşamaları: Development phases

  • 0-to-1 (greenfield) aşaması: Yüksek seviyeli gereksinimlerden yola çıkarak spec oluşturma → plan yapma → production-grade uygulama üretme akışını destekler
  • Yaratıcı keşif aşaması: Farklı stack/mimari ve UX pattern’lerini paralel implementasyon ile deneme sürecini öne çıkarır
  • Kademeli iyileştirme (brownfield) aşaması: özellik ekleme, legacy modernizasyonu ve süreç uyarlamasını yinelemeli biçimde sürdüren evrimsel geliştirme yaklaşımı

Bu yaklaşımın iyi çalıştığı 3 senaryo

  • Greenfield (zero-to-one): Yeni projeye başlarken hemen kod yazmak yerine önce spec ve plan hazırlanır; böylece yapay zekanın niyet edilen şeyi inşa etmesi sağlanır ve genel kalıplara dayalı sıradan çözümler yerine özelleştirilmiş sonuçlar elde edilir
  • Mevcut sistemde özellik geliştirme (N-to-N+1): Karmaşık bir codebase’e özellik eklerken spec, yeni özelliğin mevcut sistemle etkileşimini netleştirir; plan ise mimari kısıtları kodlayarak sisteme doğal biçimde oturan kod üretilmesini sağlar
    • Bu, sürekli geliştirmeyi daha hızlı ve daha güvenli hale getirir; gelişmiş context engineering teknikleri gerekebilir
  • Legacy modernizasyonu: Legacy sistemi yeniden kurarken özgün niyet kaybolmuşsa, Spec Kit süreci temel iş mantığını modern spec’e taşır ve yeni bir mimari planlayarak yapay zekanın teknik borç olmadan yeniden inşa etmesini sağlar

Önkoşullar

  • Linux/macOS veya Windows üzerinde WSL2 gerekir
  • Yapay zeka agent’ı olarak Claude Code, GitHub Copilot, Gemini CLI, Cursor seçeneklerinden biri seçilir

Henüz yorum yok.

Henüz yorum yok.