Son %20: Yapay zekânın yayından önce senin yerine bitirmediği işler
Yapay zekâ seni çok hızlı bir şekilde çalışan bir demoya ulaştırır. Onu bir ürüne çeviren şey son %20’dir: hatalar, e-postalar, ödemeler, erişilebilirlik, diller, gizlilik, yedekler. Yapay zekânın genelde bitirmeden bıraktığı on iki iş, her birini nasıl kontrol edeceğin ve yapay zekâna ne soracağın.
··12 dk okuma
Yazılımda doksan-doksan kuralı diye eski bir şaka vardır: "Kodun ilk yüzde 90’ı, geliştirme süresinin ilk yüzde 90’ını alır. Kodun kalan yüzde 10’u ise geliştirme süresinin diğer yüzde 90’ını alır." Bell Laboratuvarları’ndan Tom Cargill’e atfedilir ve Jon Bentley tarafından 1985’te ünlü hâle getirilmiştir.
Yapay zekâ ilk kısmı çok hızlandırdı. Bugün bir uygulamayı sabah anlatıp öğleden sonra çalışan bir demoda gezinebilirsin. Ama şaka hâlâ geçerli. Son kısım, yani bir demoyu insanların güvenebileceği bir ürüne çeviren kısım, hâlâ gerçek emek istiyor.
’ı bir yapay zekâ kodlama ajanıyla geliştirirken bunu her gün görüyorum. Kayıt olma çok erken çalıştı. Asıl iş, onun etrafındaki her şeydi: 15 dakika ve beş denemeden sonra geçersiz olan kodlar, bir adrese gidebilecek e-posta sayısına sınırlar, karanlık modda ve Outlook’ta düzgün görünen e-postalar ve bunların hepsi üç dilde.
Bu yazı o son kısım hakkında. Ben ona son %20 diyorum: yapay zekânın sen istemedikçe genelde bitirmediği on iki iş, her birini nasıl kontrol edeceğin ve yapay zekâna ne soracağın.
Kısaca
Yapay zekâ mutlu yolu yapar: bir demoda gördüğün ekranları ve adımları. Gerçek kullanıcılar geri kalan her şeyi getirir: hatalar, boş listeler, uzun isimler, yavaş telefonlar, başka diller.
Son %20, 12 alandan oluşur: mutsuz yollar, gerçek veriler, giriş ve e-posta, ödemeler, erişilebilirlik, telefonlar ve hız, diller ve biçimler, gizlilik ve yasal metinler, yedekler, izleme, destek ve güvenli güncellemeler.
Hepsine ilk gün ihtiyacın yok. Güvenlik, yedekler ve giriş işlerini yayından önce yap, gerisini ilk ay için planla.
Aşağıdaki her maddede 10 dakikalık bir kontrol ve yapay zekâna verebileceğin bir prompt var.
Son %20 neden bu kadar uzun sürer?
Bir demonun bir kez, senin için, iyi verilerle çalışması yeterli. Bir ürünün ise her gün, yabancılar için, ne yaparlarsa yapsınlar çalışması gerekir.
Yapay zekâ ilk işte çok iyi. "Kullanıcıların fatura yükleyebileceği bir sayfa" istediğinde tam olarak bunu yapar: sayfayı, düğmeyi, listeyi. Yükleme başarısız olursa, dosya 40 MB ise, kullanıcının henüz hiç faturası yoksa ya da trende telefondan bağlanıyorsa ne olacağını sormaz. Kimse sormadı, kimse yapmadı.
Bir de his tuzağı var. METR’in 2025 çalışmasında, 2025 başının yapay zekâ araçlarını kullanan deneyimli geliştiriciler gerçek görevleri %19 daha geç bitirdi, ama sonrasında yapay zekânın onları %20 hızlandırdığına inanıyorlardı. METR daha sonra yeni araçların muhtemelen daha çok yardım ettiğini söyledi. Ama ders aynı kalıyor: yapay zekâ ile neredeyse bitmiş olmak, bitmiş gibi hissettiriyor.
Bir demonun gösterdikleri ve bir ürünün ayrıca ihtiyaç duydukları.
Alan
Bir prototip
Bir ürün
Hatalar
Boş bir ekran ya da ham bir hata gösterir
Ne olduğunu ve sırada ne yapılacağını söyler
Veriler
Örnek veriler, kısa isimler
Gerçek isimler, uzun metinler, binlerce satır
E-posta
Senin Gmail’inde çalışır
Her sağlayıcıda spama değil gelen kutusuna düşer
Kullanıcılar
Sen, bir dizüstü bilgisayarda
Yabancılar, telefonlarda, ekran okuyucularla, başka dillerde
Büyük hatalar
Baştan başlarsın
Yedekler, kayıtlar ve sorun bildirmenin bir yolu
Yapay zekânın genelde bitirmeden bıraktığı 12 iş
1. Mutsuz yollar: hatalar, boş durumlar ve yükleniyor ekranları
Neden: yapay zekâ çalışan yolu yapar. Kullanıcılar diğer bütün yolları bulur: internet yok, yanlış şifre, boş bir liste, bir sunucu hatası, iki kez tıklanan bir düğme.
Kontrol et: Wi-Fi’ını kapat ve uygulamayı kullan. Yepyeni bir kullanıcı olarak kayıt ol ve hiç veri eklemeden her ekrana bak. Her formu önce boş, sonra yanlış değerlerle gönder. Kaydeden ya da ödeme alan her düğmeye çift tıkla.
Yapay zekâna sor: "Bu uygulamadaki her ekranı listele. Her biri için kullanıcının henüz veri yokken, yüklenirken, istek başarısız olduğunda ve görme izni olmadığında ne gördüğünü göster. Eksik olanları, açık bir mesaj ve kullanıcı için bir sonraki adımla ekle. Her kaydet düğmesini iki kez tıklansa da sorun çıkmayacak hâle getir."
2. Gerçek insanların verileri
Neden: demolarda "Ahmet Yılmaz" ve üç örnek kayıt olur. Gerçek insanların aksanlı harfler ve kesme işaretleri içeren uzun isimleri vardır, emoji içeren metinler yapıştırırlar ve binlerce kayıt oluştururlar.
Axiean’da düzelttiğim iki şey: bir proje adındaki çok uzun bir kelime, telefonlarda sayfaları ekrandan geniş yapabiliyordu; artık her metin satır kırabilmek zorunda. Bir de Türkçede, JavaScript’te "İ".toLowerCase() düz bir "i" değil, fazladan bir nokta karakteri taşıyan bir "i" döndürüyor; biz temizleyene kadar bu, aramayı bozuyordu.
Kontrol et: her metin alanına boşluksuz 60 karakterlik bir kelime yapıştır ve sayfaya telefonda bak. Şükrü Öztürk-O’Brien gibi isimler dene. Kısa bir betikle 1.000 kayıt oluştur ve listenin hâlâ yüklenip yüklenmediğine bak.
Yapay zekâna sor: "Bu uygulamayı zor verilerle test et: boşluksuz çok uzun kelimeler, aksanlı harfler ve kesme işaretleri içeren isimler, emojiler, boş metinler ve her listede 1.000 kayıt. 360 piksel genişliğindeki bir ekranda taşan düzenleri düzelt, büyüyebilecek listelere sayfalama ekle ve aramanın Türkçe karakterlerle ve aksanlı harflerle çalıştığından emin ol."
3. Giriş ve e-posta
Neden: giriş demoda çalışır. Sonra ilk gerçek kullanıcı şifre sıfırlamak ister ve e-posta spama düşer ya da hiç gelmez.
Gmail Şubat 2024’ten beri her göndericiden e-postalarını SPF ya da DKIM ile doğrulamasını istiyor; Gmail’e günde 5.000’den fazla e-posta gönderenlerden ayrıca DMARC, pazarlama e-postalarında tek tıkla abonelikten çıkma ve %0,3’ün altında bir spam oranı bekliyor. Axiean’ın e-postaları SPF, DKIM ve DMARC ile ayarlanmış bir alan adından, bir e-posta servisi (Resend) üzerinden gidiyor.
Kontrol et: gerçek bir Gmail ve gerçek bir Outlook adresiyle kayıt ol. E-posta geldi mi, hangi klasöre? İki kez şifre sıfırlama iste: ilk bağlantı çalışmayı bırakıyor mu? Giriş kodunun süresi doluyor mu?
Yapay zekâna sor: "Bu uygulamanın gönderdiği her e-postayı benimle tek tek incele: kayıt, doğrulama, şifre sıfırlama, bildirimler. Her biri için düzgün bir e-posta servisiyle gönderildiğini, bağlantıların ve kodların süresinin dolduğunu, şifre değişince eski sıfırlama bağlantılarının çalışmadığını ve bir adrese e-posta yağdırılamayacağını kontrol et. Alan adım için hangi DNS kayıtlarına (SPF, DKIM, DMARC) ihtiyacım olduğunu söyle."
4. Test kartının ötesinde ödemeler
Neden: test kartı her zaman çalışır. Gerçek kartlar reddedilir, süresi dolar, iade edilir ve itiraz edilir. Abonelikler iptal edilir. Birçok ülke KDV gibi vergiler ekler ve müşteriler fatura bekler.
Kontrol et: ödeme sağlayıcının reddedilen ödemeler ve süresi dolmuş kartlar için verdiği test kartlarını kullan. Bir aboneliği iptal et ve erişimin olması gerektiği zaman bittiğini kontrol et. Bir ödemeyi iade et ve uygulamanın ne yaptığına bak. Vergileri kendin yönetmek zor geliyorsa, merchant of record (kayıtlı satıcı) olarak çalışıp vergileri senin yerine yöneten sağlayıcılara bak.
Güvenlik tarafı için (webhook’lar ve tarayıcıdan gelen fiyatlar) güvenlik kontrol listemin 16. maddesine bak.
Yapay zekâna sor: "Bu uygulamanın yönetmesi gereken her ödeme durumunu çıkar: başarılı, reddedildi, iade edildi, itiraz edildi, iptal edildi, kartın süresi doldu ve yenileme. Her birinin nerede yönetildiğini, ödeme sağlayıcısının webhook’larını doğru bilgi kaynağı olarak kullanarak göster. Eksikleri ekle ve aynı olayla iki kez çalışsalar da sorun çıkarmamalarını sağla."
5. Erişilebilirlik
Neden: kullanıcılarının bazıları iyi göremez, fare kullanamaz ya da ekran okuyucu kullanır. Yapay zekânın ürettiği arayüzler çoğu zaman güzel görünür ama yine de onları zorlar.
Bunda yalnız değilsin. WebAIM Million 2026 raporu, en çok ziyaret edilen bir milyon ana sayfanın %95,9’unda tespit edilebilir erişilebilirlik hataları buldu. En yaygınları düşük kontrastlı metin (sayfaların %83,9’u), açıklaması olmayan görseller (%53,1) ve etiketi olmayan form alanlarıydı (%51). AB’de Avrupa Erişilebilirlik Yasası 28 Haziran 2025’ten beri birçok dijital ürün ve hizmete uygulanıyor; çok küçük işletmeler için bazı istisnalar var, seni kapsayıp kapsamadığına bak.
Kontrol et: fareyi bir kenara koy ve uygulamayı yalnızca klavyeyle kullan (Tab, Enter, Esc). Tarayıcıyı %200’e yakınlaştır. WAVE ya da Lighthouse gibi ücretsiz bir otomatik denetleyici çalıştır. Telefonunun ekran okuyucusunu iki dakikalığına aç.
Yapay zekâna sor: "Bu uygulamayı WCAG 2.2 AA’ya göre denetle. Renk kontrastını, görsellerin alternatif metinlerini, her form alanının etiketini, her kontrole görünür bir odak çerçevesiyle klavyeden erişimi, başlıkların sırasını ve sayfanın dil özniteliğini kontrol et. Sorunları düzelt ve benim karar vermem gerekenleri listele."
6. Telefonlar ve hız
Neden: büyük bir ekranda, hızlı internetle geliştirirsin. Kullanıcılarının çoğu telefondan, bazen yavaş bir bağlantıyla gelir.
Google bunu Core Web Vitals ile ölçer: bir sayfanın ana içeriği 2,5 saniye içinde görünüyorsa (LCP), bir dokunuşa 200 milisaniye içinde cevap veriyorsa (INP) ve düzen zıplamıyorsa (CLS 0,1’in altında) sayfa "iyi" sayılır.
Kontrol et: uygulamanı tarayıcının geliştirici araçlarında 360 piksel genişlikte aç. Yana kaydırabiliyor musun? (Kaydıramamalısın.) Düğmeler dokunmak için yeterince büyük mü? Ağı "Yavaş 4G"ye düşür ve sayfayı yenile. Ana sayfanda PageSpeed Insights çalıştır.
Yapay zekâna sor: "Bu uygulamayı 360 piksel genişliğinde, yavaş bağlantılı bir telefonda iyi çalışır hâle getir. Yana kaydırmayı tamamen kaldır, dokunma alanlarını en az 24’e 24 piksel yap, görselleri yeniden boyutlandırıp tembel yükle ve ilk sayfada yüklenen JavaScript’i azalt. Öncesi ve sonrası için Lighthouse puanlarını göster."
7. Diller, tarihler ve sayılar
Neden: yalnızca İngilizce olan bir uygulama bile dünyanın her yerinden insanlara tarih, saat, fiyat ve sayı gösterir. "03/04" bir ülkede mart, başka bir ülkede nisan demek. "1.508" Türkçede ve İspanyolcada binden fazla, İngilizcede ise bir buçuk civarı demek. Arayüzü çevirirsen her metnin sığması gerekir: tecrübeme göre İspanyolca, İngilizceden yaklaşık %20 ile %30 daha uzun, Türkçe kelimeler de eklerle uzuyor.
Axiean’da arayüzdeki her metin İngilizce, İspanyolca ve Türkçe olarak var ve bir dilde diğerlerinde olan bir metin eksikse otomatik bir kontrol hata veriyor.
Kontrol et: tarayıcını başka bir dil ve bölgeye ayarla, sonra her tarihe, fiyata ve sayıya bak. Başka bir saat dilimindeki kullanıcı için "bugün"ün ne anlama geldiğini kontrol et.
Yapay zekâna sor: "Bu uygulamanın tarih, saat, sayı, fiyat ya da çoğul gösterdiği her yeri bul. Metinleri elle birleştirmek yerine, kullanıcının dili ve saat dilimiyle tarayıcının Intl API’sini (ya da i18n kütüphanemizi) kullanarak biçimlendir. Daha sonra çevirebilmemiz için koda doğrudan yazılmış her arayüz metnini listele."
8. Gizlilik ve yasal metinler
Neden: yabancılar kayıt olmaya başladığı anda kişisel verileri işliyorsun. Aralarında AB’de yaşayan biri varsa GDPR geçerli ve buna verilerinin silinmesini isteme hakkı da dahil. Türkiye’deki kullanıcılar için de KVKK var. Gizlilik politikan, kodunun gerçekte ne yaptığını anlatmalı; veri gönderdiğin servisler de dahil: e-posta sağlayıcın, sunucun ve kullanıcıların içeriğini gören her yapay zekâ API’si.
Axiean’ın üç dilde Kullanım Şartları, Gizlilik Politikası ve Topluluk Kuralları var. Hiçbir analiz aracı, reklam ya da takip çerezi kullanmıyor; bu yüzden çerez bannerına ihtiyacı yok ve Gizlilik Politikası kullandığı her çerezi tek tek sayıyor. Biri hesabını sildiğinde hesap hemen kapanıyor ve 30 gün sonra kalıcı olarak siliniyor.
Kontrol et: topladığın her kişisel veriyi, neden topladığını, nerede saklandığını ve hangi dış servislerin gördüğünü yaz. Sonra bu listeyi gizlilik politikanla karşılaştır. Bir kullanıcı sana e-posta yazmadan hesabını silebiliyor mu?
Yapay zekâna sor: "Bu uygulamanın topladığı ya da sakladığı her kişisel veriyi; nerede saklandığını, ne kadar tutulduğunu ve yapay zekâ API’leri dahil hangi üçüncü taraf servislerin aldığını listele. Kullanıcıların hesaplarını ve verilerini silebilmesi için bir yol ekle. Sonra bu listeden, benim inceleyeceğim sade bir gizlilik politikası taslağı yaz."
Bu hukuki tavsiye değil. İşin içinde para, sağlık, çocuklar ya da çok sayıda kullanıcı varsa bir avukatla konuş.
9. Yedekler ve geri dönüş yolu
Neden: veritabanları hatalarla, kötü geçişlerle (migration) ve bazen yapay zekâ ajanlarıyla silinir. Temmuz 2025’te Replit’teki bir yapay zekâ ajanı bir kullanıcının canlı veritabanını sildi. Yedeğin yoksa ürünün de yoktur.
Kontrol et: veritabanının otomatik yedeği var mı, ne sıklıkla alınıyor ve nerede saklanıyor, öğren. Sonra çoğu kişinin atladığı adımı at: bir yedeği bir test veritabanına geri yükle ve verilerin gerçekten orada olduğunu kontrol et.
Yapay zekâna sor: "Canlı veritabanı için sunucunun dışında saklanan ve 30 gün tutulan otomatik günlük yedekler kur. Adım adım bir geri yükleme rehberi yaz ve en son yedeği ayrı bir test veritabanına geri yükleyen bir betik hazırla ki her ay kontrol edebileyim. Yapay zekâ ajanının ve geliştirme ortamının canlı verilere dokunamayacağından emin ol."
10. İzleme ve kayıtlar
Neden: uygulaman gece çökerse bunu kızgın bir kullanıcıdan öğrenirsin ya da hiç öğrenmezsin. Bir şey bozulduğunda nedenini görmek için kayıtlara (log) ihtiyacın var; ama kayıtların şifrelerle, token’larla ya da kişisel verilerle dolmaması gerekir.
Axiean’ın API kayıtları ziyaretçilerin IP adreslerini tutmuyor ve gizli başlıklar bir şey yazılmadan önce kaldırılıyor.
Kontrol et: siteni birkaç dakikada bir kontrol eden ve çöktüğünde sana e-posta atan ücretsiz bir kesinti izleyicisi (uptime monitor) kur. Bir test ortamında bilerek bir şeyi boz: uyarı geliyor mu, kayıtlar ne olduğunu anlatıyor mu?
Yapay zekâna sor: "Bu uygulamaya hata takibi ve yapılandırılmış kayıtlar ekle. Her hata bir istek kimliğiyle kaydedilsin; şifreler, token’lar, API anahtarları ve kişisel veriler asla kayıtlarda görünmesin. Bir kesinti izleyicisini yönlendirebileceğim bir sağlık kontrolü uç noktası ekle."
11. Kullanıcıların sana ulaşabileceği bir yol
Neden: ilk kullanıcıların hiç aklına gelmeyen hatalar bulacak. Bir hatayı bildirmek zorsa bildirmezler. Sadece giderler.
Axiean’da giriş yapmış üyeler ekran görüntüleri ve sayfa ile cihaz bilgileriyle sorun bildirebiliyor, özel bir yazışmada cevap alıyor ve üzerinde çalıştığımız bilinen sorunları herkes görebiliyor.
Kontrol et: uygulamanın içinde bir e-posta adresi ya da geri bildirim bağlantısı var mı ve gerçekten okuyan biri var mı? Telefondan kendine bir test mesajı gönder.
Yapay zekâna sor: "Giriş yapmış kullanıcılar için basit bir 'Sorun bildir' formu ekle: bir açıklama, isteğe bağlı bir ekran görüntüsü ve bulundukları sayfa. Bana e-postayla gönderilsin, veritabanına kaydedilsin ve kullanıcıya bir onay mesajı gösterilsin."
12. Güvenli güncellemeler: testler ve hızlı düzeltmeler
Neden: yapay zekânın yaptığı her değişiklik ilgisiz bir yeri bozabilir. Test yoksa bunu kullanıcılardan öğrenirsin. Bir şey bozulduğunda da hızlıca düzeltmen ya da geri dönmen gerekir.
Kontrol et: uygulamandaki en önemli üç şeyi seç (örneğin kayıt olma, ana işlem ve ödeme). Her biri için otomatik bir test var mı? Bir düzeltmeyi yayına almak ne kadar sürüyor? Tek adımda önceki sürüme dönebiliyor musun?
Yapay zekâna sor: "Bu uygulamadaki en önemli üç akış için uçtan uca testler yaz: [akış 1], [akış 2], [akış 3]. Her yayından önce tek bir komutla çalışsınlar. Sonra bir yayın kötü giderse önceki sürüme nasıl dönüleceğini yaz."
Tek sayfada son %20
Son %20, her alan için bir kontrol. Yazdır ya da görev listenin yanında tut.
Önce ne yapmalı?
İlk günden önce her şeye ihtiyacın yok. Benim izleyeceğim sıra şu:
Ne zaman
Ne yapmalı
Yayından önce
Güvenlik kontrol listesi, yedekler (9), giriş ve e-posta (3), ücret alıyorsan ödemeler (4), bir gizlilik politikası (8)
İlk hafta
Mutsuz yollar (1), telefonlar (6), sana ulaşma yolu (11), bir kesinti izleyicisi (10)
İlk ay
Gerçek veriler (2), erişilebilirlik (5), ana akışlar için testler (12)
Büyüdüğünde
Diller (7), hız iyileştirmeleri (6), daha çok test ve daha iyi izleme
Ne kadar sürer? Dürüst tek bir rakam yok. Benim kuralım: son %20 için demonun sürdüğü kadar zaman ayır ve daha uzun sürerse şaşırma. Doksan-doksan kuralı bu.
Yapay zekâ yayına hazır bir uygulama yapabilir mi?
Yapay zekâ yayındaki bir uygulamanın kodunun çoğunu yazabilir ama yayına hazırlık kısmını nadiren kendi başına bitirir. Hata yönetimi, e-postaların ulaşması, erişilebilirlik, gizlilik, yedekler ve izleme genelde senin istemeni ve kontrol etmeni gerektirir. Net isteklerle ve incelemelerle, evet, çoğunu yapay zekânın yazdığı gerçek bir ürün yayınlayabilirsin.
Vibe coding’in sınırları neler?
Vibe coding mutlu yolu hızla yapar, ama kodu okumadan neyin eksik olduğunu bilemezsin: güvenlik kontrolleri, hata yönetimi, uç durumlar ve verilerin güvenliği. Prototipler için harika. Gerçek kullanıcıları olan bir ürün için kodu incele ya da en azından bunun gibi kontrol listelerinden geçir.
Bir prototipi nasıl yayındaki bir uygulamaya çeviririm?
Son %20’yi tamamla: hataları ve boş durumları yönet, gerçek verilerle test et, giriş ve e-postayı güvenilir yap, başarısız ödemeleri yönet, erişilebilirliği ve telefonları kontrol et, bir gizlilik politikası yaz, yedekleri ve izlemeyi kur, kullanıcılara sana ulaşma yolu ver ve ana akışlar için testler ekle. Güvenlikle başla.
Bir MVP’yi yayınlamadan önce neyi kontrol etmeliyim?
En azından: temel güvenlik önlemlerini, denediğin yedekleri, güvenilir giriş ve e-postayı, ücret alıyorsan doğru ödeme yönetimini ve uygulamanın yaptığıyla örtüşen bir gizlilik politikasını. Gerisi ilk haftalarda gelebilir.
Küçük bir uygulama için gizlilik politikası gerekir mi?
Uygulaman e-posta adresi gibi herhangi bir kişisel veri topluyorsa neredeyse kesinlikle gerekir; AB’de GDPR, Türkiye’de KVKK, insanlara verilerini nasıl kullandığını anlatmanı ister. Kısa tut ve kodunun yaptığına sadık kal. Bu hukuki tavsiye değil.
Merriam-Webster 2025’in kelimesi olarak "slop"u seçti ve insanlar artık onun izlerini arıyor. Yapay zekâ ile yapılmış bir ürünü neyin slop gibi, neyin özenli gösterdiği, yapay zekâ kullandığını söylemen gerekip gerekmediği ve Google, FTC ve AB Yapay Zekâ Yasası’nın 2026’da ne dediği.
Yapay zekâ ile yazılım geliştirmenin kelimeleri birkaç ayda bir değişiyor. Burada 40 tanesini sade bir dille anlattım: ne demek, nereden çıktı ve senin için neden önemli. Vibe coding ve MCP’den bağlam mühendisliğine, slopsquatting’e ve llms.txt’ye kadar.
··11 dk okuma
Lansman günü sana fark edilmek için tek bir şans verir. Geliştirme günlüğü ise her hafta yeni bir şans. Herkesin önünde geliştirmenin (build in public) insanların, Google’ın ve yapay zekâ cevaplarının seni bulmasına nasıl yardım ettiği ve haftada 15 dakikalık basit bir düzen.