Jika Anda dapat menurunkan skenario dari deskripsi, Anda sudah selesai.
Anti-pola yang sering saya lihat dalam BDD adalah orang-orang merasa perlu untuk membicarakan, dan menulis, setiap skenario secara terperinci.
Beberapa skenario dipahami dengan baik sehingga cukup untuk menurunkannya dari deskripsi singkat. Misalnya, jika saya berkata, "Saya ingin fitur login minggu ini," Anda tahu seperti apa tampilannya. Anda tahu bahwa ada skenario untuk kata sandi yang benar, kata sandi yang salah, nama pengguna yang salah. Kami tidak benar-benar perlu membicarakannya atau menangkapnya secara detail.
Demikian pula, saya mungkin berkata, "Ini formulir untuk pendaftaran pengguna. Kita harus dapat membuat pengguna baru, membiarkan mereka mengedit detail mereka, dan menghapus diri mereka sendiri, kecuali penghapusan itu seharusnya tidak benar-benar dihapus, itu hanya harus menandai mereka sebagai dihapus sehingga mereka dapat memulihkan akun mereka jika mereka mau. "
Dan Anda dapat bertanya, "Apakah pemulihan akun bagian dari fitur ini?"
"Mereka bisa menjadi dua fitur jika kamu mau."
"Oke, jadi kita punya skenario untuk membuat, membaca, memperbarui, menghapus; itu seharusnya cukup mudah. Mari kita bicara tentang pemulihan akun; itu terdengar lebih menarik."
Secara umum, jika deskripsi perilaku cukup bagi tim pengembang untuk membuat skenario, Anda tidak perlu membicarakannya. Anda dapat melakukannya jika ada keraguan, tetapi Anda mungkin hanya ingin menangkap skenario mana yang perlu Anda ingat, jika Anda menangkapnya sama sekali.
Jika Anda belum pernah melakukannya sebelumnya atau Anda tidak yakin, bicaralah melalui skenario.
Fokus pada area yang tidak biasa, terutama jika ada fitur yang belum pernah Anda lakukan sebelumnya. Ini adalah tempat yang luar biasa untuk melakukan percakapan dan menuliskan semua contoh mengejutkan yang muncul. Saya biasanya memiliki dua pertanyaan yang saya ajukan, berdasarkan pada template BDD:
Diberikan konteks
Ketika suatu peristiwa terjadi
Maka hasil harus terjadi.
- Apakah ada konteks lain yang, untuk acara yang sama, menghasilkan hasil yang berbeda?
- Apakah ada hasil lain yang juga penting?
Jika semua orang di meja terlihat bosan, fitur yang Anda bicarakan mungkin dipahami dengan baik. Cukup sering mengatakan, "Seharusnya berfungsi seperti X , tetapi dengan Y sebagai gantinya." Inilah yang disebut Dan Utara sebagai pola Kue Jahe ; itu seperti resep kue cokelat, tetapi dengan jahe, bukan cokelat.
Bahkan jika pemangku kepentingan bisnis mampu membuat skenario sendiri, sangat penting bagi tim pengembang untuk dapat berbicara dengannya, mengambil dan menginternalisasi bahasanya. Bahasa itu kemudian dimasukkan ke dalam kode, memungkinkan mereka untuk melakukan percakapan yang lebih baik di masa depan, dan membantu pendatang baru dalam proyek memahami apa yang terjadi. Jika para devs tidak bisa berbicara bahasa, mereka tidak akan menggunakannya .
Jika pemangku kepentingan bisnis atau analis benar-benar tidak ingin menghabiskan waktu untuk menangkap hal-hal dalam sesi, saya lebih suka para pengembang menuliskan skenario dalam kolaborasi dengan para penguji, kemudian memintanya untuk meninjaunya. Ini lebih cenderung mengungkap kesalahpahaman daripada sebaliknya.
Terkadang BDD tidak berfungsi.
Kemungkinan lain adalah Anda menemukan skenario yang tidak pasti oleh pemangku kepentingan bisnis. "Oh, aku tidak memikirkan itu! Aku tidak yakin." Daripada mencoba menghentikan bisnis dan menghukum bisnis dengan pasti, mungkin lebih baik meninggalkan BDD pada titik ini dan mencoba sesuatu yang sederhana untuk mendapatkan umpan balik dan memberikan bisnis sesuatu yang dapat mereka ulangi. Tetap mudah untuk berubah, dan tulis skenario setelah ada pemahaman yang lebih baik tentang apa yang terjadi.
BDD yang dilakukan dengan baik dapat benar-benar membantu mengungkap tempat-tempat ketidakpastian. Karena setiap melakukan senilai proyek memiliki beberapa aspek itu yang baru dan belum pernah dilakukan sebelumnya, ada adalah beberapa ketidakpastian di sana, di suatu tempat. Jika Anda fokus menggunakan skenario untuk membantu secara sengaja menemukan ketidaktahuan , Anda akan belajar lebih cepat, dan belajar biasanya merupakan sebagian besar waktu yang dihabiskan untuk sebuah proyek.
Selain itu, saya telah menemukan bahwa semakin banyak tim pengembang berkolaborasi dengan cara ini, semakin banyak bisnis dipersiapkan untuk mempercayai mereka dengan ketidakpastian, dan semakin banyak inovasi mulai terjadi. Perusahaan yang inovatif, pada dasarnya, memiliki banyak ketidakpastian dalam proyek mereka.
Saya menulis posting blog beberapa waktu lalu di Cynefin , yang saya temukan benar-benar membantu saya memahami di mana percakapan akan paling efektif. Jika Anda membacanya dan memahami keempat domain tersebut, berikut adalah aturan yang saya gunakan:
Hal-hal sederhana dan rumit (dikenal) sering dipahami dengan baik dan Anda tidak perlu membicarakan skenario secara terperinci.
Hal-hal yang sangat kompleks (tidak diketahui) sama sekali tidak dipahami. Anda dapat menemukan ini dengan berbicara melalui skenario. Kurangnya kepastian berarti bahwa BDD tidak akan bekerja di sini, jadi beralihlah ke sesuatu yang mudah diubah dan dapatkan umpan balik yang cepat sebagai gantinya. Praktik apa pun yang mempertahankan pilihan Anda, seperti pengujian AB, juga bagus di ruang ini.
BDD bekerja dengan cemerlang di ruang di antaranya (dapat diketahui) sebagai mekanisme untuk menyampaikan pengetahuan, dan untuk mengungkap dua ruang lainnya. Ini bukan palu, dan tidak semuanya paku. Bahkan, jika Anda dapat memfokuskan waktu yang dihabiskan untuk melakukan percakapan pada apa pun, ini bukan tentang contoh yang dapat Anda temukan; ini tentang menemukan contoh yang tidak bisa Anda dapatkan .