Kullanıcı Hikayeleri neden gereklidir ve projelerde nasıl kullanılır?
Kullanıcı Hikayeleri ne işe yarar?
Kullanıcı Hikayeleri, ekibin sürekli olarak son kullanıcıları düşünmesini sağlar. Bu, sadece teknik özellikleri uygulamak yerine, sorunları gerçekten çözen ve hedef kitlenin ihtiyaçlarını karşılayan ürünler geliştirmeye yardımcı olur.
Basit hikaye formatı, proje katılımcıları — geliştiriciler, tasarımcılar, yöneticiler ve müşteriler — arasındaki iletişimi kolaylaştırır. Bu, yanlış anlaşılma ve gereksinimlerin yanlış yorumlanma riskini azaltır.
Kullanıcı Hikayeleri, geliştirme planlarını kolayca ayarlamayı sağlar. Kapsamlı belgeleri yeniden yazmaya gerek kalmadan hikayeleri ekleyebilir, kaldırabilir veya önceliklerini yeniden belirleyebilirsiniz.
Kompakt hikaye formatı, işlevselliği uygulamak için gereken çaba ve süreyi tahmin etmeyi kolaylaştırır.
İşlevselliği küçük hikayelere bölmek, Agile ilkelerine uygun olarak ürünü aşamalı olarak geliştirmenizi sağlar.
Bir projede Kullanıcı Hikayelerini kullanma
Gereksinimlerin toplanması:
Ekip, uzun teknik gereksinim listeleri oluşturmak yerine, müşteriler ve potansiyel kullanıcılarla konuşarak kullanıcı hikayelerini toplar.
Önceliklendirme:
Hikayeler önem derecesine göre kolayca sıralanabilir; bu da hangi işlevselliğin önce geliştirileceğini belirlemeye yardımcı olur.
Sprint planlaması:
Scrum'da, sprint backlog'u doldurmak için kullanıcı hikayeleri kullanılır. Ekip, mevcut sprintte uygulanacak hikayeleri seçer.
Geliştirme:
Geliştiriciler, işlevselliği oluşturmak için hikayeleri temel alır. Ayrıntıları netleştirmek ve uygulamanın kullanıcı beklentilerini karşılayıp karşılamadığını kontrol etmek için hikayelere başvurabilirler.
Test:
Kalite güvence uzmanları, test senaryolarını oluştururken Kullanıcı Hikayelerini temel alır ve uygulanan işlevselliğin hikaye açıklamasına uygun olup olmadığını kontrol eder.
İlerlemeyi takip etme:
Tamamlanan hikayeler, projenin ilerlemesinin net bir göstergesidir. Bu, ekibin ve müşterilerin ürünün nasıl geliştiğini görmelerine yardımcı olur.
İterasyonlar ve iyileştirmeler:
Bir hikaye uygulandıktan sonra, ekip kullanıcılardan geri bildirim alabilir ve işlevselliği iyileştirmek için yeni hikayeler oluşturabilir.
Kullanıcı Hikayesi nasıl yazılır: adım adım kılavuz
Etkili bir kullanıcı hikayesi yazmak, kullanıcı ihtiyaçlarını anlamayı ve fikirleri net bir şekilde ifade etmeyi gerektirir.
Kullanıcıyı tanımlayın:
Öncelikle, işlevselliğin kime yönelik olduğunu net bir şekilde tanımlayın. Bu, belirli bir rol (örneğin, "sistem yöneticisi") veya daha geniş bir kullanıcı kategorisi ("yeni başlayan fotoğrafçı") olabilir.
Eylemi tanımlayın:
Kullanıcının tam olarak ne yapmak istediğini belirtin. Etkin fiiller ve somut ifadeler kullanın.
Değeri belirtin:
Kullanıcının bu işlevselliğe neden ihtiyaç duyduğunu açıklayın. Bu işlevsellik ne gibi bir fayda veya avantaj sağlayacak?
Standart formatı kullanın:
Klasik Kullanıcı Hikayesi yapısı şu şekildedir:
"[Kullanıcı rolü] olarak, [değer/fayda] elde etmek için [eylem] yapmak istiyorum."
Kabul kriterlerini ekleyin:
Hikayenin tamamlanmış sayılacağı koşulları tanımlayın. Bu, belirsizliği önlemeye yardımcı olur ve test etmeyi kolaylaştırır.
INVEST ilkesini izleyin:
- Bağımsız: hikaye diğer hikayelere bağlı olmamalıdır.
- Müzakere edilebilir: Ayrıntılar tartışma yoluyla netleştirilebilir.
- Değerli: Hikaye, kullanıcıya veya işletmeye değer katmalıdır.
- Tahmin Edilebilir: Ekip, gereken çabayı tahmin edebilmelidir.
- Küçük: Hikaye, tek bir sprintte uygulanabilecek kadar küçük olmalıdır.
- Test edilebilir: Hikayenin tamamlandığının doğrulanabilmesi gerekir.
Teknik ayrıntılardan kaçının:
Teknik uygulamaya değil, kullanıcı ihtiyaçlarına odaklanın. Teknik detaylar ayrı olarak tartışılabilir.
Basit bir dil kullanın:
Hikayeleri, teknik geçmişinden bağımsız olarak herhangi bir ekip üyesinin anlayabileceği şekilde yazın.
Eksiksizlik kontrolü yapın:
Hikayenin "kim?", "ne?" ve "neden?" sorularını yanıtladığından emin olun.
Geri bildirim alın:
Hikayeyi ekip ve paydaşlarla tartışın. Ayrıntıları netleştirin ve gerekli değişiklikleri yapın.
Yazma sürecine örnek:
- İlk fikir: "Kullanıcılar fotoğraf yükleyebilmelidir."
- Kullanıcıyı belirleme: "Fotoğrafçılar fotoğraf yükleyebilmelidir."
- Eylemi ekleme: "Fotoğrafçılar yüksek çözünürlüklü fotoğraf yükleyebilmelidir."
- Değerin belirtilmesi: "Fotoğrafçılar, müşterilere satmak üzere yüksek çözünürlüklü fotoğraflar yükleyebilmelidir."
- Nihai versiyon: "Profesyonel bir fotoğrafçı olarak, platformdaki müşterilere satabilmek için yüksek çözünürlüklü fotoğraflar yüklemek istiyorum."
Kullanıcı hikayesi şablonu ve örnekleri
Standart kullanıcı hikayesi şablonu basit ve etkilidir. Üç temel unsurdan oluşur: kullanıcı rolü, istenen eylem ve beklenen fayda:
"[Kullanıcı rolü] olarak, [değer/fayda] elde etmek için [eylem] yapmak istiyorum."
Bu şablon netlik sağlar ve odak noktasını kullanıcı ihtiyaçlarında tutar. Bunu projenizin bağlamına ve ihtiyaçlarına göre uyarlayabilirsiniz.
Farklı alanlara yönelik kullanıcı hikayesi örnekleri:
E-ticaret:
"Bir alışverişçi olarak, bir sonraki mağaza ziyaretimde ürünleri kolayca bulabilmek için ürünleri istek listesine kaydetmek istiyorum."
Bankacılık uygulaması:
"Bir hesap sahibi olarak, şüpheli faaliyetleri hızlıca tespit edebilmek için büyük tutarlı işlemler hakkında bildirim almak istiyorum."
Sosyal ağ:
"Bir kullanıcı olarak, içeriklerimi kimin görebileceğini kontrol edebilmek için paylaşımlarımın gizlilik ayarlarını yapmak istiyorum."
Eğitim platformu:
"Bir öğrenci olarak, hangi konulara daha fazla dikkat etmem gerektiğini anlayabilmek için her dersteki ilerlememi takip etmek istiyorum."
Proje yönetimi:
"Bir proje yöneticisi olarak, görevleri etkili bir şekilde dağıtabilmek için her bir ekip üyesinin iş yükünü görmek istiyorum."
Sağlık sistemi:
"Bir doktor olarak, bilinçli tedavi kararları verebilmek için hastanın tıbbi geçmişine gerçek zamanlı olarak erişmek istiyorum."
Seyahat uygulaması:
"Bir turist olarak, internet erişimi olmadan da yolumu bulabilmek için şehir haritalarını çevrimdışı olarak kaydetmek istiyorum."
İK sistemi:
"Bir İK yöneticisi olarak, işgücü kapasitesini etkili bir şekilde planlayabilmek için çalışanların tatillerini otomatik olarak takip etmek istiyorum."
İyi bir Kullanıcı Hikayesi için kriterler
İyi yazılmış bir kullanıcı hikayesi, başarılı bir Agile projesinin temel unsurlarından biridir. Kullanıcı hikayelerinizin etkili olmasını sağlamak için, INVEST ilkesi olarak bilinen aşağıdaki kriterleri kullanın:
Hikaye kendi içinde tam olmalı ve diğer hikayelerin uygulanmasına bağlı olmamalıdır. Bu, herhangi bir sırayla esnek planlama ve uygulama imkanı sağlar.
Hikaye, ayrıntıların tartışılmasına ve iyileştirilmesine olanak sağlamalıdır. Katı bir teknik gereklilik değil, daha çok diyalog için bir başlangıç noktası olmalıdır.
Her hikaye, kullanıcıya veya işletmeye belirli bir değer sağlamalıdır. Kullanıcıya net bir faydası olmayan teknik görevleri tanımlayan hikayelerden kaçının.
Ekip, hikayeyi hayata geçirmek için gereken çabayı tahmin edebilmelidir. Bir hikaye tahmin edilemeyecek kadar belirsizse, detaylandırılması veya daha küçük parçalara bölünmesi gerekir.
Hikaye, bir sprint içinde uygulanabilecek kadar kompakt olmalıdır. Çok büyük hikayelerin tahmini, planlanması ve uygulanması daha zordur.
Hikayenin tamamlanıp tamamlanmadığının doğrulanabilmesi gerekir. Net kabul kriterleri, hikaye üzerindeki çalışmanın ne zaman tamamlandığının belirlenmesine yardımcı olur.
İyi bir Kullanıcı Hikayesinin diğer özellikleri:
Hikaye, sistemin veya geliştiricinin değil, kullanıcının bakış açısıyla yazılmalıdır. Teknik bilgisi olmayan kişilerin de anlayabileceği bir dil kullanılmalıdır.
Belirsizlik ve muğlaklıktan kaçının. Spesifik, ölçülebilir terimler kullanın.
Hikaye, projenin mevcut hedefleri ve kullanıcı ihtiyaçlarıyla uyumlu olmalıdır. Hikayelerin alaka düzeyini korumak için düzenli olarak gözden geçirin ve güncelleyin.
Her hikaye benzersiz bir işlevselliği tanımlamalıdır. Diğer hikayelerle tekrarlardan veya çakışmalardan kaçının.
Hikaye, çalışmaya başlamak için yeterli bilgiyi içermelidir. Aynı zamanda, uygulama sırasında tartışılması daha uygun olan ayrıntılarla aşırı yüklenmemelidir.
Hikayenin genel ürün vizyonuna ve stratejik hedeflerine uygun olduğundan emin olun.
Kullanıcı Hikayelerinin Artıları ve Eksileri
Kullanıcı hikayeleri, Agile metodolojilerinin ayrılmaz bir parçası haline gelmiştir, ancak her araç gibi bunların da güçlü ve zayıf yönleri vardır. Kullanıcı Hikayelerini kullanmanın başlıca avantaj ve dezavantajlarına bir göz atalım.
Avantajlar
- Kullanıcı odaklılık;
- Daha iyi iletişim;
- Esneklik ve uyarlanabilirlik;
- Kolay önceliklendirme;
- Aşamalı geliştirme;
- Daha iyi tahmin ve planlama.
Dezavantajlar
- Ürün vizyonunun parçalanma riski:
Tek tek hikayelere odaklanmak, ürünün bütününü gözden kaçırmaya yol açabilir. Hikayeleri sürekli olarak projenin genel hedefleri ve mimarisiyle ilişkilendirmek önemlidir.
- İşlevsel olmayan gereksinimleri tanımlamada zorluk:
Kullanıcı Hikayeleri, teknik yönlerden veya performans gereksinimlerinden ziyade işlevselliği tanımlamaya daha uygundur. Sistemi tam olarak tanımlamak için ek belgelere ihtiyaç duyulabilir.
- İfade kalitesine bağımlılık:
Kötü yazılmış hikayeler, yanlış anlamalara ve uygulama hatalarına yol açabilir. Hikaye yazma becerilerinin sürekli olarak geliştirilmesi gerekir.
- Ayrıntıların gözden kaçma riski:
Hikayelerin kısalığı, önemli teknik veya iş detaylarının kaybolmasına neden olabilir. Hikayeler, ayrıntılı tartışmalar ve dokümantasyonla desteklenmelidir.
- Çok sayıda hikayeyi yönetmenin zorluğu:
Büyük projelerde, yönetilmesi zor olan çok sayıda hikaye birikebilir. Bunları düzenlemek ve takip etmek için etkili araçlar ve uygulamalar gereklidir.
- Mimariye yeterince önem verilmemesi riski:
Küçük, birbirinden bağımsız hikayelere odaklanmak, genel sistem mimarisine yeterince dikkat edilmemesine yol açabilir. Tek tek hikayeleri hayata geçirirken mimari bütünlüğü korumak arasında bir denge kurmak önemlidir.
- Proje ilerlemesini değerlendirmede zorluk:
Tamamlanan hikayelerin sayısı, her zaman genel proje ilerlemesini doğru bir şekilde yansıtmayabilir. Projenin durumunu tam olarak anlamak için ek ölçütler ve değerlendirme yöntemlerine ihtiyaç vardır.
Agile'da kullanıcı hikayeleriyle çalışma
Geliştirmenin farklı aşamalarında kullanıcı hikayeleriyle çalışmanın temel yönlerine bir göz atalım:
- Hikayeleri oluşturma ve toplama:
- Tüm ekip ve paydaşlarla hikaye haritalama oturumları düzenleyin.
- Fikir üretmek için kullanıcı görüşmeleri, rakip analizi ve beyin fırtınası gibi teknikleri kullanın.
- Teknik uygulama ayrıntılarına değil, kullanıcı değerine odaklanın.
- Önceliklendirme :
- Ürün birikim listesindeki hikayelerin önceliklerini düzenli olarak gözden geçirin ve güncelleyin.
- MoSCoW (Olması Gereken, Olması İstenen, Olabilir, Olmayacak) veya çeşitli kriterlere göre ağırlıklı puanlama gibi teknikleri kullanın.
- İş değeri, riskler, bağımlılıklar ve her bir hikayeyi uygulamak için gereken çabayı göz önünde bulundurun.
- Ayrıntılandırma ve iyileştirme:
- Ekibin hikayeleri tartışıp iyileştirdiği düzenli iş listesi iyileştirme oturumları düzenleyin.
- Her hikayeye, ne zaman tamamlandığını açıkça tanımlamak için kabul kriterleri ekleyin.
- Gerekirse, büyük hikayeleri INVEST ilkesine uygun şekilde daha küçük hikayelere bölün.
- Planlama:
- Scrum'da sprint planlaması veya diğer Agile yaklaşımlarındaki yinelemeler için temel olarak Kullanıcı Hikayelerini kullanın.
- Planning Poker gibi tekniklerle hikayelerin karmaşıklığını tahmin edin.
- Ekibin kapasitesini göz önünde bulundurun ve sprint için doğru sayıda hikaye seçin.
- Geliştirme:
- Tüm ekip (geliştiriciler, test uzmanları, tasarımcılar) ile detayları tartışarak bir hikayenin uygulanmasına başlayın.
- Hikayeleri, geliştirme ve test görevlerini oluşturmak için temel olarak kullanın.
- Görev panosundaki hikayenin durumunu düzenli olarak güncelleyin.
- Test:
- Hikayedeki kabul kriterlerine dayalı olarak test senaryoları oluşturun.
- Her hikaye uygulandıkça sürekli test yapın.
- Uygulamanın kullanıcı beklentilerini karşıladığını doğrulamak için Ürün Sahibini sürece dahil edin.
- Demo ve kabul:
- Uygulanan hikayeleri sprint incelemesinde sunun.
- Paydaşlardan ve kullanıcılardan geri bildirim toplayın.
- Kabul kriterlerinin karşılanıp karşılanmadığına göre hikayeleri resmi olarak kabul edin veya reddedin.
- Geriye dönük değerlendirme ve iyileştirme:
- Sprint retrospektifi sırasında ekibin hikayelerle nasıl çalıştığını analiz edin.
- Sorunları (örneğin, çok büyük veya belirsiz hikayeler) belirleyin ve bunları çözmek için önlemler geliştirin.
- Kullanıcı Hikayeleri oluşturma ve yönetme sürecini sürekli olarak iyileştirin.
- Belgeleme ve arşivleme:
- Hikayeleri ve ilgili bilgileri bir proje yönetim sisteminde saklayın.
- Tamamlanan hikayeleri, ürün dokümantasyonunu ve bilgi tabanını güncellemek için temel olarak kullanın.
- Ölçeklendirme:
- Büyük projelerde, daha iyi yönetim için ilgili hikayeleri epiklere veya temalara göre gruplandırın.
- İlgili hikayeler üzerinde çalışan birden fazla ekibin çalışmalarını senkronize edin.
- Diğer uygulamalarla entegrasyon:
- Kullanıcı Hikayelerini, ürün vizyonu veya müşteri yolculuğu haritası (CJM) gibi daha üst düzey çıktılarıyla ilişkilendirin.
- Hikayeleri, API belgelerini veya kullanıcı kılavuzlarını oluşturmak ve güncellemek için temel olarak kullanın.
Kullanıcı Hikayeleriyle etkili bir şekilde çalışmak, sürekli pratik yapmayı ve projenin ve ekibin özelliklerine uyum sağlamayı gerektirir. Başarının anahtarı, süreç formalitesi ile hızlı geliştirme ve değişime yanıt vermek için gereken esneklik arasında bir denge kurmaktır.
Sonuç
Kullanıcı hikayeleri sadece bir geliştirme aracı değil, yazılım ürünlerinin oluşturulma biçiminde güçlü bir değişim itici gücüdür. Odak noktasını teknik yönlerden insan faktörüne kaydırarak bize sürekli şu soruyu sordururlar: "Bu, kullanıcıya ne kazandıracak?"
Kullanıcı Hikayelerinin asıl gücü, onları yazmakta değil, tetikledikleri konuşmalarda yatmaktadır. Her hikaye, tartışmaya bir davettir; ürünü farklı paydaşların gözünden görme fırsatıdır. Bu tartışmalar yeni fikirlerin doğmasına yol açar, gizli sorunları ortaya çıkarır ve beklenmedik fırsatlar sunar.