Senaryoları açıklamadan türetebiliyorsanız, işleminiz tamamlanmıştır.
BDD'de sıklıkla gördüğüm bir anti-desen, her senaryoyu ayrıntılı olarak konuşma ve yazma ihtiyacı hisseden insanlar .
Bazı senaryolar o kadar iyi anlaşılmıştır ki, bunları kısa bir açıklamadan türetmek yeterlidir. Örneğin, "Bu hafta oturum açma özelliğini istiyorum" dersem bunun neye benzemesi gerektiğini bilirsiniz. Doğru şifre, yanlış şifre, yanlış kullanıcı adı için senaryolar olduğunu biliyorsunuz. Bunları konuşmamız veya ayrıntılı olarak yakalamamız gerekmiyor.
Benzer şekilde, "Kullanıcı kaydı için form. Yeni kullanıcılar oluşturabilmemiz, ayrıntılarını düzenlemelerine izin verebilmemiz ve kendilerini silebilmemiz gerekiyor, ancak silme işlemi gerçekten silinmemeli, yalnızca silinmiş olarak işaretlenmelidir böylece isterlerse hesaplarını kurtarabilirler. "
"Hesap kurtarma bu özelliğin bir parçası mı?"
"İsterseniz iki özellik olabilirler."
"Tamam, bu yüzden oluşturma, okuma, güncelleme, silme senaryolarımız var; bu yeterince kolay olmalı. Hesap kurtarma hakkında konuşalım; bu daha ilginç geliyor."
Genel olarak, dev takımın senaryoları türetmesi için davranış tanımı yeterliyse, bunlar üzerinden konuşmanıza gerek yoktur. Herhangi bir şüphe varsa bunu yapabilirsiniz, ancak hatırlamanız gereken senaryoları yakalamak isteyebilirsiniz.
Daha önce hiç yapmadıysanız veya emin değilseniz, senaryolar hakkında konuşun.
Özellikle daha önce hiç yapmadığınız özellikler varsa, olağandışı alanlara odaklanın. Bunlar, sohbet etmek ve ortaya çıkan şaşırtıcı örnekleri yazmak için harika yerler. BDD şablonuna dayanarak genellikle sorduğum iki sorum var:
Bir bağlam
verildiğinde Bir olay meydana geldiğinde
bir sonuç ortaya çıkmalıdır.
- Aynı olay için farklı bir sonuç üreten başka bir bağlam var mı?
- Önemli olan başka bir sonuç var mı?
Masadaki herkes sıkılmış görünüyorsa, konuştuğunuz özellik muhtemelen iyi anlaşılmıştır. Genellikle " X gibi çalışmalı , bunun yerine Y ile çalışmalıdır" demek yeterlidir . Dan North buna Zencefilli Kek kalıbı diyor ; çikolatalı kek tarifi gibi, ama çikolata yerine zencefil ile.
Ticari paydaş senaryoları kendisi türetebilse bile, geliştirici ekibinin onunla konuşabilmesi, dilini alıp içselleştirebilmesi gerçekten önemlidir. Bu dil daha sonra koda taşınır ve gelecekte daha iyi konuşmalar yapmalarını sağlar ve projeye yeni gelenlerin neler olup bittiğini anlamalarına yardımcı olur. Geliştiriciler dili konuşamazlarsa , dili kullanmayacaklardır .
İş paydaşları veya analistleri oturumdaki şeyleri yakalamak için gerçekten zaman harcamak istemiyorsa, geliştiricilerin senaryoları testçilerle işbirliği halinde yazmasını ve ardından incelemesini istemesini tercih ederim. Bu, yanlış anlamaları ortaya çıkarmanın diğer yoldan daha olasıdır.
Bazen BDD çalışmaz.
Başka bir olasılık, iş paydaşının belirsiz olduğu bir senaryo bulmanızdır. "Ah, bunu düşünmemiştim! Emin değilim." İşi çivilemeye ve işi kesin bir şekilde cezalandırmaya çalışmak yerine, bu noktada BDD'yi terk etmeye ve geri bildirim almak ve işletmeye tekrar edebilecekleri bir şey vermek için basit bir şey denemeye değer olabilir. Değişimi kolay tutun ve neler olduğunu daha iyi anladıktan sonra senaryoları yazın.
BDD'nin iyi yapılması, belirsizliklerin ortaya çıkmasına gerçekten yardımcı olabilir. Yapıyor her proje değerinde yeni ve daha önce hiç yapılmamış bir kısmı özelliğe sahip olduğundan, orada olduğu yerde, sanki biraz belirsizlik. Cehaleti kasten keşfetmeye yardımcı olmak için senaryoları kullanmaya odaklanırsanız, daha hızlı öğrenirsiniz ve öğrenme genellikle bir projede harcanan zamanın büyük bir parçasıdır.
Buna ek olarak, bu şekilde daha fazla geliştirme ekibi çalıştıkça, onlara belirsizlikle güvenmek için daha fazla iş hazırlanıyor ve daha fazla yenilik ortaya çıkmaya başlıyor. Yenilikçi şirketler, doğası gereği, projelerinde çok fazla belirsizliğe sahiptir.
Bir süre önce Cynefin üzerine bir blog yazısı yazdım , ki bu gerçekten konuşmanın en etkili nerede olacağını anlamama yardımcı oluyor. Bunu okur ve dört alanı anlarsanız, kullandığım kurallar şunlardır:
Basit ve karmaşık şeyler (bilinen) genellikle iyi anlaşılır ve senaryolar boyunca ayrıntılı olarak konuşmanıza gerek yoktur.
Oldukça karmaşık şeyler (bilinmiyor) hiç anlaşılamamıştır. Senaryoları konuşarak bunu keşfedebilirsiniz. Kesinlik eksikliği, BDD'nin burada çalışmayacağı anlamına gelir, bu nedenle değiştirilmesi ve hızlı geri bildirim alması kolay bir şey üzerinde tekrarlayın. AB testi gibi seçeneklerinizi koruyan herhangi bir uygulama da bu alanda harika.
BDD, bilginin aktarılması ve diğer iki mekanın ortaya çıkarılması için bir mekanizma olarak (bilinir) arasındaki alanda mükemmel bir şekilde çalışır. Bu bir çekiç değil ve her şey bir çivi değil. Aslında, sohbet etmek için harcanan zamanı herhangi bir şeye odaklayabiliyorsanız, bulabileceğiniz örnekler ile ilgili değildir; hakkında olduğunu yapamazsın örnekler bulma .