"Aklımda bir uygulama var." Bu cümle her hafta bir masaya düşüyor.
Sonrası da hep aynı. Araca bir paragraf yazılıyor, ekran geliyor, ikinci istek gidiyor, ekran bozuluyor. Üçüncü saatte kimse ne istediğini hatırlamıyor.
Kod artık engel değil. Engel, fikrin hâlâ fikir olması. Bu yazı fikri ilk sürüme indirmenin yolunu anlatıyor.
Araç ne istediğini bilmiyor
Fikir zihninde bütün hâlde duruyor. Kayıt ekranı, mesajlar, bildirimler, ödeme, yönetim paneli. Üretim aracı bunların hepsini birkaç dakikada gösterebiliyor.
Ama her bölüm ayrı bir karar taşıyor. Hangi kullanıcı neyi görüyor, hangi bilgi nerede saklanıyor, hata olduğunda ekranda ne yazıyor?
Hepsini aynı anda istemek, bilmediğin soruları çoğaltıyor. Model boşlukları kendi doldurmak zorunda kalıyor ve doldurduğu yer senin istediğin yer olmuyor.
Asıl mesele şu: araç senin ne istediğini bilmiyor, yazdığını biliyor. "Bir ders takip uygulaması" cümlesinde yüzlerce karar gizli. Yazmadığın her kararı model kendi veriyor ve o kararları geri almak, baştan yazmaktan uzun sürüyor.
Tek kullanıcı seç
Seramik atölyeleri için bir yoklama listesi yaptığını düşün. İlk kullanıcı eğitmen olsun.
Öğrenci topluluğu, video dersi, sertifika üretimi ve e-ticaret ilk sürümde yok. Kapsam daraldıkça sınadığın soru netleşiyor: eğitmen bu ekranla dersini yönetebiliyor mu?
Bir kullanıcı seçmenin ikinci faydası şu: kimin için yaptığını bilmeyen ürün, her istekte yön değiştiriyor. Bugün eğitmene, yarın öğrenciye, ertesi gün stüdyo sahibine hizmet etmeye çalışıyor ve üçüne de yaramıyor.
Seçtiğin kullanıcı ilk sürümün sahibi. İkinci kullanıcı, birincisi çalıştıktan sonra geliyor.
Üç hareket yeter
Seçtiğin kullanıcının bitireceği işi harekete böl. Eğitmen ders açıyor, katılımcı ekliyor, yoklama işaretliyor.
Üçü çalıştığında ürün bir işi baştan sona bitiriyor. Dördüncüyü eklemeden önce üçünün de ayakta durduğunu gör.
Bu sıra kulağa yavaş geliyor, hızlandırıyor. Her hareket ayrı test edildiğinde bozulan yeri aramakla geçen saat de ortadan kalkıyor.
Üç hareketi seçerken tek ölçüt var: bu üçü olmadan kullanıcı işini bitiremiyor mu? Cevap hayırsa o hareket ilk sürümün değil. Rapor ekranı, filtre, tema seçimi ve dışa aktarma neredeyse hiçbir zaman bu üçün içinde olmuyor.
"Bitti" yazıya dökülür
Her hareketin bittiğini nasıl anlayacağını bir cümleyle yaz. Aynı kişi aynı derse iki kez eklenmesin. Ders adı boşsa işlem dursun ve açık bir uyarı versin. Kaydedilen yoklama sayfa yenilenince yerinde kalsın.
Bunlar teknik terim istemiyor. Ama ürünü denetlemeye yetiyor, çünkü ajan da sen de aynı cümleye bakıp "geçti mi" diyebiliyorsun.
Kabul koşulu olmayan istek, "çalışıyor mu" sorusunu zevk meselesine çeviriyor. O noktadan sonra ilerleme ölçülmüyor.
Kabul koşulunu yazmanın bir yan faydası daha var. Ajana sonraki gün yeni bir istek verdiğinde eski koşullar hâlâ elinde duruyor ve neyi bozmaması gerektiğini biliyor. Yazılı koşul, iki oturum arasındaki hafıza oluyor.
Kapsam dışı listesi ürünü koruyor
Tarifin içine yapılmayacakları da yaz. İlk sürümde ödeme alınmayacak, mesaj gönderilmeyecek, gerçek öğrenci verisi kullanılmayacak.
Modelin yardımcı olmak için yeni bölüm eklemesi her zaman ilerleme sayılmıyor. Eklenen her iş, kontrol etmen gereken yüzeyi de büyütüyor.
Tek günlük bir üründe kapsam dışı listesi çoğu zaman ürünün kendisinden uzun oluyor. Bu iyi bir işaret.
Listeyi tek seferde yazıp bitirmiyorsun. Gün içinde aklına gelen her yeni fikri oraya yazıyorsun. Fikir kaybolmuyor, sırası geliyor.
Araçlar rolüne göre ayrılıyor
Araç listesi her ay değişiyor, roller değişmiyor. Tarayıcıda çalışan uygulama üreticileri barındırmayı da üstleniyor; ilk ekrana en hızlı onlarla ulaşıyorsun, bedeli kodun ve akışın o platformun kurallarına bağlı kalması.
Terminalde çalışan ajanlar kodu senin deponda tutuyor. Yarın araç değişse kod ve öğrendiklerin sende kalıyor.
Karşılaştırırken kendi işini sor: ilk ekranı mı çıkaracaksın, yayındaki uygulamayı mı sürdüreceksin? Seçim işten sonra geliyor.
Araç adlarını tek bir yöntem sanma. Kurulum, yayın, veri ve bakım biçimleri birbirinden ayrı. Aynı tarifi iki araca verdiğinde iki farklı ürün çıkıyor ve fark araçların gücünden değil, hangi kararı senin yerine verdiklerinden doğuyor.
Kodun nerede durduğunu bil
Ürünün yalnız bir sohbet penceresinde yaşaması yetmiyor. Dosyalar nerede duruyor, değişiklik nasıl kaydediliyor, bozulan sürümden nasıl geri dönülüyor?
Her satırı anlamak zorunda değilsin. Ama çalışan sürümün nerede olduğunu bilmiyorsan, ürünü elinde tutmuyorsun.
İlk gün öğrenilecek üç şey var: projenin dosyaları nerede duruyor, çalışan son sürüm nasıl işaretleniyor, bozulunca hangi noktaya dönülüyor. Üçü de kod okumayı gerektirmiyor.
Bozmayı dene
Tek bir gösteri akışını tamamlamak kanıt değil. Boş ders aç. Çok uzun bir isim gir. Aynı kişiyi iki kez ekle. Kaydettikten sonra sayfayı yenile.
Hata çıktığında uygulamayı baştan yazdırma. Hangi hareketin hangi girdiyle ne verdiğini yaz. Küçük hata tarifi, düzeltmenin kapsamını da küçük tutuyor.
İki başarısız düzeltmeden sonra oturumu temizle. Ajan aynı hatayı üçüncü kez düzeltmeye çalışıyorsa sorun kodda değil, tarifte.
Denemeyi her kilometre taşında tekrarla. Yeni hareket eklendiğinde eski üç koşulu bir kez daha koştur. Bozulan bir şey varsa o gün fark etmek, bir hafta sonra fark etmekten ucuz.
Gerçek veri girince sınır değişiyor
Bir eğitmenin başka atölyenin katılımcılarını görmemesi, o bölümü ekrandan gizlemekle çözülmüş olmuyor.
Giriş sistemi, ödeme ve gerçek kişisel veri bir günlük kapsamın dışında. Bunlar zor olduğu için değil, yanlış yapıldığında bedelini başkası ödediği için. Veri sızdıran bir giriş ekranını "çalışıyor" diye yayına almak, çalışmayan bir ekrandan kötü.
Bu katmanlara gelince iki yol var: hazır bir hizmete bağlanmak ya da işi bilen birine kodu inceletmek.
Nerede biter
Dürüst sınır. Tek günde çalışan ve yayında bir ürün çıkıyor; ölçeklenmiş, gece gündüz çalışan bir sistem çıkmıyor.
Oraya giden yol aynı sıranın tekrarı: daha dar kapsam, daha açık kabul koşulu, daha çok deneme. Vibe coding'in disiplinli ucu tam olarak bu tekrarın adı.
Bir sınır daha var. Ürünü çıkarmak, kullanıcı bulmakla aynı iş değil. Çalışan bir ekranın varken bile kimsenin bilmediği bir ürünün olabiliyor; o ayrı bir emek kalemi.
Kim için
Kendi işinde çözmek istediği bir problemi olan ve o problemi yazıya dökebilen herkes için. Kod bilgisi ön koşul değil.
Yazılımcı olmak isteyenler için değil. Burada öğrendiğin şey ürün sahibi olmak; klasik kodlama eğitiminin verdiği temeli vermiyor.
Bir de şu ayrım var. Fikrini kimseye anlatamayan biri araçtan da fayda göremiyor. Anlatma zorluğu kod zorluğundan önce geliyor ve kâğıt üstünde çözülüyor.
Bugün yapılacak tek şey
Araç karşılaştırma tablosu yapma. Bir sayfa aç.
Kullanıcını yaz. Üç hareketi yaz. Her hareketin yanına bittiğini nasıl anlayacağını yaz. Altına da kapsam dışı listesini çıkar. Sonra bir aracı aç ve yalnız ilk hareketi çalıştır.
Akşam elinde bir sohbet geçmişi değil, geçtiğini kendi gözünle gördüğün bir hareket olacak. Devamını AI-Native Builder rotası taşıyor.
Kodu araç yazıyor. Kapsamı sen yazıyorsun.