İşlevselliği paylaşan hikayelerle nasıl baş edilir


27

İki hikayem var (fayda kısmını kaçırdıklarını biliyorum)

  1. Kredi Yönetimi Kullanıcısı olarak, Ofisler için mevcut ve önceki bordro farklarını görebilirim.
  2. Kredi Yönetimi Kullanıcısı olarak, Ofisler için mevcut ve önceki bordro farklarının bir PDF'sini içeren bir e-posta alabilirim.

Bu ikisi aynı Sorgu / Filtre kriterlerine sahip olmaları ile ilgilidir. Tek fark, "Görünüm" hikayesinde sonuçların Kullanıcıya gösterilmesi ve "E-posta" hikayesinde sonuçların Kullanıcıya e-postayla gönderilen bir PDF'ye yazılmasıdır.

Bu iki hikayenin ortak yönlerinin ayrılmasıyla mücadele ediyorum ya da yapmam gerekse bile.

Örneğin, ikisi de aynı sorguya sahip olacak, sonuçları ile yaptıkları farklı.

Sorguyu tamamen teknik olan başka bir hikayeye mi ayırmalıyım?

PDF'nin oluşturulması ve e-postanın gönderilmesi çevrimdışı yapılmalı, bu teknik bir hikaye mi olmalı?

Bu iki hikayeyi 2 işlevsel hikayeye ve 2 teknik hikayeye böldüm.

  1. Sistem olarak, Ofisler için mevcut ve önceki bordrodaki farklılıkları hesaplayabilirim.

  2. Kredi Yönetimi Kullanıcısı olarak, Ofisler için mevcut ve önceki bordrodaki farklılıkları görebilirim.

  3. Sistem olarak, Ofisler için mevcut ve önceki bordrodaki farklılıkların bir PDF belgesini oluşturabilirim.

  4. Kredi Yönetimi Kullanıcısı olarak, Ofisler için mevcut ve önceki bordrodaki farklılıkları içeren bir PDF içeren bir e-posta almak isteyebilirim.

Geri dönmeye devam ettiğim sorun, 4 katın bağımsız olmaması ve “pastayı dilimlememesi” dir.

Bu yüzden bu ikisiyle nasıl başa çıkacağımdan emin değilim.


4
Eğer "teknik kullanıcı öyküleri" kullanacaksanız , burada 4 olmayan 3 şey olduğunu fark edersiniz. Sadece raporu farklı sunuyorsun.
candied_orange

1
Onlardan birini ele al. Sonra diğerini ele al. Bu kadar basit.
Ant P,

Neden iki hikaye?
JeffO

Yanıtlar:


55

Kullanıcı Hikayeleri, sistem özellikleri veya işlevsel gereksinimler değildir. Aksine, bu tür spesifikasyonlara veya gereksinimlere yol açabilecek bir konuşmanın başlangıcıdır.

Buna göre, sistem uygulamasında çakışma olmasını beklerdim. Kullanıcı Hikayeleri, bu tür işlevsel örtüşmeleri tanımlamak veya ortadan kaldırmak için yapılmamıştır. Kullanıcı Öyküleri'nin amacı, uygulama ayrıntılarını açıklamak yerine, kullanıcının bakış açısından işlevsel beklentileri yakalamaktır.


3
Aslında çok benzer bir şeyler yazmaya başlamıştı, ancak bu cevap zaten benim her yönümü kapsıyor, yani +1.
Doc Brown

Burada da aynı, uygulamadan uzak durun.
candied_orange

1
@JoeYoung: Uygulama detayları devam ediyor - uygulamaya başka neler giriyor? Bunu başka bir geliştiriciye anlatmanız, ekibinizin iletişim yapısına bağlıdır. Elbette, burada “çevrimiçi bordro farklarını görüntülerken veya bunları PDF olarak alırken, her iki durumda da aynı içeriği elde etmek önemlidir” gibi işlevsel bir gereksinim olabilir . Bu durumda, bunu en az bir (her ikisi de daha iyisi) kullanıcı hikayesine not olarak ekleyin. Ancak, bu gereksinimin hikayeye nasıl uygulanacağına dair hiçbir açıklama yapmayın.
Doc Brown,

3
Tasarım, bir geliştiriciye problemleri nasıl çözeceğini söylemek değildir. Bir geliştiriciye hangi sorunları çözeceğini söylüyor.
candied_orange

1
Bu hikayelerin zaman maliyetini değerlendirdiğinizde, onları nasıl değerlendiriyorsunuz? Ortak sorgu bölümünün 5 saat sürdüğünü, web görünümünün 6 saat sürdüğünü ve PDF görünümünün 7 saat sürdüğünü varsayalım. Saati tahmin ediyor musunuz, keyfi olarak birinin 11 saat (5 + 6) ve diğer 7 (veya bunun tersi: 12 ve 6) olduğunu mu söylüyorsunuz, veya bunları 6 ve 7'de tahmin ediyor musunuz, ancak bazılarında başka bir yere not edin. Her ikisi için de 5 saatlik ek yükü birleştirir mi? 11 ve 12 (her ikisine de eklenen 5)? "Bu model bu gibi durumları ele almak için tasarlanmamıştır. Sadece konuşun." yine de bir storyboard'a kaydedilebilir, ama nasıl?
Aaron

15

Yapma: Hikayeleri bölmeye çalış, Bir hikaye yap, sonra diğerini.

Yapın: Geliştirme ekibinin ikinci hikayeden haberdar olmasını sağlayın.

Her ikisi de zarif bir şekilde ele alabilen jenerik bir modelin ayrıntılı görevlerini planlamak ve denemekle ilgili sorun zor olmasıdır.

Kullanıcı hikayelerinin amacı işleri halletmektir. Zarif, ikincil bir amaçtır ve yeniden düzenlemeye bırakılmalıdır.

Bunu en üst düzeye çıkarırsanız ve kimseye yapılması gereken diğer on benzer görevden bahsetmezseniz, aynı zamanda ikinci veya üçüncü görevin birinciye kadar düşünülmemesi tamamen düşünülebilir. Her şeyi planlamak istiyorsanız şelaleye gidin.


4

Robert Harvey ile yapılan şiddet anlaşmasında, bir kullanıcı hikayesinin amacı, kullanıcının ne yapması gerektiğini anlamaktır. Bakımınızı yaparken, kullanıcı hikayesini anlar ve önemser, ancak geliştiriciler biraz daha fazla ilgilenir. İşi anlamak ve tahmin etmek için yeterli soru sorduğunuzda, onları desteklemek için görevler oluşturabilirsiniz.

Bu özel durumda, hangisiyle başa çıkacağınızla birlikte yapılacak olan her iki kullanıcı hikayesinin çekirdeğini sağlayan görevler oluşturabilirsiniz.

Kullanıcı hikayesine eklenecek önemli şeyler:

  • Kabul kriterleri
  • Varsayımlar

Bu mutlaka yok dikkati çekiyor gerek artık hikayeye daha belgelemek. Hikaye size iş düzeyinde bağlamı verir. İhtiyacınız olan daha ayrıntılı izleme size kalmış (ve büyük ölçüde organizasyonel kısıtlamalara bağlı). Ancak bunu en aza indirmeyi hedeflemelisiniz (insanlar işlemden geçiyor ve hepsi bu).
Ant P,

@AntP kabul etti, ancak bu Yapıldı (DoD) tanımı doğru gider ve onu gerektiği kullanıcı hikayesi vardır senin 3x5 kartın arkasında uygun.
Berin Loritsch

2

Açıkçası, Kullanıcı Hikayeleri, istenen sonucu anlamak için bir konuşma sözüdir.

Örneğin, ikinci kullanıcı hikayenizi alıyor

Kredi Yönetimi Kullanıcısı olarak, Ofisler için mevcut ve önceki bordro farklarının bir PDF'sini içeren bir e-posta alabilirim.

Aşağıdakileri düşünün:

  • Bu gereksinimi yönlendiren kullanıcının "ihtiyacı" nedir? (Bir çözüm olarak bir e-postadaki PDF onlardan geliyor mu? Bu, ihtiyaca hitap etmeyebilir ve ekibiniz daha iyi bir çözüm bulabilir)
  • Bu kullanıcının "ihtiyacı" karşılayabilecek ve çözümünüzü doğrulayabilecek minimum dilim nedir? Kısa geri bildirim döngüleri değerlidir.

Öykü bölmeye yaklaşırken, mümkün olduğunda INVEST kriterlerinizi unutmayın.

  1. Ben ndependent
  2. N pazarlanabilir
  3. V aluable
  4. E yüklenebilir
  5. S alışveriş merkezi
  6. T estable

Doğal bir düzeni olan hikayelere sahip olmak sorun değil . Bunu göz önünde bulundurun - genellikle ilk hikaye gerekli işlevselliği getirdiğinden ve ikinci hikaye üzerine kurulduğundan daha büyüktür.

Genellikle "kullanıcı" odaklı hikayelerin uygulanmasını desteklemeye yardımcı olacak görevler olması nedeniyle "teknik" hikayelere meydan okurdum.


2

TL; DR

Her iki kullanıcı hikâyesinin aynı yineleme içinde kapsam içine alındığını varsayarsak, hikayeleri bir uygulama planına ve görevli görevlerine ayırmak ekibin görevidir. Kullanıcı hikayeleri bağlam ve kapsam sağlar; bunlar uygulamalar, teknik özellikler veya delme listesi öğeleri değildir.

Hikayeler, İterasyon Görevlerine Ayrılmalıdır

Scrum veya başka bir çevik metodolojiyi takip ediyor olsanız da , bir yinelemenin planlama aşamasını atlamak yaygın bir hatadır. Scrum'da, bir Ürün İş Listesi öğesi (kesinlikle bir kullanıcı hikayesi olması gerekmez, kesinlikle konuşma) mevcut Sprint'e dahil edildiğinde, ekibin daha sonra iş öğeleri arasındaki ortaklıkları belirlemek, bağımlılıkları belirlemek ve daha sonra görev düzeyinde çalışmayı yakalamak için bir Sprint İş Listesi geliştirin.

Yazınızda belirttiğiniz gibi, çevik bir yinelemenin yakından ilişkili kullanıcı hikayeleri içermesi nadir değildir (ve aslında arzu edilir). Scrum'da, bu Sprint Hedefini kullanarak ortaya çıkar. Scrum çerçevesinin dışında, ortak hedefleri veya ortak bağımlılıkları nedeniyle ilgili hikayeleri çekmek genellikle daha mantıklıdır . Ekipler, tek bir yineleme içindeki paylaşılan bağımlılıklar üzerine çıkarıp çalışarak, gelecekte benzer ancak aynı olmayan özellikler için kod üzerinde yeniden düzenleme veya yineleme yapma gereksiniminden kaçınabilir.

Görevler Hikayeleri Uygulama

İşte kullanıcı hikayeleri için bağımlılık planlaması hakkında düşünmek için başka bir yol. Genel olarak:

  1. Bir epik / tema, uzun süreli planlama veya bir birikim üzerinde gruplama için kullanılır.
  2. Bir kullanıcı hikayesi hedefleri, bağlamı ve kapsamı iletmek için kullanılır.
  3. Tam zamanında planlama, tek bir yinelemeye uyan bir uygulama geliştirmek için kullanılır.
  4. Görevler, bir veya daha fazla kullanıcı hikayesi için Tamamlanan Tanımını karşılayan tam zamanında plan uygular.

Kullanıcı hikayelerini bir uygulama planı veya görev listesi olarak ele almak çoğu uygulayıcı tarafından çevik bir kalıp karşıtı olarak kabul edilir. Ne söylemeyi seçerseniz seçin, çevik çerçevenizin tam zamanında planlama aşamasını atlamayın ve bağımlılıkların ve paylaşılan uygulama detaylarının ekibinizin süreci içinde herhangi bir yerinde takip edildiğinden emin olun .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.