TL; DR
Kullanıcı hikayeleri, ürüne hangi değerin eklenmesi gerektiğini ve nedenini belgelemek içindir. Uygulama ayrıntıları (örneğin , değerin nasıl eklenmesi, test edilmesi, ölçülmesi veya doğrulanması gerektiği) hikaye tarafından kısıtlanır, ancak bunlar içinde yer almaz. Çerçeve içinde esneklik ve çevikliği korumak için kasten ayrı eserler olarak bırakılırlar.
Spesifikasyonlar ve uygulama ayrıntıları çoğunlukla Kabul Testine Dayalı Geliştirme (ATDD), Teste Dayalı Geliştirme (TDD) ve Davranışa Dayalı Geliştirme (BDD) komut dosyaları ve senaryoları gibi diğer eserlerde yakalanır. Bu özel eserler Scrum çerçevesi tarafından zorunlu kılınmaz, ancak başka etkili süreç kontrolleriniz yoksa kesinlikle size iyi bir başlangıç noktası verecektir.
Kullanıcı Öyküleri Teknik Özellik Değildir
Orijinal poster (OP) şu soruyu sordu :
[A] müşteri farklı kredi kartları için farklı bir işlem istiyor, uygulanması ve bilinmesi gereken sıkı şartlar vardır, böylece test vakaları yazılabilir ... HİKAYEDE NEREDE PAY YAPMALIYIM?
Bir kullanıcı hikayesi, değer sağlayan , uygulama hakkındaki konuşmaları yönlendirmek için bir bağlam sağlayan ve değer tüketicisine bağlı bir bakış açısı sağlayan bir özelliktir özelliği tarafından teslim değerden yararlanacaktır.
Bütün noktası , bir kullanıcı hikayenin uygulama ayrıntıları kuralcı değil olmasıdır. Ekip, özelliği, belirlenen değeri değer tüketicisine uygun bağlamda iletecek şekilde uygulamakta serbesttir.
Çalışılmış Bir Örnek
Örnek Bir Kullanıcı Hikayesi
Bu, daha az belirsiz bir kullanıcı öyküsü kümesiyle başlarsanız bunu açıklamak daha kolaydır. OP, INVEST anımsatıcısını izleyen eyleme geçirilebilir bir kullanıcı hikayesi sağlamadığından , bir örnek uğruna bir tane icat edeceğim. Aşağıdaki hikayeyi düşünün:
Discover kartı ile ödeme yapmayı tercih eden bir kullanıcı olarak,
Visa, Mastercard veya American Express ile sınırlı olmamam
için Discover kartla alışverişlerimi yapma seçeneğini istiyorum
.
Bu somut bir özellik sağlar, ekibin alması gereken uygulama kararlarına rehberlik edebilecek bir bağlam sağlar ve değer tüketicisini Discover-card sahibi bir müşteri olarak tanımlar. Bu bir dizi özellik değil, ancak geliştirme ve yineleme sırasında hikayeyi en iyi şekilde nasıl uygulayacağınız konusunda müşteriyle ve ekiple doğru görüşmeler yapmanız gerekiyor.
Analiz ve Uygulama
Gerçek uygulama ekibe bağlıdır. Ekibin şunları belirlemek için bazı analizler yapması gerekecek:
- Yeni bir özellik uygulamanın en kolay yolu.
- Çeşitli uygulama seçeneklerinden hangisi, teknik borç tahakkuk etmeden, ilerlemeyi desteklemenin en kolay yolu olacaktır.
- Yeni özelliğinizin aşırı mühendislik yapılmadan sağlam olmasını sağlamak için açık-kapalı ve YAGNI ilkelerini uygulama.
Agile Manifesto'nun temel ilkelerinden biri müşteri işbirliğidir. Çok işlevli, kendi kendini düzenleyen bir ekibin, kullanıcı hikayesinin sağladığı yönergeler dahilindeki uygulama ayrıntılarını çözmek için müşteriyle işbirliği yapabilmesi beklenmektedir .
Kullanıcı öyküleriniz iyi yazılmamışsa veya takımın çevik çerçevelerinin gerektirdiği yeterli analizi yapmak için gerekli beceri veya süreç olgunluğuna sahip olmaması durumunda, bu açıkça olması gerekenden çok daha zor olacaktır. Uygun düzeyde ayrıntı düzeyinde iyi kullanıcı hikayelerinin nasıl oluşturulacağı konusunda tüm kitaplar yazılmıştır; ne yazık ki gümüş kurşun yok, ama çevik takımlar için öğrenilebilir bir yetenek.
Test Odaklı ve Davranış Odaklı Tasarım
Analizin sağlam olmasını ve uygulamanın hem akılcı hem de desteklenebilir olmasını sağlamanın en iyi yolu TDD ve BDD uygulamalarının kullanılmasıdır. Örneğin, yukarıdaki hikaye göz önüne alındığında, ekip planlanan uygulamayı aşağıdaki gibi eserler aracılığıyla yakalamalıdır:
Test edilebilir senaryolara sahip salatalık özellikleri.
Bu en çok kabul testlerinin geliştirilmesinde ve kullanıcının uygulama davranışı beklentilerinin belgelenmesinde yararlıdır . Örneğin, kullanıcı hikayesinde, kullanıcının bir Discover kartıyla nasıl kontrol edebileceğini ve bu sürecin kullanıcıya nasıl göründüğünü açıklayan bir veya daha fazla ilişkili Salatalık özelliği bulunmalıdır.
Yeni kod özelliklerinin davranışını (dahili uygulama ayrıntılarını değil) doğrulayan RSpec testleri .
Bu, özelliğin uygulama içindeki amaçlanan davranışını belgelemek ve doğrulamak için en kullanışlıdır. Örneğin, kullanıcı hikayesi, bir Discover kartı kullanmanın, uygulamanın ödeme ağ geçidi üzerinden bir satışı yetkilendirmek için ihtiyaç duyduğu her karta özgü davranışı başlatmasını sağlayan birim ve entegrasyon testlerinin oluşturulmasını teşvik edecektir.
Belirli araçlar önemli değil. Salatalık veya RSpec'i sevmiyorsanız, ekibiniz için en uygun araçları veya yöntemleri kullanın. Bununla birlikte, mesele, uygulama ayrıntılarının kullanıcı hikayesine dayandığı , ancak bunun tarafından reçete edilmediğidir . Bunun yerine, uygulama (veya tercih ederseniz spesifikasyonlar), özelliğin işbirliğine dayalı bir şekilde geliştirilmesi sırasında üzerinde çalışılacak ayrıntılardır.