User Story, INVEST Tekniği ve Kabul Kriterleri: Agile’ın En Küçük Temel Taşları

Taşkın Cengiz
4 min readNov 5, 2023

--

Yazılım geliştirme projelerinin başarılı bir şekilde tamamlanabilmesi için etkili bir iletişim ve gereksinimlerin net bir şekilde anlaşılması önemlidir. Bu noktada “user story”ler, bir yazılım ürününün kullanıcılarının ihtiyaçlarını ve beklentilerini anlamak, iletmek ve takip etmek için güçlü bir araçtır. Bu yazıda, “user story” kavramını detaylı bir şekilde inceleyeceğiz ve nasıl etkili bir şekilde yazabileceğinizi öğreneceksiniz.

Nedir bu User Story ?

User story, bir yazılımın kullanıcıları tarafından beklenecek bir işlevi veya özelliği tanımlayan kısa bir açıklamadır.

Bir user story, genellikle “As a [kullanıcı rolü], I want to [işlev veya özellik], so that [neden veya fayda]” formatında yazılır. Bu format, bir user story’nin kimin, neyi ve neden istediğini net bir şekilde ifade etmesine yardımcı olur.

17 Useful user story examples to get you started — Justinmind

User Story Yazarken Dikkat Edilmesi Gerekenler

User story’ler yazılırken dikkat edilmesi gereken bazı önemli noktalar bulunmaktadır. İşte bunlardan bazıları:

  • User story’ler kullanıcı odaklı olmalıdır.
  • Story, tek bir işlevi veya özelliği tanımlamalıdır.
  • User story’ler belirli bir hedef veya nedeni ifade etmelidir.
  • Story’ler mümkün olduğunca basit ve anlaşılır olmalıdır.
Try to INVEST in Not Needing a Definition of Ready | Agileety

I.N.V.E.S.T Tekniği:

INVEST tekniği, yazılım geliştirme süreçlerinde kullanılan ve user story’lerin (kullanıcı hikayeleri) kalitesini artırmayı amaçlayan bir yaklaşımdır. INVEST, user story’lerin oluşturulması ve değerlendirilmesi aşamasında dikkate alınması gereken altı önemli özelliği temsil eden bir akronimdir. İşte INVEST tekniğinin açılımı ve her bir harfinin anlamı:

1. **I — Independent (Bağımsız):** Her bir user story, diğer hikayelerden bağımsız olmalıdır. Bu, her hikayenin tek başına gerçekleştirilebilir ve test edilebilir olması gerektiği anlamına gelir. Bağımsızlık, hikayelerin ekip içinde daha iyi dağıtılabilir ve yönetilebilir olmasını sağlar.

2. **N — Negotiable (Müzakereli):** User story’ler müzakerelidir, yani takım üyeleri ve paydaşlar arasında açık bir şekilde görüşülebilir ve değiştirilebilir olmalıdır. Bu, hikayelerin gereksinimlerinin ve detaylarının sürekli olarak tartışılabilir ve uygun şekilde ayarlanabilir olduğu anlamına gelir.

3. **V — Valuable (Değerli):** Her bir user story, bir değer taşımalıdır. Yani kullanıcılar veya iş sahipleri için anlamlı ve faydalı olmalıdır. Değer, genellikle bir kullanıcı problemi veya ihtiyacını çözmek, iş süreçlerini iyileştirmek veya iş hedeflerine katkı sağlamak şeklinde ifade edilir.

4. **E — Estimable (Tahmin Edilebilir):** User story’lerin ne kadar zaman, çaba ve kaynak gerektireceğini tahmin etmek mümkün olmalıdır. Bu, hikayelerin bir geliştirme sürecine dahil edilip edilmemesi konusunda daha iyi kararlar alınabilmesini sağlar.

5. **S — Small (Küçük):** User story’ler küçük olmalıdır. Bu, her hikayenin göreceli olarak küçük bir işi veya özelliği temsil etmesi gerektiği anlamına gelir. Küçük hikayeler, daha hızlı bir şekilde geliştirilebilir, test edilebilir ve dağıtılabilir.

6. **T — Testable (Test Edilebilir):** Her user story, test edilebilir olmalıdır. Yani hikayenin tamamlanıp tamamlanmadığını, beklenen sonuçları sağlayıp sağlamadığını testlerle doğrulamak mümkün olmalıdır. Bu, hikayelerin kabul kriterlerini ve başarı ölçütlerini içermesi gerektiği anlamına gelir.

INVEST tekniği, user story’lerin daha net, ölçülebilir ve kullanıcı odaklı olmasını sağlayarak yazılım geliştirme süreçlerini iyileştirmeye yardımcı olur. Bu teknik, Scrum ve benzeri çevik yazılım geliştirme metodolojileri ile sıkça kullanılır.

Örnek User Story’ler

User story’lerin nasıl yazılacağını daha iyi anlamak için bazı örnekler verelim:

  1. Bir e-ticaret sitesi kullanıcısı olarak, hesabımı güncellemek istiyorum, böylece iletişim bilgilerimi güncel tutabilirim.”
  2. X platformunda alışveriş yapan müşteri olarak, sepetimdeki ürünleri sipariş vermeden önce düzenleyebilmek istiyorum, böylece yanlışlıkla yanlış ürünü sipariş vermem.”
  3. Y şirketindeki bir proje yöneticisi olarak, ekip üyelerine görevler atamak istiyorum, böylece projenin ilerleyişini takip edebilirim.”

Acceptance Criterias / Kabul kriterleri:

Kabul Kriterleri (Acceptance Criteria), bir kullanıcı hikayesinin tamamlanıp tamamlanmadığını değerlendirmek için kullanılan bir dizi şarttır. Kabul kriterleri, kullanıcı hikayesinin müşterinin gereksinimlerini karşıladığına dair güvence sağlar.

Kabul Kriterlerinin Yazılması

Kabul kriterleri, kullanıcı hikayesinin açıklamasının ardından yazılmalıdır. Kabul kriterleri, kullanıcı hikayesinin kapsamını ve amacını tanımlamaya yardımcı olmak için tasarlanmıştır. Kabul kriterleri, net ve açık bir şekilde yazılmalı ve ölçülebilir, tamamlayabilir, test edilebilir olmalıdır.

Kabul Kriterlerinin Örnekleri:

  • İşlevsel kabul kriteri: Bir kullanıcının bir ürün satın alabilmesini sağlamak.
  • Performans kabul kriteri: Bir ürünün 10 saniye içinde yüklenmesini sağlamak.
  • Güvenlik kabul kriteri: Bir kullanıcının hesabının güvenli olmasını sağlamak.
  • Uygulama kabul kriteri: Kullanıcı hikayesinin mobil cihazlarda düzgün çalışması.

Özetle kabul kriterleri, Agile sistemlerde önemli bir araçtır. Kabul kriterleri, kullanıcı hikayesinin kapsamını ve amacını tanımlamaya, geliştiricilerin ve müşterilerin kullanıcı hikayesi üzerinde aynı fikirde olmalarını sağlamaya ve kullanıcı hikayesinin tamamlanıp tamamlanmadığını değerlendirmeye yardımcı olur.

Sonuç olarak:

User story, INVEST tekniği ve kabul kriterleri, yazılım geliştirme süreçlerinde ayrılmaz bir üçlü oluşturur. User story’ler, projenin hedef kitlesinin ihtiyaçlarını kullanıcı odaklı bir şekilde ifade ederken, INVEST tekniği bu hikayelerin kalitesini artırmada kilit bir rol oynar. Kabul kriterleri, yazılımın işlevselliğini ve performansını test etmek ve doğrulamak için kullanılır. Bir arada kullanıldıklarında, bu kavramlar geliştirme ekibine daha iyi rehberlik eder, gereksinimlerin daha iyi anlaşılmasını sağlar ve yazılımın son kullanıcıların beklentilerini karşılayacak şekilde geliştirilmesine yardımcı olur. Bu üç kavramın etkili bir şekilde kullanılması, yazılım projelerinin başarılı bir şekilde tamamlanmasına katkı sağlar ve müşteri memnuniyetini artırır.

#Agile #Invest #UserStory #Acceptance #Criterias

--

--

No responses yet