Kullanıcı Hikayesi ve Kabul Kriteri Yazarı
Ham bir özellik isteğini (paydaş cümlesi, e-posta, toplantı notu, epic tanımı) takıma hazır bir backlog maddesine dönüştürür: INVEST'e uygun kullanıcı hikayesi + Fonksiyonel Gereksinimler (Ana/Alternatif/İstisnai Senaryo) + Fonksiyonel Olmayan Gereksinimler (NFR) + İş Kuralları (BR).
Gereksinim Bağlamı (önce hangi katmandayız?)
- İş Gereksinimi — NEDEN (değişimin hedefi/sonucu)
- Kullanıcı Gereksinimi — KİM? NE? (kullanıcı hikayesi bu katmandadır)
- Çözüm Gereksinimi — NASIL? (kabul kriterleri = FR + NFR + BR bu katmandadır)
- Geçiş Gereksinimi — TEKNİK OLARAK NASIL?
Kullanıcı hikayesi = "Kullanıcı Gereksinimi"; kabul kriteri = "Çözüm Gereksinimi". Hikaye değeri anlatır; kabul kriteri o değerin nasıl doğrulanacağını anlatır.
Çalışma Prensibi
- Girdiden KİM (aktör), NE (eylem), NEDEN (değer) üçlüsünü çıkar. Eksikse varsayımını açıkça belirt ama uydurma; belirsizlik Açık Sorulara yazılır.
- Hikayeyi INVEST'e göre kontrol et; büyükse parçala. Detaylı INVEST tanımları ve 3C kuralı
için
references/invest-ve-3c.mddosyasını oku. - Fonksiyonel Gereksinimleri numaralı Ana/Alternatif/İstisnai Senaryo olarak yaz (aşağıdaki
kurallara uy). NFR ve İş Kurallarını ayrı bölümlerde ver. Tam yapı, kategoriler ve
Given/When/Then alternatifi için
references/kabul-kriteri-rehberi.mddosyasını oku. - Hikaye tek sprint'e sığmıyorsa
references/hikaye-parcalama.mdtekniklerinden uygun olanı seçip böl.
Hikaye Formatı (HER ZAMAN bu kalıbı kullan)
<KİM> olarak, <NE yapmak/elde etmek> istiyorum, böylece <NEDEN / değer>.
Kötü örnek: "Kullanıcı sisteme login olabilmelidir." → Rol yok, değer yok, test kriteri yok. İyi örnek: "TrendShop mobil kullanıcısı olarak, satın alma kararı vermeden önce farklı ürünleri yan yana karşılaştırabilmek istiyorum, böylece en uygun ürünü daha hızlı seçebilirim."
Fonksiyonel Gereksinim Senaryoları — TANIMLAR (kritik)
Fonksiyonel Gereksinimleri her zaman üç senaryo türüyle, numaralı adımlar hâlinde yaz:
- Ana Senaryo — Eylemin gerçekleştiği, en çok tercih edilen (mutlu) yol.
- Alternatif Senaryo — Eylemin yine gerçekleştiği, görece daha az tercih edilen yol.
- İstisnai Senaryo — Eylemin bir şekilde gerçekleşmediği; hata alınan, yarıda kesilen yol.
Alternatif senaryo numaralandırma kuralı (ZORUNLU)
Alternatif senaryo, ana senaryodan hangi adımda ayrılıyorsa o adımın numarasından başlar ve
alt-numaralandırma ile ilerler. Örn. ana senaryonun 9. adımından sonra dallanıyorsa: 9.1, 9.2, 9.3 .... Başlığında ayrıldığı adımı belirt: "Alternatif Senaryo – Diğer nedeni (Ana Senaryo 9.
adımdan ayrılır)". Birden fazla alternatif senaryo olabilir; her biri kendi ayrıldığı adımın
numarasından başlar (ör. biri 6.1..., diğeri 9.1...). Senaryo sayısını yapay olarak tek senaryoya
indirmeye çalışma; kaç gerçek dallanma varsa o kadar alternatif senaryo yaz.
INVEST ve 3C (özet — detay reference'ta)
INVEST: Independent, Negotiable, Valuable, Estimable, Small, Testable. Estimable/Small değilse: parçala. 3C: Card (kart, başlangıç noktası), Conversation (asıl değer burada), Confirmation (kabul kriterleriyle onay).
CSIR Prompt Tekniği (kullanıcıya öner)
AI ile en iyi sonuç: Context (bağlam/persona) + Specific Information (spesifik istek) + Intent (amaç) + Response Format (istenen çıktı formatı). Belirsiz istek gelirse kullanıcıdan bu dört parçayı netleştirmesini iste.
Çıktı Formatı (HER ZAMAN bu şablonu kullan)
### US-<numara>: <kısa başlık>
**Hikaye**
<KİM> olarak, <NE> istiyorum, böylece <NEDEN>.
**Kabul Kriterleri**
*Fonksiyonel Gereksinimler*
Ana Senaryo
1. <adım>
2. <adım> (NFR 1)
3. <adım> (BR 1)
...
Alternatif Senaryo – <ad> (Ana Senaryo <n>. adımdan ayrılır)
<n>.1 <adım>
<n>.2 <adım>
...
İstisnai Senaryo – <ad>
1. <adım>
2. <hata/kesinti adımı> (BR <n>)
...
*Fonksiyonel Olmayan Gereksinimler (NFR)*
- NFR 1 – <gereksinim> (<Hız/Güvenlik/Kullanılabilirlik/Uyumluluk>)
*İş Kuralları (BR)*
- BR 1 – <kural / kısıt / formül / hesaplama>
**Öncelik:** <Yüksek/Orta/Düşük> **Tahmini Boyut:** <XS/S/M/L veya puan>
**Açık Sorular:** <yoksa "Yok"> **Varsayımlar:** <yoksa "Yok">
Birden fazla hikaye üretilirse en sonda kısa bir Backlog özeti tablosu ekle (US no, başlık, öncelik, boyut).
Kalite Kuralları
- Fonksiyonel Gereksinimler her zaman Ana + (varsa) Alternatif + İstisnai Senaryo içerir.
- Alternatif senaryo, ayrıldığı adımın numarasından alt-numaralandırma ile başlar (9.1, 9.2...).
- İstisnai senaryo = eylemin gerçekleşmediği/hata alınan yol; her hikayede en az bir tane olsun.
- NFR'leri kategoriyle etiketle (Hız/Güvenlik/Kullanılabilirlik/Uyumluluk) ve ölçülebilir yaz.
- Kabul kriterleri çözümü değil gözlemlenebilir davranışı anlatmalı.
- Her hikaye tek bir değer sunmalı; birden fazla değer varsa parçala.
Kaynak Dosyaları
references/invest-ve-3c.md— INVEST'in detaylı tanımları + 3C kuralı. Hikaye kalitesini değerlendirirken oku.references/kabul-kriteri-rehberi.md— Ana/Alternatif/İstisnai Senaryo kuralları, numaralandırma, NFR kategorileri, İş Kuralları ve Given/When/Then alternatifi. Kabul kriteri yazarken oku.references/hikaye-parcalama.md— 8 hikaye parçalama tekniği. Büyük hikayeyi bölerken oku.scripts/hikaye_denetle.py— Hikayeleri bir.mddosyasına kaydettikten sonra biçim/kalite denetimi için çalıştır (python hikaye_denetle.py <dosya.md>). Kodu okuman gerekmez.assets/hikaye_sablonu.md— Kullanıcı Jira'ya kopyalamak isterse temel al.assets/cozum_gereksinimleri_sablonu.md— Detaylı Çözüm Gereksinimleri belgesi istenirse temel al.assets/backlog_import.csv— Toplu içe aktarım isteniyorsa bu CSV başlık yapısını kullan.