KoderKoder.ai
FiyatlandırmaKurumsalEğitimYatırımcılar için
Giriş YapBaşla

Ürün

FiyatlandırmaKurumsalYatırımcılar için

Kaynaklar

Bize UlaşınDestekEğitimBlog

Yasal

Gizlilik PolitikasıKullanım KoşullarıGüvenlikKabul Edilebilir Kullanım PolitikasıKötüye Kullanımı Bildir

Sosyal

LinkedInTwitter
Koder.ai
Dil

© 2026 Koder.ai. Tüm hakları saklıdır.

Ana Sayfa›Blog›Claude Code görev kapsamı: belirsiz isteklerden commit'lere
14 Ara 2025·5 dk

Claude Code görev kapsamı: belirsiz isteklerden commit'lere

Dağınık özellik isteklerini net kabul kriterlerine, minimal bir UI/API planına ve birkaç küçük commit'e nasıl dönüştüreceğinizi öğrenin — Claude Code görev kapsamı.

Claude Code görev kapsamı: belirsiz isteklerden commit'lere

Belirsiz özellik istekleri neden zaman kaybettirir\n\nBelirsiz bir istek zararsız gibi gelir: “Daha iyi bir arama ekle”, “Onboarding'i sadeleştir”, “Kullanıcıların bildirimlere ihtiyacı var.” Gerçekte çoğunlukla tek satırlık bir sohbet mesajı, oklarla işaretlenmiş bir ekran görüntüsü veya yarım hatırlanan bir müşteri görüşmesi olarak gelir. Herkes katılır, ama herkes farklı bir şeyi hayal eder.\n\nMaliyet ileride ortaya çıkar. Kapsam net değilse insanlar tahminlerle çalışır. İlk demo başka bir açıklama turuna dönüşür: “Bundan bunu kastetmemiştim.” İş yeniden yapılır ve değişiklik sessizce büyür. Tasarım ayarlamaları kod değişikliklerini tetikler, bu da daha fazla testi tetikler. İncelemeler yavaşlar çünkü bulanık bir değişikliği doğrulamak zordur. Eğer kimse “doğru”nun ne olduğunu tanımlayamıyorsa, inceleyenler kaliteyi kontrol etmek yerine davranışı tartışmakla uğraşır.\n\nBelirsiz bir görevi genellikle erkenden fark edebilirsiniz:\n\n- Kullanıcının adım adım ne yapması gerektiğine dair örnek yok\n- Kenar durumlar (boş durumlar, izinler, hatalar) yok\n- “İşe yarayabilir” işler büyük bir PR'a dönüşür\n- İnceleme yorumları davranış yerine uygulama hakkında tartışır\n- “Yolda hallederiz” plan haline gelir\n\nİyi kapsamlı bir görev takıma bir bitiş çizgisi verir: net kabul kriterleri, minimal bir UI ve API planı ve dahil olmayanlar için açık sınırlar. Bu, “aramayı geliştir” ile inşa edilmesi ve incelenmesi kolay küçük bir değişiklik arasındaki farktır.\n\nPratik bir alışkanlık: “done” tanımını “iyi-olur”dan ayırın. “Done” çalıştırabileceğiniz kısa bir kontrol listesi (örneğin: “Arama başlığa göre sonuç döndürüyor, boşsa ‘Sonuç yok’ gösteriyor ve sorguyu URL'de tutuyor”). “Nice-to-have” synonymlar, sıralama ayarları, vurgulama, analiz gibi sonradan gelebileceklerdir. Bunları baştan etiketlemek istemsiz kapsam büyümesini önler.\n\n## Sonuçla başlayın, çözümle değil\n\nBelirsiz istekler genellikle önerilen düzeltmelerle başlar: “Bir buton ekle”, “Yeni akışa geç”, “Farklı bir model kullan.” Durup öneriyi önce bir sonuca çevirin.\n\nBasit bir format yardımcı olur: “As a [user], I want to [do something], so I can [reach a goal].” Düz ve kısa tutun. Nefes almadan söyleyemiyorsanız hâlâ çok bulanık demektir.\n\nSonra kullanıcının işi bittiğinde ne değişeceğini tanımlayın. Görünür davranışa odaklanın, uygulama detaylarına değil. Örneğin: “Formu gönderdikten sonra bir onay görüyorum ve yeni kaydı listede bulabiliyorum.” Bu net bir bitiş çizgisi yaratır ve “bir ince ayar daha”nın gizlice girmesini zorlaştırır.\n\nAyrıca neyin aynı kalacağını yazın. Kapsam dışı maddeler sınırınızı korur. İstek “onboardingi iyileştir” ise kapsama alınmayacaklar: “gösterge paneli yeniden tasarımı yok” veya “fiyatlandırma-kademesi mantığında değişiklik yok.”\n\nSon olarak, önce bir ana yolu seçin: özelliğin çalıştığını kanıtlayan tek uçtan uca dilim.\n\nÖrnek: “her yerde snapshot ekle” demek yerine şunu yazın: “As a project owner, I can restore the latest snapshot of my app, so I can undo a bad change.” Kapsam dışı: “toplu geri yükleme yok, UI yeniden tasarımı yok.”\n\n## Belirsizliği kaldıran birkaç soru sorun\n\nBelirsiz bir istek genellikle çaba eksikliği değildir. Eksik olan kararlar vardır.\n\nÖnce kapsamı sessizce değiştirecek kısıtları sorun. Son tarihler önemlidir, ama erişim kuralları ve uyumluluk gereksinimleri de önemlidir. Eğer bir platformda tier’lar ve roller varsa, baştan kimlerin özelliğe erişeceğine ve hangi planda olduğuna karar verin.\n\nSonra tek bir somut örnek isteyin. Bir ekran görüntüsü, rakip davranışı veya önceki bir ticket “daha iyi”nin gerçekte ne demek olduğunu gösterir. İsteği yapanın örneği yoksa, onlardan son kez acıyı hissettikleri zamanı tekrar etmelerini isteyin: hangi ekrandaydınız, neye tıkladınız, ne beklediniz?\n\nKenar durumlar kapsamın patladığı yerdir; bu yüzden büyük olanları erkenden adlandırın: boş veri, doğrulama hataları, yavaş veya başarısız ağ çağrıları ve “geri al”ın gerçekten ne anlama geldiği.\n\nSon olarak, başarıyı nasıl doğrulayacağınızı kararlaştırın. Test edilebilir bir çıktı olmadan görev görüşlere döner.\n\nBu beş soru genellikle belirsizliğin çoğunu ortadan kaldırır:\n\n- Kim erişecek (tier ve roller)?\n- Bitiş tarihi nedir ve en küçük kabul edilebilir sürüm hangisi?\n- Beklenen davranıştan bir örnek nedir?\n- Boş durumlarda, hatalarda ve yavaş bağlantıda ne olacak?\n- Nasıl doğrulayacağız (spesifik kriter veya metrik)?\n\nÖrnek: “Müşteriler için özel domain ekle” isteği hangi tier’e ait olduğu, kimlerin kurabileceği, barındırma konumunun uyumluluk için önemli olup olmadığı, geçersiz DNS için hangi hatanın gösterileceği ve “done”un ne anlama geldiği (domain doğrulandı, HTTPS aktif, güvenli rollback planı) kararlaştırıldığında daha net olur.\n\n## Dağınık notları kabul kriterlerine çevirin\n\nDağınık istekler hedefleri, tahminleri ve yarım hatırlanmış kenar durumları karıştırır. İşiniz bunları herkesin zihin okumadan test edebileceği ifadelere dönüştürmektir. Aynı kriterler tasarım, kodlama, inceleme ve QA rehberi olmalıdır.\n\nBasit bir desen işleri net tutar. Given/When/Then kullanabilir veya aynı anlama gelen kısa madde biçimleri tercih edebilirsiniz.\n\n### Hızlı kabul-kriteri şablonu\n\nHer kriteri birinin çalıştırabileceği tek bir test olarak yazın:\n\n- Given bir başlangıç durumu, when kullanıcı X yapar, then Y olur.\n- Doğrulama kurallarını ekleyin (hangi girdiler kabul ediliyor).\n- En az bir hata durumu ekleyin (kullanıcının hangi hatayı gördüğü).\n- “Done sinyali”ni tanımlayın (QA hangi kontrolleri çalıştırır, inceleyiciler ne bekler).\n\nŞimdi uygulayın. Diyelim notta şöyle yazıyor: “Snapshot’ları kolaylaştır. Son değişiklik bozulursa geri alayım.” Bunu test edilebilir ifadeye çevirin:\n\n- Given bir projede 2 snapshot varsa, when Snapshots'ı açtığımda, then her ikisini de zaman ve kısa bir etiketle görüyorum.\n- Given bir snapshot varsa, when Roll back'e tıklayıp onaylarsam, then proje o snapshot'a geri döner ve uygulama başarılı şekilde build edilir.\n- Given proje sahibi değilsem, when rollback yapmayı denediğimde, then hata görürüm ve hiçbir şey değişmez.\n- Given bir rollback devam ediyorsa, when sayfayı yenilersem, then durumu ve nihai sonucu görmeye devam edebilirim.\n- Given rollback başarısız olursa, when işlem durduğunda, then net bir mesaj görürüm ve mevcut sürüm aktif kalır.\n\nEğer QA bu kontrolleri çalıştırıp inceleyiciler UI ve loglarda doğrulayabiliyorsa, UI ve API işlerini planlayıp bunları küçük commit'lere bölmeye hazırsınız demektir.\n\n## Minimal bir UI planı taslağı\n\nMinimal UI planı bir sözleşmedir: özelliğin çalıştığını kanıtlayan en küçük görünür değişiklik.\n\nHangi ekranların değişeceğini ve bir kişinin 10 saniyede ne fark edeceğini isimlendirerek başlayın. İstek “kolaylaştır” veya “temizle” ise bunu tek somut değişikliğe çevirin.\n\nBunu bir yeniden tasarım değil küçük bir harita olarak yazın. Örneğin: “Orders sayfası: tablo üstüne bir filtre çubuğu ekle” veya “Settings: Notifications altında yeni bir toggle ekle.” Ekranı ve kesin öğeyi isimlendiremiyorsanız, kapsam hâlâ belirsizdir.\n\n### Ana UI durumlarını tanımlayın\n\nÇoğu UI değişikliği birkaç öngörülebilir duruma ihtiyaç duyar. Yalnızca ilgili olanları yazın:\n\n- Loading\n- Empty\n- Error (yeniden deneme var mı)\n- Success (toast, inline mesaj, güncellenmiş liste)\n\n### Kullanıcının göreceği kelimeleri onaylayın\n\nUI metni de kapsamın bir parçasıdır. Onaylanması gereken etiket ve mesajları yakalayın: buton metinleri, alan etiketleri, yardımcı metin ve hata mesajları. Eğer metin hâlâ belirsizse, geçici metin olarak işaretleyin ve kim onaylayacak not edin.\n\nGerekli olmayan her şey için küçük bir “şimdi değil” notu tutun (responsive polish, gelişmiş sıralama, animasyonlar, yeni ikonlar).\n\n## Minimal API ve veri planı taslağı\n\nKapsamlı bir görev UI, backend ve veri arasında küçük, net bir sözleşme gerektirir. Amaç tüm sistemi tasarlamak değil; özelliğin çalıştığını kanıtlayacak en küçük istek ve alan setini tanımlamaktır.\n\nİhtiyacınız olan verileri ve kaynağını listeleyerek başlayın: okunabilecek mevcut alanlar, saklanması gereken yeni alanlar ve hesaplanabilecek değerler. Her alan için bir kaynak söyleyemiyorsanız, hâlâ planınız yok demektir.\n\nAPI yüzeyini küçük tutun. Birçok özellik için bir okuma ve bir yazma yeterlidir:\n\n- GET /items/{id} ekranı render etmek için gerekli durumu döner\n- POST /items/{id}/update kullanıcı değişikliklerini kabul eder ve güncellenmiş durumu döner\n\nGirdi ve çıktıları paragraf değil, düz nesneler olarak yazın. Zorunlu vs isteğe bağlı alanları, ve yaygın hatalarda (not found, validation failed) ne olacağını belirtin.\n\nVeritabanına dokunmadan önce hızlı bir auth kontrolü yapın. Kim okuyabilir, kim yazabilir bir cümlede ifade edin (örneğin: “oturum açmış her kullanıcı okuyabilir, sadece admin yazabilir”). Bu atlanırsa yeniden iş çıkar.\n\nSon olarak, neyin saklanması gerektiğine ve neyin hesaplanabileceğine karar verin. Basit bir kural: gerçekleri saklayın, görünümleri hesaplayın.\n\n## Claude Code'u kullanarak kapsamlı bir görev oluşturma\n\nClaude Code, net bir hedef ve sıkı bir kutu verdiğinizde en iyi sonucu verir. Dağınık isteği ve kısıtları (tarih, etkilenen kullanıcılar, veri kuralları) yapıştırın. Sonra kapsamlı bir çıktı isteyin ki içinde şunlar olsun:\n\n1. Kapsamın düz dille tekrarı ve kısa kabul-kriterleri checklist'i.\n2. 3–7 commitlik küçük bir sıra, her biri net bir sonuçla.\n3. Her commit için muhtemel dosya veya klasörler ve içlerinde yapılacak değişiklikler.\n4. Her commit için hızlı bir test planı (bir mutlu yol ve bir kenar durumu).\n5. Kapsam dışı notlar.\n\nClaude Code yanıt verdikten sonra onu bir inceleyici gibi okuyun. “Performansı iyileştir” veya “daha temiz yap” gibi ifadeler görürseniz, bunları ölçülebilir ifadeler isteyerek düzeltin.\n\n### Mini örnek (iyi görünene ne demek)\n\nİstek: “Aboneliği duraklatma özelliği ekle.”\n\nKapsamlı sürüm şöyle diyebilir: “Kullanıcı 1 ila 3 ay arası duraklatabilir; bir sonraki fatura tarihi güncellenir; admin duraklatma durumunu görebilir.” Kapsam dışı: “Prorasyon değişiklikleri yok.”\n\nBundan sonra commit planı pratik olur: bir commit DB ve API şeklini içinsin, bir commit UI kontrolleri, bir commit doğrulama ve hata durumları, bir commit uçtan uca testler için.\n\n## Çalışmayı küçük, incelenebilir commit'lere bölün\n\nBüyük değişiklikler hataları gizler. Küçük commit'ler incelemeleri hızlandırır, rollback'leri güvenli kılar ve kriterlerden sapmayı fark etmenizi sağlar.\n\nYararlı bir kural: her commit bir davranışı açmalı ve bunu kanıtlayacak küçük bir yol içermelidir.\n\nYaygın bir sıra şöyle görünür:\n\n- Veri modeli veya migration (gerekirse) + testler\n- API davranışı ve doğrulama\n- UI bağlama, boş ve hata durumlarıyla\n- Loglama veya analiz sadece gerekiyorsa, sonra küçük cilâ\n\nHer commit'i odaklı tutun. “Buradayken” refactor'larından kaçının. UI basit olsa bile uygulamanın uçtan uca çalışır kalmasını sağlayın. Migration, davranış ve UI'yi tek commit'e sıkıştırmayın, güçlü bir nedeniniz yoksa.\n\n## Adım adım: “Raporları dışa aktar”\n\nBir paydaş der: “Raporları dışa aktarabilir miyiz?” Bu çok seçim saklar: hangi rapor, hangi format, kim dışa aktarabilir ve teslimat nasıl çalışır.\n\nTasarımı değiştiren yalnızca gerekli soruları sorun:\n\n- v1 için hangi rapor tipleri kapsamda?\n- v1 için hangi format gerekli (CSV, PDF)?\n- Kim dışa aktarabilir (adminler, belirli roller)?\n- Direkt indirme mi yoksa e-posta ile mi teslim?\n- Limitler var mı (tarih aralığı, satır sayısı sınırı, zaman aşımı)?\n\nCevapları şöyle varsayın: “Sales Summary raporu, sadece CSV, manager rolü, direkt indirme, son 90 gün.” Şimdi v1 kabul kriterleri somut olur: yöneticiler Sales Summary sayfasında Export'a tıklayabilir; CSV ekran tablosundaki sütunlarla eşleşir; export mevcut filtreleri dikkate alır; 90 günden daha fazla aralık seçilirse net bir hata gösterir; 50k satıra kadar indirme 30 saniye içinde tamamlanır.\n\nMinimal UI planı: tablo aksiyonları yakınında bir Export butonu, oluşturulurken bir yükleniyor durumu ve kullanıcının sorunu nasıl düzelteceğini söyleyen bir hata mesajı (örneğin “90 gün veya daha az seçin”).\n\nMinimal API planı: filtreleri alan ve oluşturulmuş CSV'yi dosya yanıtı olarak dönen tek bir endpoint, tabloyla aynı sorguyu yeniden kullanan ve sunucu tarafında 90 günlük kuralı uygulayan bir yapı.\n\nSonra bunu birkaç sıkı commit'te gönderin: önce sabit mutlu yol için endpoint, sonra UI bağlama, sonra doğrulama ve kullanıcıya dönük hata mesajları, sonra testler ve dokümantasyon.\n\n## Yaygın kapsam hataları (ve nasıl kaçınılır)\n\n### Gizli gereksinimler sızar\n\n“Takım rolleri ekle” gibi istekler davet etme, düzenleme ve mevcut kullanıcılar için ne olacağı hakkında kurallar saklayabilir. Tahmin yaptığınızı fark ederseniz, varsayımları yazın ve bunları soru veya açık kural haline getirin.\n\n### UI cilâsı ana davranışla karışır\n\nBir görev hem “çalışsın” hem de “göze hoş görünsün” deyince günler kaybolur. İlk görev davranış ve veriye odaklansın. Stil, animasyon ve boşlukları takip eden bir görev haline bırakın; eğer bunlar kullanılabilirlik için gerekli değilse sonraya alın.\n\n### Tüm kenar durumlarını v1'de çözmeye çalışırsınız\n\nKenar durumlar önemlidir ama hepsi ilk sürüme girmez. Güveni sarsabilecek birkaçını ele alın (çift gönderimler, çakışan düzenlemeler) ve geri kalanları açık notlarla erteleyin.\n\n### Hata durumları ve izinler “sonra”ya iter\n\nYazmazsanız, kaçırırsınız. Kabul kriterlerine en az bir olumsuz yol ve en az bir izin kuralı dahil edin.\n\n### Doğrulanamayan kriterler\n\nHızlı veya sezgisel gibi ifadelerden kaçının; bir sayı veya somut kontrol ekleyin. Bunları incelemede kanıtlayabileceğiniz şekilde değiştirin.\n\n## Koda başlamadan önce hızlı kontrol listesi\n\nBir ekip arkadaşının zihin okumadan inceleyip test edebilmesi için görevi sabitleyin:\n\n- Sonuç ve kapsam dışı: sonuç için bir cümle + 1–3 açık kapsam dışı maddesi.\n- Kabul kriterleri: düz dilde 5–10 test edilebilir kontrol.\n- UI durumları: minimum loading, empty, error ve success durumları.\n- API ve veri notları: en küçük endpoint şekli ve veri değişiklikleri, kim okuyup yazabilir.\n- Commit planı ve testler: 3–7 commit, her biri kısa kanıtla.\n\nÖrnek: “Saved searches ekle” işi “Kullanıcı bir filtreyi kaydedip sonra tekrar uygulayabilir” olur; kapsama alınmayacaklar: “paylaşım yok”, “sıralama değişikliği yok.”\n\n## Sonraki adımlar: inşa ederken kapsamı sabit tutun\n\nBir kez kapsamlanmış bir göreviniz olduğunda, onu koruyun. Koda başlamadan önce istekte bulunanlarla hızlı bir akıl kontrolü yapın:\n\n- Kabul kriterilerini okuyun ve sonucun eşleştiğini onaylayın.\n- İzinleri, boş durumları ve hata davranışlarını teyit edin.\n- Kapsam dışı olanları tekrar onaylayın.\n- Kriterleri karşılayan en küçük UI ve API değişikliklerinde anlaşın.\n- Nasıl demo yapılacağına ve “done”un neye benzeyeceğine karar verin.\n\nSonra kriterleri iş yapılan yerde saklayın: ticket'ta, PR açıklamasında ve ekibin gerçekten baktığı her yerde.\n\nEğer Koder.ai (koder.ai) üzerinde geliştiriyorsanız, önce planı kilitleyip sonra buradan kod üretmek işe yarar. Planning Mode bu iş akışına uygundur; snapshot ve rollback denemeler yapmanız gerektiğinde işleri güvenli tutar.\n\nYeni fikirler geliştirme sırasında ortaya çıkarsa, kapsamı sabit tutun: bunları takip listesine yazın, kriterleri değiştiriyorsa durup yeniden kapsamlayın ve commitleri her seferinde tek bir kritere bağlayın.

SSS

How do I know a feature request is too vague to start building?

İşi bitmiş halde kullanıcının ne yapabileceğini bir cümleyle yazmaya başlayın, sonra 3–7 test edilebilir kabul kriteri ekleyin.\n\nEğer “doğru” davranışı tartışmadan tanımlayamıyorsanız, görev hâlâ belirsiz demektir.

What’s the fastest way to turn “do X better” into a clear outcome?

Hızlı formatı kullanın:\n\n- As a [user]\n- I want to [action]\n- So I can [goal]\n\nSonra beklenen davranıştan tek bir somut örnek ekleyin. Örnek veremiyorsanız, sorunun son kez ne zaman olduğunu yeniden anlatmalarını isteyin: hangi ekrandaydınız, neye tıkladınız, ne beklediniz?

How should I separate “done” from “nice-to-have” without arguing for days?

Önce kısa bir “Definition of done” listesi (geçmesi gereken kontroller), sonra ayrı bir “Nice-to-have” listesi yazın.\n\nVarsayılan kural: uçtan uca çalışmayı kanıtlamak için gerekliyse "Done"; değilse "Nice-to-have" içine alın.

What questions remove the most ambiguity early?

Kapsamı değiştiren birkaç soruyu sorun:\n\n- Kim erişecek (tier ve roller)?\n- Teslim tarihi nedir ve en küçük kabul edilebilir sürüm hangisi?\n- Beklenen davranıştan bir örnek nedir?\n- Boş durumlarda, hatalarda ve yavaş bağlantılarda ne olur?\n- Nasıl onaylayacağız (özgül kriter veya metrik)?\n\nBunlar eksik kararları görünür kılar.

Which edge cases should I include in v1 acceptance criteria?

Edge case’leri kapsam maddesi olarak ele alın, sürpriz olarak değil. v1 için güveni sarsabilecek olanları kapsayın:\n\n- Boş durum\n- Doğrulama hataları\n- İzin reddi\n- Ağ/API hataları\n- Geri alma/rollback davranışı (ilgiliyse)\n\nDiğerleri açıkça kapsam dışı bırakılabilir.

What does good acceptance criteria look like in practice?

Uygulamada iyi kabul kriterleri test edilebilir ifadeler olmalıdır:\n\n- Given bir başlangıç durumu\n- When kullanıcı X yapar\n- Then Y olur\n\nEn az bir hata durumu ve bir izin kuralı ekleyin. Testlenemeyen bir kriter varsa, onu yeniden yazın.

How minimal should a UI plan be for a scoped task?

Tam olarak hangi ekranların değişeceğini ve her ekranda görünen tek somut değişikliği isimlendirin.\n\nAyrıca gereken UI durumlarını listeleyin:\n\n- Loading\n- Empty\n- Error (yeniden deneme var mı)\n- Success (toast/inline mesaj/güncellenmiş liste)\n\nKopya (buton metni, hata mesajları) da kapsamda olsun, hatta geçici metinse onaylayacak kişiyi not edin.

What’s the simplest way to draft an API/data plan without over-designing?

Sözleşmeyi küçük tutun: v1 için genellikle bir okuma ve bir yazma yeterlidir.\n\nŞunu tanımlayın:\n\n- Girdi/çıktıları basit nesneler olarak (zorunlu vs isteğe bağlı alanlar)\n- Yaygın hatalar (not found, validation failed)\n- Tek cümlelik auth kuralı (kim okuyabilir/yazabilir)\n\nGerçekleri saklayın; görünümleri hesaplayın.

How should I prompt Claude Code to produce a scoped task and commit plan?

Kutulu bir teslim isteyin:\n\n- Yeniden ifade edilmiş kapsam + kabul checklist'i\n- 3–7 commit, her biri bir davranışı açar\n- Commit başına muhtemel dosyalar\n- Hızlı test planı (mutlu yol + bir edge)\n- Açık kapsam dışı maddeler\n\nSonra belirsiz ifadeleri (“daha temizle”) ölçülebilir hale getirin.

How do I split a feature into small commits that are easy to review?

Varsayılan sıra:\n\n- Veri/model değişikliği (gerekirse) + testler\n- API davranışı + doğrulama\n- UI bağlama ile boş/hata durumları\n- Gerekliyse son cilâ\n\nParmak kuralı: bir commit = bir kullanıcıya görünür yeni davranış + onu kanıtlayacak kısa yol. “Buradayken refactor”ları özellik commitlerine karıştırmayın.

İçindekiler
Belirsiz özellik istekleri neden zaman kaybettirir\n\nBelirsiz bir istek zararsız gibi gelir: “Daha iyi bir arama ekle”, “Onboarding'i sadeleştir”, “Kullanıcıların bildirimlere ihtiyacı var.” Gerçekte çoğunlukla tek satırlık bir sohbet mesajı, oklarla işaretlenmiş bir ekran görüntüsü veya yarım hatırlanan bir müşteri görüşmesi olarak gelir. Herkes katılır, ama herkes farklı bir şeyi hayal eder.\n\nMaliyet ileride ortaya çıkar. Kapsam net değilse insanlar tahminlerle çalışır. İlk demo başka bir açıklama turuna dönüşür: “Bundan bunu kastetmemiştim.” İş yeniden yapılır ve değişiklik sessizce büyür. Tasarım ayarlamaları kod değişikliklerini tetikler, bu da daha fazla testi tetikler. İncelemeler yavaşlar çünkü bulanık bir değişikliği doğrulamak zordur. Eğer kimse “doğru”nun ne olduğunu tanımlayamıyorsa, inceleyenler kaliteyi kontrol etmek yerine davranışı tartışmakla uğraşır.\n\nBelirsiz bir görevi genellikle erkenden fark edebilirsiniz:\n\n- Kullanıcının adım adım ne yapması gerektiğine dair örnek yok\n- Kenar durumlar (boş durumlar, izinler, hatalar) yok\n- “İşe yarayabilir” işler büyük bir PR'a dönüşür\n- İnceleme yorumları davranış yerine uygulama hakkında tartışır\n- “Yolda hallederiz” plan haline gelir\n\nİyi kapsamlı bir görev takıma bir bitiş çizgisi verir: net kabul kriterleri, minimal bir UI ve API planı ve dahil olmayanlar için açık sınırlar. Bu, “aramayı geliştir” ile inşa edilmesi ve incelenmesi kolay küçük bir değişiklik arasındaki farktır.\n\nPratik bir alışkanlık: “done” tanımını “iyi-olur”dan ayırın. “Done” çalıştırabileceğiniz kısa bir kontrol listesi (örneğin: “Arama başlığa göre sonuç döndürüyor, boşsa ‘Sonuç yok’ gösteriyor ve sorguyu URL'de tutuyor”). “Nice-to-have” synonymlar, sıralama ayarları, vurgulama, analiz gibi sonradan gelebileceklerdir. Bunları baştan etiketlemek istemsiz kapsam büyümesini önler.\n\n## Sonuçla başlayın, çözümle değil\n\nBelirsiz istekler genellikle önerilen düzeltmelerle başlar: “Bir buton ekle”, “Yeni akışa geç”, “Farklı bir model kullan.” Durup öneriyi önce bir sonuca çevirin.\n\nBasit bir format yardımcı olur: “As a [user], I want to [do something], so I can [reach a goal].” Düz ve kısa tutun. Nefes almadan söyleyemiyorsanız hâlâ çok bulanık demektir.\n\nSonra kullanıcının işi bittiğinde ne değişeceğini tanımlayın. Görünür davranışa odaklanın, uygulama detaylarına değil. Örneğin: “Formu gönderdikten sonra bir onay görüyorum ve yeni kaydı listede bulabiliyorum.” Bu net bir bitiş çizgisi yaratır ve “bir ince ayar daha”nın gizlice girmesini zorlaştırır.\n\nAyrıca neyin aynı kalacağını yazın. Kapsam dışı maddeler sınırınızı korur. İstek “onboardingi iyileştir” ise kapsama alınmayacaklar: “gösterge paneli yeniden tasarımı yok” veya “fiyatlandırma-kademesi mantığında değişiklik yok.”\n\nSon olarak, önce bir ana yolu seçin: özelliğin çalıştığını kanıtlayan tek uçtan uca dilim.\n\nÖrnek: “her yerde snapshot ekle” demek yerine şunu yazın: “As a project owner, I can restore the latest snapshot of my app, so I can undo a bad change.” Kapsam dışı: “toplu geri yükleme yok, UI yeniden tasarımı yok.”\n\n## Belirsizliği kaldıran birkaç soru sorun\n\nBelirsiz bir istek genellikle çaba eksikliği değildir. Eksik olan kararlar vardır.\n\nÖnce kapsamı sessizce değiştirecek kısıtları sorun. Son tarihler önemlidir, ama erişim kuralları ve uyumluluk gereksinimleri de önemlidir. Eğer bir platformda tier’lar ve roller varsa, baştan kimlerin özelliğe erişeceğine ve hangi planda olduğuna karar verin.\n\nSonra tek bir somut örnek isteyin. Bir ekran görüntüsü, rakip davranışı veya önceki bir ticket “daha iyi”nin gerçekte ne demek olduğunu gösterir. İsteği yapanın örneği yoksa, onlardan son kez acıyı hissettikleri zamanı tekrar etmelerini isteyin: hangi ekrandaydınız, neye tıkladınız, ne beklediniz?\n\nKenar durumlar kapsamın patladığı yerdir; bu yüzden büyük olanları erkenden adlandırın: boş veri, doğrulama hataları, yavaş veya başarısız ağ çağrıları ve “geri al”ın gerçekten ne anlama geldiği.\n\nSon olarak, başarıyı nasıl doğrulayacağınızı kararlaştırın. Test edilebilir bir çıktı olmadan görev görüşlere döner.\n\nBu beş soru genellikle belirsizliğin çoğunu ortadan kaldırır:\n\n- Kim erişecek (tier ve roller)?\n- Bitiş tarihi nedir ve en küçük kabul edilebilir sürüm hangisi?\n- Beklenen davranıştan bir örnek nedir?\n- Boş durumlarda, hatalarda ve yavaş bağlantıda ne olacak?\n\- Nasıl doğrulayacağız (spesifik kriter veya metrik)?\n\nÖrnek: “Müşteriler için özel domain ekle” isteği hangi tier’e ait olduğu, kimlerin kurabileceği, barındırma konumunun uyumluluk için önemli olup olmadığı, geçersiz DNS için hangi hatanın gösterileceği ve “done”un ne anlama geldiği (domain doğrulandı, HTTPS aktif, güvenli rollback planı) kararlaştırıldığında daha net olur.\n\n## Dağınık notları kabul kriterlerine çevirin\n\nDağınık istekler hedefleri, tahminleri ve yarım hatırlanmış kenar durumları karıştırır. İşiniz bunları herkesin zihin okumadan test edebileceği ifadelere dönüştürmektir. Aynı kriterler tasarım, kodlama, inceleme ve QA rehberi olmalıdır.\n\nBasit bir desen işleri net tutar. Given/When/Then kullanabilir veya aynı anlama gelen kısa madde biçimleri tercih edebilirsiniz.\n\n### Hızlı kabul-kriteri şablonu\n\nHer kriteri birinin çalıştırabileceği tek bir test olarak yazın:\n\n- **Given** bir başlangıç durumu, **when** kullanıcı X yapar, **then** Y olur.\n- Doğrulama kurallarını ekleyin (hangi girdiler kabul ediliyor).\n- En az bir hata durumu ekleyin (kullanıcının hangi hatayı gördüğü).\n- “Done sinyali”ni tanımlayın (QA hangi kontrolleri çalıştırır, inceleyiciler ne bekler).\n\nŞimdi uygulayın. Diyelim notta şöyle yazıyor: “Snapshot’ları kolaylaştır. Son değişiklik bozulursa geri alayım.” Bunu test edilebilir ifadeye çevirin:\n\n- Given bir projede 2 snapshot varsa, when Snapshots'ı açtığımda, then her ikisini de zaman ve kısa bir etiketle görüyorum.\n- Given bir snapshot varsa, when Roll back'e tıklayıp onaylarsam, then proje o snapshot'a geri döner ve uygulama başarılı şekilde build edilir.\n- Given proje sahibi değilsem, when rollback yapmayı denediğimde, then hata görürüm ve hiçbir şey değişmez.\n- Given bir rollback devam ediyorsa, when sayfayı yenilersem, then durumu ve nihai sonucu görmeye devam edebilirim.\n- Given rollback başarısız olursa, when işlem durduğunda, then net bir mesaj görürüm ve mevcut sürüm aktif kalır.\n\nEğer QA bu kontrolleri çalıştırıp inceleyiciler UI ve loglarda doğrulayabiliyorsa, UI ve API işlerini planlayıp bunları küçük commit'lere bölmeye hazırsınız demektir.\n\n## Minimal bir UI planı taslağı\n\nMinimal UI planı bir sözleşmedir: özelliğin çalıştığını kanıtlayan en küçük görünür değişiklik.\n\nHangi ekranların değişeceğini ve bir kişinin 10 saniyede ne fark edeceğini isimlendirerek başlayın. İstek “kolaylaştır” veya “temizle” ise bunu tek somut değişikliğe çevirin.\n\nBunu bir yeniden tasarım değil küçük bir harita olarak yazın. Örneğin: “Orders sayfası: tablo üstüne bir filtre çubuğu ekle” veya “Settings: Notifications altında yeni bir toggle ekle.” Ekranı ve kesin öğeyi isimlendiremiyorsanız, kapsam hâlâ belirsizdir.\n\n### Ana UI durumlarını tanımlayın\n\nÇoğu UI değişikliği birkaç öngörülebilir duruma ihtiyaç duyar. Yalnızca ilgili olanları yazın:\n\n- Loading\n- Empty\n- Error (yeniden deneme var mı)\n- Success (toast, inline mesaj, güncellenmiş liste)\n\n### Kullanıcının göreceği kelimeleri onaylayın\n\nUI metni de kapsamın bir parçasıdır. Onaylanması gereken etiket ve mesajları yakalayın: buton metinleri, alan etiketleri, yardımcı metin ve hata mesajları. Eğer metin hâlâ belirsizse, geçici metin olarak işaretleyin ve kim onaylayacak not edin.\n\nGerekli olmayan her şey için küçük bir “şimdi değil” notu tutun (responsive polish, gelişmiş sıralama, animasyonlar, yeni ikonlar).\n\n## Minimal API ve veri planı taslağı\n\nKapsamlı bir görev UI, backend ve veri arasında küçük, net bir sözleşme gerektirir. Amaç tüm sistemi tasarlamak değil; özelliğin çalıştığını kanıtlayacak en küçük istek ve alan setini tanımlamaktır.\n\nİhtiyacınız olan verileri ve kaynağını listeleyerek başlayın: okunabilecek mevcut alanlar, saklanması gereken yeni alanlar ve hesaplanabilecek değerler. Her alan için bir kaynak söyleyemiyorsanız, hâlâ planınız yok demektir.\n\nAPI yüzeyini küçük tutun. Birçok özellik için bir okuma ve bir yazma yeterlidir:\n\n- `GET /items/{id}` ekranı render etmek için gerekli durumu döner\n- `POST /items/{id}/update` kullanıcı değişikliklerini kabul eder ve güncellenmiş durumu döner\n\nGirdi ve çıktıları paragraf değil, düz nesneler olarak yazın. Zorunlu vs isteğe bağlı alanları, ve yaygın hatalarda (not found, validation failed) ne olacağını belirtin.\n\nVeritabanına dokunmadan önce hızlı bir auth kontrolü yapın. Kim okuyabilir, kim yazabilir bir cümlede ifade edin (örneğin: “oturum açmış her kullanıcı okuyabilir, sadece admin yazabilir”). Bu atlanırsa yeniden iş çıkar.\n\nSon olarak, neyin saklanması gerektiğine ve neyin hesaplanabileceğine karar verin. Basit bir kural: gerçekleri saklayın, görünümleri hesaplayın.\n\n## Claude Code'u kullanarak kapsamlı bir görev oluşturma\n\nClaude Code, net bir hedef ve sıkı bir kutu verdiğinizde en iyi sonucu verir. Dağınık isteği ve kısıtları (tarih, etkilenen kullanıcılar, veri kuralları) yapıştırın. Sonra kapsamlı bir çıktı isteyin ki içinde şunlar olsun:\n\n1. Kapsamın düz dille tekrarı ve kısa kabul-kriterleri checklist'i.\n2. 3–7 commitlik küçük bir sıra, her biri net bir sonuçla.\n3. Her commit için muhtemel dosya veya klasörler ve içlerinde yapılacak değişiklikler.\n4. Her commit için hızlı bir test planı (bir mutlu yol ve bir kenar durumu).\n5. Kapsam dışı notlar.\n\nClaude Code yanıt verdikten sonra onu bir inceleyici gibi okuyun. “Performansı iyileştir” veya “daha temiz yap” gibi ifadeler görürseniz, bunları ölçülebilir ifadeler isteyerek düzeltin.\n\n### Mini örnek (iyi görünene ne demek)\n\nİstek: “Aboneliği duraklatma özelliği ekle.”\n\nKapsamlı sürüm şöyle diyebilir: “Kullanıcı 1 ila 3 ay arası duraklatabilir; bir sonraki fatura tarihi güncellenir; admin duraklatma durumunu görebilir.” Kapsam dışı: “Prorasyon değişiklikleri yok.”\n\nBundan sonra commit planı pratik olur: bir commit DB ve API şeklini içinsin, bir commit UI kontrolleri, bir commit doğrulama ve hata durumları, bir commit uçtan uca testler için.\n\n## Çalışmayı küçük, incelenebilir commit'lere bölün\n\nBüyük değişiklikler hataları gizler. Küçük commit'ler incelemeleri hızlandırır, rollback'leri güvenli kılar ve kriterlerden sapmayı fark etmenizi sağlar.\n\nYararlı bir kural: her commit bir davranışı açmalı ve bunu kanıtlayacak küçük bir yol içermelidir.\n\nYaygın bir sıra şöyle görünür:\n\n- Veri modeli veya migration (gerekirse) + testler\n- API davranışı ve doğrulama\n- UI bağlama, boş ve hata durumlarıyla\n- Loglama veya analiz sadece gerekiyorsa, sonra küçük cilâ\n\nHer commit'i odaklı tutun. “Buradayken” refactor'larından kaçının. UI basit olsa bile uygulamanın uçtan uca çalışır kalmasını sağlayın. Migration, davranış ve UI'yi tek commit'e sıkıştırmayın, güçlü bir nedeniniz yoksa.\n\n## Adım adım: “Raporları dışa aktar”\n\nBir paydaş der: “Raporları dışa aktarabilir miyiz?” Bu çok seçim saklar: hangi rapor, hangi format, kim dışa aktarabilir ve teslimat nasıl çalışır.\n\nTasarımı değiştiren yalnızca gerekli soruları sorun:\n\n- v1 için hangi rapor tipleri kapsamda?\n- v1 için hangi format gerekli (CSV, PDF)?\n- Kim dışa aktarabilir (adminler, belirli roller)?\n- Direkt indirme mi yoksa e-posta ile mi teslim?\n- Limitler var mı (tarih aralığı, satır sayısı sınırı, zaman aşımı)?\n\nCevapları şöyle varsayın: “Sales Summary raporu, sadece CSV, manager rolü, direkt indirme, son 90 gün.” Şimdi v1 kabul kriterleri somut olur: yöneticiler Sales Summary sayfasında Export'a tıklayabilir; CSV ekran tablosundaki sütunlarla eşleşir; export mevcut filtreleri dikkate alır; 90 günden daha fazla aralık seçilirse net bir hata gösterir; 50k satıra kadar indirme 30 saniye içinde tamamlanır.\n\nMinimal UI planı: tablo aksiyonları yakınında bir Export butonu, oluşturulurken bir yükleniyor durumu ve kullanıcının sorunu nasıl düzelteceğini söyleyen bir hata mesajı (örneğin “90 gün veya daha az seçin”).\n\nMinimal API planı: filtreleri alan ve oluşturulmuş CSV'yi dosya yanıtı olarak dönen tek bir endpoint, tabloyla aynı sorguyu yeniden kullanan ve sunucu tarafında 90 günlük kuralı uygulayan bir yapı.\n\nSonra bunu birkaç sıkı commit'te gönderin: önce sabit mutlu yol için endpoint, sonra UI bağlama, sonra doğrulama ve kullanıcıya dönük hata mesajları, sonra testler ve dokümantasyon.\n\n## Yaygın kapsam hataları (ve nasıl kaçınılır)\n\n### Gizli gereksinimler sızar\n\n“Takım rolleri ekle” gibi istekler davet etme, düzenleme ve mevcut kullanıcılar için ne olacağı hakkında kurallar saklayabilir. Tahmin yaptığınızı fark ederseniz, varsayımları yazın ve bunları soru veya açık kural haline getirin.\n\n### UI cilâsı ana davranışla karışır\n\nBir görev hem “çalışsın” hem de “göze hoş görünsün” deyince günler kaybolur. İlk görev davranış ve veriye odaklansın. Stil, animasyon ve boşlukları takip eden bir görev haline bırakın; eğer bunlar kullanılabilirlik için gerekli değilse sonraya alın.\n\n### Tüm kenar durumlarını v1'de çözmeye çalışırsınız\n\nKenar durumlar önemlidir ama hepsi ilk sürüme girmez. Güveni sarsabilecek birkaçını ele alın (çift gönderimler, çakışan düzenlemeler) ve geri kalanları açık notlarla erteleyin.\n\n### Hata durumları ve izinler “sonra”ya iter\n\nYazmazsanız, kaçırırsınız. Kabul kriterlerine en az bir olumsuz yol ve en az bir izin kuralı dahil edin.\n\n### Doğrulanamayan kriterler\n\nHızlı veya sezgisel gibi ifadelerden kaçının; bir sayı veya somut kontrol ekleyin. Bunları incelemede kanıtlayabileceğiniz şekilde değiştirin.\n\n## Koda başlamadan önce hızlı kontrol listesi\n\nBir ekip arkadaşının zihin okumadan inceleyip test edebilmesi için görevi sabitleyin:\n\n- Sonuç ve kapsam dışı: sonuç için bir cümle + 1–3 açık kapsam dışı maddesi.\n- Kabul kriterleri: düz dilde 5–10 test edilebilir kontrol.\n- UI durumları: minimum loading, empty, error ve success durumları.\n- API ve veri notları: en küçük endpoint şekli ve veri değişiklikleri, kim okuyup yazabilir.\n- Commit planı ve testler: 3–7 commit, her biri kısa kanıtla.\n\nÖrnek: “Saved searches ekle” işi “Kullanıcı bir filtreyi kaydedip sonra tekrar uygulayabilir” olur; kapsama alınmayacaklar: “paylaşım yok”, “sıralama değişikliği yok.”\n\n## Sonraki adımlar: inşa ederken kapsamı sabit tutun\n\nBir kez kapsamlanmış bir göreviniz olduğunda, onu koruyun. Koda başlamadan önce istekte bulunanlarla hızlı bir akıl kontrolü yapın:\n\n- Kabul kriterilerini okuyun ve sonucun eşleştiğini onaylayın.\n- İzinleri, boş durumları ve hata davranışlarını teyit edin.\n- Kapsam dışı olanları tekrar onaylayın.\n- Kriterleri karşılayan en küçük UI ve API değişikliklerinde anlaşın.\n- Nasıl demo yapılacağına ve “done”un neye benzeyeceğine karar verin.\n\nSonra kriterleri iş yapılan yerde saklayın: ticket'ta, PR açıklamasında ve ekibin gerçekten baktığı her yerde.\n\nEğer Koder.ai (koder.ai) üzerinde geliştiriyorsanız, önce planı kilitleyip sonra buradan kod üretmek işe yarar. Planning Mode bu iş akışına uygundur; snapshot ve rollback denemeler yapmanız gerektiğinde işleri güvenli tutar.\n\nYeni fikirler geliştirme sırasında ortaya çıkarsa, kapsamı sabit tutun: bunları takip listesine yazın, kriterleri değiştiriyorsa durup yeniden kapsamlayın ve commitleri her seferinde tek bir kritere bağlayın.SSS
Paylaş