Kursun açılışı samimi bir şakayla başlıyor: Andrew Ng, JetBrains iş birliğiyle hazırlanan bu derste spec-driven development yaklaşımının ciddi ürünler için en iyi ajanlı iş akışı olduğunu söylüyor. Eğitmen Paul Everitt, Developer Advocate olarak, ajana uzun bir markdown şartname vermekle işe başladığınızı ve kodun değil, ajanın bilmediği bağlamı yazmanın esas görev olduğunu vurguluyor. Tıpkı bir mimarın ustaya çizim vermesi gibi, siz niyeti tanımlıyorsunuz, ajan uygulamayı üstleniyor.
Burada şartname (MoE gibi teknik bir terim değil, yaşayan sözleşme demek) üç soruya cevap veriyor: neyi inşa edeceğiz, neden ve hangi sınırlar içinde. Doğru düzey, ajanı yetenekli bir pair programmer gibi görmekten geçiyor; hedefler, kitle, kısıtlar ve başarı ölçütleri sizde, değişken adları ve döngü optimizasyonları ajanda kalıyor. Videoya göre 20-30 dakikalık ajan çalışması saatlerce insan emeğine eşdeğer olabiliyor, o yüzden 3-4 dakikalık net talimat çok kârlı.
Videonun iskeletini üç temel fayda oluşturuyor ve kurs boyunca tekrar ediyor. Birincisi, şartnamedeki tek cümle yüzlerce satır kodu tetikler; ikincisi, şartname oturumlar arası bağlam çürümesini durdurur; üçüncüsü, niyet sadakatini artırır. Bu üçlü, dağınık prompt'ların neden borç ürettiğini ve şartnamenin neden kalıcı bir teknik eser sayıldığını açıklıyor.
Şartnameyi Küçük Tut, Etkiyi Büyük Al
Küçük şartname, büyük kaldıraç fikri en somut örneklerle anlatılıyor: metinde "SQLite ve Prisma kullan" yazmak stili ve şemayı yüzlerce dosyaya yayar, aynı cümleyi "MongoDB kullan" diye değiştirmek aynı etkiyi ters yönde yaratır. Bir uygulamanın görünümü için yazdığınız birkaç satır, yüzlerce satır CSS'e dönüşebilir. Bu kaldıraç, bilişsel yükü azaltır; ajan hızlıdır, siz sadece kaldıraç noktasını doğru yazarsınız.
İkinci fayda doğrudan hafıza sorununu hedefler. Ajanlar durumsuz başlar, pencere doldukça hata artar. Şartname oturumlar ve hatta farklı ajanlar arasında taşınan en kaliteli bağlam paketidir; vazgeçilmezleri korur. Video, anayasanın (constitution) bu yüzden ajan-agnostik ve yapılandırılmış tutulduğunu, `agents.md` gibi tek dosyalık çözümlerden daha kalıcı bir sözleşme kurduğunu söylüyor.
Üçüncü fayda niyet sadakati : problem, başarı ölçütü, kısıtlar ve kullanıcı akışları baştan yazılınca ajan planı genişletebilir ama hedeften sapmaz. Aksi halde kararlar ajanın rastgele seçimlerine kalır; hızlısınız ama ürün tuhaf ve bakımı zor olur. Nitekim videoda, şartnamesiz çalışan birden fazla ekibin aynı kod tabanında çelişkili yönlerde hızla inşa yaparak nasıl baş ağrısı ürettiği örnekleniyor.
Vibe Coding Neden Ölçeklenmez
Bu noktada vibe coding ile ayrım netleşiyor. Vibe'da "bana bir buton yap" dersiniz, sonucu beğenmezseniz "düzelt" dersiniz; uzun bir sohbet birikir ama hiçbiri kaydedilmez. Bir buton için işe yarar, büyük projede tek kullanımlık kod ve tırmanan teknik borca dönüşür. Spec-driven ise mühendisliği geri getirir: şartname ile uygulama ayrışır, tıpkı derleyicinin kaynak kodu makine koduna çevirmesi gibi, şartname de istemi kaynak koda çevirir ve insan dilinde olduğu için paydaşlar da okuyabilir.
Videoya göre spec-driven son dönemde verimlilik kaygılarıyla ivmelendi; araçlar, konferans konuşmaları ve niyet yakalama pratikleri bir mühendislik geri dönüşü olarak çoğaldı. Burada asistan bir sohbet botu değil, kod tabanınıza ve araçlarınıza erişen, plan yapan ve kendini yönlendiren bir ajan (agent) olarak tanımlanıyor. Siz kıdemli mimar, ajan ise bilgi ve hız sağlayan yetenekli bir eş programcı; kas ajan, beyin şartname.
Peki iş akışı nasıl görünüyor? İlk adım anayasa yı yazmak: misyon (neden), teknoloji yığını (hangi araçlarla) ve yol haritası (hangi sırayla). Misyon kitleyi ve vizyonu, yığın ekipler arası ortak dili, yol haritası ise küçük adımlara bölünmüş fazları taşır. Video, anayasanın yeşil alan (sıfırdan) projede ajanla sohbet ederek, kahverengi alan (mevcut kod) projede mevcut koddan geriye doğru çıkarılarak üretilebildiğini, her iki halde de sonraki özellik döngülerinin aynı kaldığını vurguluyor.
Kursa özgü örnek Agent Clinic : Pet Clinic'in eğlenceli bir parodisi, ajanların halüsinasyon, bağlam çürümesi ve alt-ajan koordinasyonu gibi dertlerine derman arayan bir klinik. Next.js + React + TypeScript ile tam yığın bir uygulama; randevular, rahatsızlıklar ve "bağlam infüzyonu" gibi tedaviler yönetiliyor. Anayasa, paydaş girdisinin yer aldığı readme üzerinden ajanla diyalogla üretiliyor; ajan ton, yığın ve faz granülaritesi için iyi sorular soruyor.
Anayasa yazımı pratikte bir mülakat gibi işliyor: ajan "misyon tonu nasıl olsun?" diye soruyor, cevap "eğlenceli"; yığın için TypeScript, yol haritası için küçük adımlar seçiliyor ve üç dosya (`mission.md`, `tech-stack.md`, `roadmap.md`) oluşuyor. İlk sürümde hedef kitle eksikse doğrudan dosyayı elle düzeltmek yerine ajana söylemek tercih ediliyor ki belgeler senkron kalsın. SQLite önerisi de ajan tarafından geliyor; basit prototip için mantıklı bulunuyor ve yığına ekleniyor.
Anayasadan Özelliğe: Branch Başına Bir Döngü
Sonra her özellik aynı döngüde ilerliyor: dallanma, planla, uygula, doğrula . Yeni bir dalda, taze ajan bağlamıyla anayasadan beslenen bir plan görüşmesi yapılıyor; görev grupları, gereksinimler ve doğrulama ölçütleri netleşiyor. İlk özellik "hello hano" gibi minimal başlasa bile plan, gereksinim ve doğrulama birlikte yazılıyor; ana sayfa gibi küçük bir güzelleştirme bile şartnameye eklenip commit ediliyor. Ajanın geniş değişiklikleri izlemek için küçük commit'ler şart.
Uygulama aşamasında bağlamı temizlemek için ` /clear ` benzeri bir sıfırlama öneriliyor; ajan görev gruplarını sırasıyla kuruyor, paketleri kuruyor, dosyaları yazıyor ve kendi doğrulamasını raporluyor. İnsan tarafı ise commit görünümünde yüksek seviye inceleme yapıyor: sınıf adları değil, akış ve kapsama bakılıyor. `home.tsx` çok minimal kaldığında düzen bileşeni ve ayrı CSS dosyası isteniyor; hata plandan geldiği için ajan hem kodu hem planı düzeltiyor.
Doğrulama sadece "uygulamayı çalıştır" değil, bilişsel borcu azaltmak için anlamayı da ölçüyor. Testler bu yüzden anayasaya ekleniyor; ajan çerçeve kuruyor, ilk testleri yazıyor, siz ayıklayıcı ile adım adım izliyorsunuz. Bazen ajan kendi kendini denetlesin diye alt ajanlara derin inceleme yaptırılıyor, bulgular ana ajan penceresini kirletmeden raporlanıyor. Ve her özellik sonrası yeniden planlama dalı açılıyor; yol haritası hâlâ doğru mu, duyarlı tasarım gibi yeni ihtiyaçlar anayasaya nasıl yansır, kontrol ediliyor.
Süreci hafifletmek için beceriler (skills) devreye giriyor. Tekrar eden "şu üç dosyayı yaz, dallan, sor, onayla" prompt'u bir beceriye paketleniyor ve ajan beceriyi tek başına çağırabiliyor. Video, becerilerin proje-yerel veya küresel olabildiğini, `agents.md` ve ilerleyen Agent Client Protocol (ACP) gibi standartlarla IDE'den bağımsızlaştığını gösteriyor. JetBrains IDE'de ACP kayıt defteri üzerinden farklı ajanlar (Claude Code, Codex, OpenCode) tak-çalıştır eklenebiliyor.
Araç katmanında Model Context Protocol (MCP) yerine beceri+CLI eğilimi vurgulanıyor. Güncel dokümantasyon için Context7 artık MCP sunucusu yanında bir CLI+beceri olarak sunuluyor; ajan ihtiyaç duyduğunda tetikliyor ve React 9.2 gibi taze bilgiyi bağlama çekiyor. Eklentiler (plugins) ise beceri koleksiyonlarını ekipler ve makineler arasında paylaşmayı kolaylaştırıyor, ancak kod çalıştırdığı için güvenle kurulması gerekiyor.
Kursa göre iki popüler çerçeve de aynı fikri paketliyor: GitHub Spec Kit (`specify constitution → plan → tasks → implement` komutları) ve OpenSpec (`propose → explore → apply → archive`). İlki dal yönetimi ve doğrulama betikleriyle opinionated bir iskelet sunar, ikincisi daha akışkan bir döngüyle hızlı özellik kanonik desenleri sağlar. İkisi de şartnameyi belleğe, şartnameyi de sürüm kontrolüne bağlar; hangi ajanla yazdığınız zamanla önemsizleşir.
Son bölüm kahverengi alan projelerde şartnameyi tanıtmayı gösteriyor: Agent Clinic'in MVP'sinden şikâyetçi olmadan, `todo.md` gibi mevcut eserlerden anayasa geriye doğru çıkarılıyor ve aynen yeşil alan gibi devam ediliyor. Araştırma fikirleri için ayrı bir birikim dosyası (backlog) tutuluyor, ayrı bir dalda ajanla tartışılıyor, sonra yol haritasına bağlanıyor. Mesaj net: şartname bugün yazdığınız hafıza, yarınki kodun pusulası; en iyi kod, en iyi şartnameyle başlar.
| Başlık | Özet |
|---|---|
| Üç fayda | Küçük şartname büyük kaldıraç, çürüme yok, sadakat artar |
| Anayasa | Misyon + yığın + yol haritası; yeşil ve kahverengi alanda aynı |
| Döngü | Dalda planla-uygula-doğrula; arada yeniden planla ve becerilerle otomatikleştir |
| Boyut | Vibe Coding | Spec-Driven |
|---|---|---|
| Artefakt | Uzun sohbet, kayıt yok | Markdown şartname, sürümlü |
| Ölçek | Buton için iyi, projede borç | Dalda izole, birikimsiz |
| Hafıza | Pencere dolar, bağlam kayar | Anayasa oturumları sabitler |
| Rol | İnsan düzeltici | İnsan mimar, ajan uygulayıcı |
| Doğrulama | Göz kararı | Plan + gereksinim + skor kartı |
Videodaki anahtar anlar
- Üç fayda tanımı
Küçük şartname büyük değişim, bağlam çürümesi yok, niyet sadakati artar.
- Vibe vs mühendislik
Vibe uzun sohbet ve kayıp; spec derleyici gibi niyeti koda çevirir.
- Agent Clinic tanıtımı
Next.js ve React ile halüsinasyon için bağlam infüzyonu.
- Beceriler ve ACP
Beceri paketle, MCP yerine CLI+beceri, ACP ile ajan değiştir.
AI yorumu
"Bence bu video, ajanların hızını övmek yerine hızın bedelini gösteriyor; iyi bir şartname olmadan üretilen kodun neden hızla borç biriktirdiğini ve şartnamenin aslında ekip içindeki hafıza olduğunu çok net anlatıyor."
AI değerlendirmesi
Karşıt görüşü en güçlü haliyle kurarsam, vibe coding savunucuları haklı bir noktaya işaret ediyor: kısa denemeler, öğrenme eğrisini düzleştirir ve fikirden demoya geçişi saniyelere indirir. Kaliforniya'da bir tasarımcının bir günde çıkardığı landing page veya bir öğrencinin tek akşamda çalışan bir prototip kurması, şartname yazmanın getirdiği 15 dakikalık düşünme maliyetini gereksiz gösterir. Bu tez, özellikle keşif fazında ve tek kişilik denemelerde doğrudur; sorun keşiften ürüne geçişte başlar.
Sınırlar tarafında video, şartnamenin yazılmasının zor iş olduğunu açıkça söylüyor ama bu zorluğun ölçülmediğini eklemiyor. Yol haritasını granüler tutmak ile aşırı detaylandırmak arasındaki denge kişiye ve ajana göre değişir; fazla kısıt, ajanın yararlı inisiyatifini boğabilir. Ayrıca anayasanın yaşayan bir belge olması, sürüm stratejisi olmadan ekipte hangi şartnamenin hangi kodu ürettiği konusunda kafa karışıklığı yaratabilir — video da bunu "gelişen bir tartışma" diye işaretliyor.
Çıkar açısından kurs, JetBrains ve DeepLearning.AI iş birliğiyle sunuluyor; IDE (WebStorm) ve ajan (Claude Code türevi) seçimi pratik bir tercih ama tarafsız değil. GitHub Spec Kit ve OpenSpec gibi alternatifler kısaca anılsa da, ağırlık hâlâ tek bir ekosistemin araçlarında. Bağımsız doğrulama için ekiplerin kendi ajanlarıyla (Codex, Cursor, yerel modeller) aynı anayasayı deneyip sonuç farkını ölçmesi gerekir.
Pratik çıkarımım şu: eğer tek başınıza 48 saatlik bir hackathon yapıyorsanız vibe ile başlayın, ama dal başına şartname, insan-onaylı plan ve alt ajanla ikinci bakış döngüsünü kurmadan üretime geçmeyin. İki kişi üstü ekipler, kahverengi alan projeler ve uyum-güvenlik kısıtlı ortamlar için spec-driven varsayılan olmalı; haftalık yeniden planlama toplantısını da şartname revizyonu olarak takvime yazmak borç birikimini durdurmanın en ucuz yolu.
Kaynaklar
7 bağlantı; bunları kullanan başka yayımlanmış haber yok. Aynı bağlantıyı paylaşan haberler birbirini doğrulamış sayılmaz; kaynağın kökeni bağlantı sayısından çıkarılmaz.
- @youtube.com YouTube — DeepLearningAI: Full Course Spec-Driven Development
- @deeplearning.ai https://www.deeplearning.ai/courses/spec-driven-development-with-coding-agents
- @github.com https://github.com/github/spec-kit
- @openspec.dev https://openspec.dev/docs/getting-started
- @microsoft.com https://developer.microsoft.com/blog/spec-driven-development-spec-kit
- @arxiv.org https://arxiv.org/abs/2602.00180
- @medium.com https://jeromevdl.medium.com/spec-driven-development-back-to-the-future-d71fde8d
spec-driven · jetbrains · deeplearning.ai · vibe-coding · ai-agent · claude-code · nodesdaily