Ekibinizin gerçekten tahmin edebileceği kullanıcı hikayeleri nasıl yazılır
Agile ekibi, backlog iyileştirme oturumunda kullanıcı hikayeleri yazmak için renkli yapışkan notlarla kaplı bir tahtanın etrafında toplanmış, işbirliği yapıyorBir kullanıcı hikayesi yüzeysel olarak basit görünür. Üç kısa cümle, tahtadaki bir kart, tamam. Ancak tahminlerin 2 ile 13 arasında değiştiği bir planning poker oturumunda oturmuş olan herkes gerçeği bilir: iyi kullanıcı hikayeleri yazmak göründüğünden daha zordur.Belirsiz bir hikaye ile iyi yazılmış bir hikaye arasındaki fark, ekibiniz onu tahmin etmeye çalıştığında ortaya çıkar. Bu kılavuz, kullanıcı hikayelerini üzerinden geliştirme yapılabilecek ve güvenle tahmin edilebilecek kadar net yapan format, çerçeve ve pratik alışkanlıkları ele almaktadır.
Standart kullanıcı hikayesi formatı
En yaygın kullanılan şablon, 2000'li yılların başında tanıtılan Connextra formatından gelmektedir:
Bir [kullanıcı türü] olarak, [hedef] istiyorum, böylece [neden].
Her bir kısım görevini yerine getirir:
Bir ... olarak kimden faydalandığını belirler. "Sistem" veya "yönetici" değil, gerçek bir ihtiyacı olan gerçek bir kişi.
... istiyorum ne başarmaları gerektiğini tanımlar. Spesifik ve davranışsal tutun.
Böylece neden önemli olduğunu açıklar. Ekipler bu kısmı en sık atlar ve sonradan yanlış anlaşılmaları önleyen kısım tam da budur.
Somut bir örnek:"Geri dönen bir müşteri olarak, arama sonuçlarını fiyat aralığına göre filtrelemek istiyorum, böylece her şeyi kaydırmak zorunda kalmadan bütçeme uygun ürünleri bulabilirim."Bunu şunla karşılaştırın: "Bir kullanıcı olarak, daha iyi arama istiyorum." Biri tahmin edilebilir. Diğeri bir sonraki planlama oturumunuzda 20 dakikalık bir tartışma başlatacaktır.
INVEST kontrol listesi
Bill Wake'in INVEST kısaltması, herhangi bir kullanıcı hikayesini değerlendirmek için altı kriter sunar:
Kriter
Ne kontrol edilmeli
Bağımsız (Independent)
Diğer hikayeleri beklemeden teslim edilebilir mi?
Pazarlık edilebilir (Negotiable)
Uygulama esnek mi, yoksa belirli bir çözümü mü dayatıyor?
Değerli (Valuable)
Gerçek bir kullanıcının umursadığı bir şey sunuyor mu?
Tahmin edilebilir (Estimable)
Ekibiniz bir düzine takip sorusu olmadan boyutlandırabiliyor mu?
Küçük (Small)
Tek bir sprintte tamamlanabilir mi?
Test edilebilir (Testable)
Bunun için net bir başarılı/başarısız koşulu yazabilir misiniz?
Tahmin edilebilir kriteri, hikaye kalitesinin planning poker ile buluştuğu noktadır. Ekibiniz bir hikayeyi tahmin edemiyorsa, bu bir tahminleme sorunu değil, yazım sorunudur.
Hızlı test
Eğer bir hikaye planning poker sırasında geniş bir yayılım üretiyorsa (örneğin
bir 2 ve bir 13), bunu puanlar hakkında daha fazla tartışma değil, hikayenin
iyileştirilmesi gerektiği sinyali olarak değerlendirin.
Kabul kriterlerini yazma
Kabul kriterleri olmayan bir kullanıcı hikayesi, ters gidecek bir konuşmanın habercisidir. Kabul kriterleri "tamam"ın gerçekte ne anlama geldiğini tanımlar.Verildiğinde / Olduğunda / O zaman formatı iyi çalışır:
Arama sonuçları sayfasında olduğumda
Bir fiyat aralığı filtresi seçtiğimde
Yalnızca o aralıktaki ürünler görüntülenir
Aktif filtrelerim uygulandığında
"Tüm filtreleri temizle"ye tıkladığımda
Tüm arama sonuçları tekrar gösterilir
İyi kabul kriterleri spesifiktir (yoruma yer bırakmaz), test edilebilirdir (bir QA mühendisi başarılı veya başarısız olduğunu doğrulayabilir) ve kapsamlıdır (hikayenin sınırlarını genişletmez).Her uç durumu kapsamanız gerekmez. Amaç, ekibin ortak anlayışını yakalamaktır, bir spesifikasyon yazmak değil.Kullanıcı hikayesi kartlarının yakınına tutturulmuş, Given-When-Then formatını kullanarak bir beyaz tahtaya kabul kriterleri yazan bir el
Önce ve sonra: gerçek örnekler
İyi hikaye yazmayı öğrenmenin en hızlı yolu kötü örnekleri daha iyi olanlarla karşılaştırmaktır.Örnek 1: E-ticaret
Zayıf hikaye
"Bir kullanıcı olarak, daha hızlı ödeme yapmak istiyorum."
Hangi kullanıcı? Neye göre daha hızlı? Bu, tek tıkla satın almadan bir form alanını kaldırmaya kadar her anlama gelebilir.
Daha güçlü versiyon
"Geri dönen bir müşteri olarak, kayıtlı ödeme yöntemimi kullanarak ödeme
işlemini tamamlamak istiyorum, böylece her alışverişimde kart bilgilerimi
tekrar girmek zorunda kalmam."
Örnek 2: SaaS panosu
Zayıf hikaye
"Bir yönetici olarak, daha iyi raporlama istiyorum."
Daha güçlü versiyon
"Bir takım lideri olarak, sprint hız verilerini CSV olarak dışarı aktarmak
istiyorum, böylece aylık paydaş raporuma dahil edebilirim."
Örnek 3: Dahili araç
Zayıf hikaye
"Bildirim sistemi için bir API oluşturun."
Bu bir kullanıcı hikayesi bile değildir. Kullanıcısı, hedefi ve nedeni olmayan teknik bir görevdir.
Daha güçlü versiyon
"Bir mobil uygulama kullanıcısı olarak, siparişim kargoya verildiğinde bir
push bildirimi almak istiyorum, böylece teslimatımın ne zaman geleceğini
bilirim."
En yaygın 5 hata
Hikaye çok büyük
Ekibiniz planning poker'da bir şeyin 13 mü yoksa 21 mi olduğunu
tartışıyorsa, hikaye muhtemelen gizlenmiş bir epiktir. Bölün. Kollabe'nin
Story Splitter aracı büyük hikayeleri daha küçük,
tahmin edilebilir parçalara bölmenize yardımcı olabilir.
Kullanıcı sahte
"Sistem olarak" veya "Bir paydaş olarak" gerçek kullanıcılar değildir.
Faydalanan bir kişiyi veya personayı isimlendiremiyorsanız, hikayenin
yeniden düşünülmesi gerekir. Bir kullanıcı persona
oluşturucu burada yardımcı olabilir.
'Böylece' kısmı eksik
Neden olmadan, geliştiriciler kendi varsayımlarını doldurur. İki kişi aynı
hikayeyi okuyabilir ve tamamen farklı uygulamalar hayal edebilir.
Teknik katmana göre bölme
"API'yi oluştur" + "UI'yı oluştur" + "Testleri yaz" görevlerdir, hikaye
değil. Her hikaye, bir kullanıcının gerçekten etkileşebileceği ince, dikey
bir işlevsellik dilimi sunmalıdır.
Kabul kriterleri yok
Hikaye kartı bir konuşma davetiyesidir, bitirmiş bir spesifikasyon değil.
Ancak bir hikayeyi sprinte çekmeden önce kabul kriterleri yazmayı
atlarsanız, inceleme sırasında "bunu kastetmemiştim" anına zemin
hazırlıyorsunuz.
Hikaye kalitesi dedektörü olarak planning poker
Planning poker aynı zamanda bir hikaye kalitesi dedektörü olarak da işler. Takım üyeleri bağımsız olarak oy verdiğinde ve sonuçlar birbirinden çok farklı olduğunda, ardından gelen konuşma genellikle üç şeyden birini ortaya çıkarır: birinin diğerlerinin bilmediği bir bağlamı vardır, insanlar hikayeyi farklı yorumlamıştır veya kapsam, okuyana bağlı olarak hikayenin çok küçük veya devasa olabileceği kadar belirsizdir.Belirsiz bir kullanıcı hikayesinin neden olduğu tahmin anlaşmazlığını gösteren, birbirinden çok farklı değerler gösteren planning poker kartlarını kaldıran, şaşırmış görünen takım üyeleriUzlaşma için zorlamak yerine, geniş yayılımları bir iyileştirme tetikleyicisi olarak değerlendirin. Hikayeyi belirli sorularla ürün sahibine geri gönderin. Tahmin anlaşmazlığını odada çözülmesi gereken bir sorun yerine bir kalite sinyali olarak kullanmak, zamanla hem hikayelerinizi hem de hızınızı iyileştirecektir.
Hikaye yazımı için bir kontrol listesi
Herhangi bir hikayeyi sprint planlamasına çekmeden önce bunu kullanın:
Belirli bir kullanıcı veya persona belirtiyor ("sistem" değil)
Tek, net bir hedef tanımlıyor
Gerçek iş değeri içeren "böylece" kısmı mevcut
Kabul kriterleri tanımlanmış
Bir sprintte tamamlanabilecek kadar küçük
Ekip takip sorusu olmadan tahmin edebiliyor
Backlog'daki diğer hikayelerden bağımsız
Net bir başarılı/başarısız koşuluyla test edilebilir
Bir başlangıç noktası istiyorsanız, Kollabe'nin Kullanıcı Hikayesi Oluşturucusu kabul kriterleri dahil standart formatta hikayeler hazırlayabilir. Alışkanlık oluşturma sürecindeki ekipler için kullanışlıdır.
Sonuç
Bir kullanıcı hikayesinin gerçek testi, şablona uyup uymadığınız değildir. Ekibinizin onu okuyup ne inşa edeceğini anlayabilmesi ve 15 dakikalık bir tartışma olmadan tahmin edebilmesidir. Planning poker oturumlarınız sürekli geniş yayılımlar üretiyorsa, tahminlere bakmadan önce hikayelere bakın.
Bir kullanıcı hikayesi, son kullanıcının bakış açısından değeri tanımlar
("Bir müşteri olarak, siparişimi takip etmek istiyorum"). Bir görev, o
hikayeyi teslim etmek için gereken teknik bir adımdır ("Kargo takip API
endpoint'ini oluştur"). Hikayeler backlog'a girer; görevler sprint
planlaması sırasında ortaya çıkar.
Ekibinizin tahmin edebileceği ve kabul kriterleri yazabileceği kadar detaylı
olmalı, ancak bir spesifikasyon belgesi gibi okunacak kadar detaylı
olmamalı. Kart bir konuşma yapmayı hatırlatan bir nottur, konuşmanın yerine
geçen bir şey değil.
Genellikle ürün sahibi taslağı hazırlar, ancak en iyi hikayeler
işbirliğinden doğar. Geliştiriciler, tasarımcılar ve QA, boşlukları erken
yakalamak için backlog iyileştirme sırasında katkı sağlamalıdır.
Hikaye puanları, bir hikayeyi tamamlamak için gereken göreceli çabayı ölçer.
Ekipler, planning poker oturumları sırasında puan atar. İyi yazılmış
hikayeler daha tutarlı tahminler alır, çünkü kapsam ve karmaşıklık herkes
için nettir.