Geliştirici olarak kullanıcı hikayelerini nasıl hazırlarım?


10

Hem sistem sahibinin hem de kendimin geliştirici olduğu bir sistem yazıyorum ve şu anda {1} özelliklerine bağlı kullanıcı öykülerinde yakalamak istediğim sistem için tek 'istek' veya gereksinim kaynağıyız. Acil önceliğim artık bir managa biriktirme biriktirme listesi yakalamak. Çok teknik olması gerekmeyen kullanıcı hikayelerinde çalışmaya alışkın olduğum teknik özellik düzeyini yakalamaya nasıl devam etmeliyim.

{1} Çevik proje yönetimi hizmeti TargetProcess'i değerlendiriyorum ve her kullanıcı öyküsünün bir üst özelliğe bağlı olması gerekir. Sistem iyi bir uyum gibi görünüyor, bu yüzden bu küçük kısıtlama çalışmak yerine çalışmaktan çok tercih ettiğim bir şey.

Yanıtlar:


14

Tipik hikaye şablonunu görselleştirmek çok kolaydır:

As a [ROLE] I need to [WHAT] so that/because [WHY].

İlginç olan, bileşenlerin öneminin tersine çevrilmiş olmasıdır.

NEDEN fazla daha önemlidir NE ve bundan daha önemli olan ROLE

Bu Soruyu kullanan örnek

Bir Yazılım Geliştiricisi olarak, Kullanıcı Öyküleri yazmayı öğrenmem gerekiyor, böylece birikmiş özellikleri taslaklarla doldurabilmem ve başlayabilmem için puanlar almam gerekiyor.

Daha fazlası, Kullanıcı Öyküleri'nin amacını ve uygulanmasını karmaşıklaştırmaktadır.

Ek Araçlar (Entegrasyon en iyisidir)

Araçlar ek yakalamak için kullanılabilir detay atama puan / tahmin bunları tartışırken yakalanır hikayeleri hakkında bilgiler, ama bu ayrıntı gerekir değil hikayenin kendisi bir parçası olmak. Tartışmaların ayrıntılarını / transkriptlerini koymak için hikaye başına 1 sayfalık bir Wiki kadar basit bir şey yeterince iyi bir çözümdür. Excel elektronik tablosu korkunç bir çözümdür.


5

Odaklanın ne ve niçin yılların ve önlemek nasıl oluyor kullanıcı hikayelerini yazarken.

Karşılaştığınız şey aslında tüm geliştiriciler için çok iyi bir egzersiz. İhtiyacı basit, ticari terimlerle ifade edebilmek önemli bir beceridir.

Combobox veya liste kutusu veya belirli bir rutini tetikleyen herhangi bir şey kullanmak yerine "Foo eylemini etkinleştirmek için" açılır nesne listesinden tek bir seçim yapabilmeniz gerekir "gibi genel gereksinimlere odaklanmalısınız. .

Buna yaklaşmanın bir başka yolu, temel kod tabanı / çerçevesinin neredeyse tamamlanmış kara kutu gibi davranmaktır. Kendinizi "XYZ nesnesini kullan" ifadesini bulduğunuzda, bunu bir kara kutu sisteminde bilip bilmediğinizi sorarak kendi kendini kontrol edebilirsiniz.

Güncelleme:
IMO, bilgi için gerekli ayrıntı düzeyini belirten bir kullanım senaryosuna ayrıntıları koymak uygundur. Örneğin, bir kayıt sistemi ile belirtmek adil bir oyun
- soyadı; zorunlu alan
- ad; zorunlu alan
- hesap kimliği; sistem girdi gerektirmez
- astrolojik işaret; isteğe bağlı alan - (öneri) doğum tarihine girmek için arama sağlar mı?
- vb....

Anahtar, bu bilgilerin teknik nasıl olduğunu belirtmemenizdir . Kendinize soyadı için "String sınıfı / karakter dizisi / veya varchar alanı kullan" dediğini görürseniz, aşırı belirttiğinizi bilirsiniz.

Çok dilli iseniz, turnusol testi olarak iki farklı dil kullanın. Örneğin, C'deki dizeler genellikle char (acter) dizileridir, oysa C ++, Java ve C # (tamam ve neredeyse herkes ...) gerçek bir String benzeri nesneye sahiptir. Spesifikasyonunuzun bu dillerden birini kullanarak geçersiz olduğunu tespit ederseniz, aşırı belirttiğinizi bileceksiniz.

Kullanmak istediğim varyant her ikisinin de bir melez olmasına rağmen, özellikle Kullanıcı Hikayesi'nin aksine Kullanım Örneği terimini kullandığımı belirtmek gerekir . Bir kullanım senaryosundaki amacım neler olup bittiğine (en katı anlamda bir Kullanıcı Hikayesi) genel bir bakış sunmak, ancak daha sonra gerekli aktörler, sistemler ve genel işlevsellik üzerinde çalışmaktır. Benim yaklaşımım, Cockburn'ün yaklaşımının aksine, bu wikipedia makalesinde Fowler'ın önerdiklerine daha yakın.

Bu yüzden kayıt senaryosu veya iş öğesi için tek bir kullanım senaryom (veya benzeri) olacak. Gerçekten karmaşıksa, onu katlara bölerdim, ama bu çok önemli değil. Daha sonra kullanım durumu gerektiğinde bireysel görevlere ayrılabilir. Belirli bir scrum'a atılan şey birçok değişkene bağlıdır, ancak bu yaklaşımda scrumun sonunda gösterilebilir bir bileşene sahip olmanızı engelleyen hiçbir şey yoktur.


3
“Açılır liste” demek bile fazla belirleyici olabilir.
Donal Fellows

@DonalFellows - Bu iyi bir nokta ve bunu biraz düşündüm. Bir açılır menü, tel çerçevelerle göreceğiniz oldukça standart, genel bir kullanıcı arayüzü öğesi olduğu için gittim. Liste kutusu ve Açılan Kutu, açılır listeler için belirli dil yapılarıdır. Yorumda +1.

@ GlenH7 Bunu anlıyorum, ama sorunum teknik şeyleri nerede yakalayacağımı bilmiyorum. Örneğin, yeni bir çalışan için belirli alanlar gerekiyorsa, her alan için bir hikaye kullanmak istemiyorum, daha çok "kullanıcı olarak x ve y alanlarını yakalamam gerekiyor" ve "q ve z alanlarını yakalamayı seçebilir "bir şey yazın. Buradaki hızlı örneklerim doğru yön ise, bu şekilde daha fazla egzersiz yapmayı deneyeceğim.
ProfK

@ProfK İK yöneticisi olarak bordro, 401K ve sigorta yardım sistemlerine kayıt yapabilmem için yeni çalışanlar hakkında bilgi girmem gerekiyor. Bu iyi bir hikaye olmalı, diğer her şeyin ayrıntıları sadece bir wiki sayfasında veya başka bir belgede belgelenmesi gereken ayrıntılardır. Bu hikayeye başka yeni özelliklerin eklenmesi gerekiyorsa, kaçırılan özel gereksinimlere sahip yeni Hikayeler sistemde yeni hikayeler haline gelecektir.Öykü, bu faaliyetin ROLE tarafından müşterilerin onayına tamamlanabilmesi durumunda yapılır.

2
@ProfK - sorunuza yanıt olarak cevabımı güncelledim. IMO, bence doğru yoldasın. Birçok farklı metodoloji üzerinde çalıştım ve hatırlanması gereken kritik nokta, durumunuz için işe yaramasını sağlamak. Resmi bir Kullanıcı Hikayesi'nin sunduğundan biraz daha fazlasına ihtiyacınız olduğu anlaşılıyor. Bu yüzden Kullanıcı Hikayelerinizi nasıl oluşturduğunuza adapte olun ve ilerlemeye devam edin. Bazıları muhtemelen yorum için beni alevlendirecek, ama dürüst olmak gerekirse, tüm mesele kodun yazılması ve projenin ilerlemesini sağlamaktır.
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.