Saya sedikit pendukung vokal dari metodologi Pengembangan Perilaku Didorong (alias BDD). Saya telah menerapkan BDD selama beberapa tahun sekarang, dan telah mengadopsi StoryQ sebagai kerangka pilihan saya ketika mengembangkan aplikasi DotNet. Meskipun saya telah menguji unit selama bertahun-tahun, dan sebelumnya telah bergeser ke pendekatan test-first, saya telah menemukan bahwa saya mendapatkan nilai lebih dari menggunakan kerangka BDD, karena tes saya menangkap maksud dari persyaratan dalam relatif bahasa Inggris yang jelas dalam kode saya, dan karena tes saya dapat menjalankan beberapa pernyataan tanpa mengakhiri tes setengah jalan - yang berarti saya dapat melihat pernyataan spesifik yang lulus / gagal sekilas tanpa debugging untuk membuktikannya.
Ini benar-benar menjadi puncak gunung es bagi saya, karena saya juga memperhatikan bahwa saya dapat men-debug kode pengujian dan implementasi dengan cara yang lebih bertarget, dengan hasil bahwa produktivitas saya telah tumbuh secara signifikan, dan bahwa saya dapat lebih dengan mudah menentukan di mana kegagalan terjadi jika masalah terjadi untuk membuat semua jalan ke build integrasi karena output yang masuk ke log build. Lebih lanjut, api StoryQ memiliki sintaks fasih yang indah yang mudah dipelajari dan yang dapat diterapkan dalam sejumlah cara yang luar biasa, tidak memerlukan dependensi eksternal untuk menggunakannya.
Jadi dengan semua manfaat ini, Anda akan merasa mudah untuk memperkenalkan konsep ini ke seluruh tim. Sayangnya, anggota tim yang lain enggan untuk bahkan melihat StoryQ untuk mengevaluasinya dengan benar (apalagi menghibur ide menerapkan BDD), dan telah meyakinkan satu sama lain untuk mencoba dan menghapus sejumlah elemen StoryQ dari kerangka pengujian inti kami sendiri, bahkan meskipun mereka awalnya mendukung penggunaan StoryQ, dan meskipun kode yang ingin mereka hapus tidak berdampak pada bagian lain dari sistem pengujian kami. Melakukan hal itu pada akhirnya akan menambah beban kerja saya secara keseluruhan secara keseluruhan dan benar-benar bertentangan dengan keinginan, karena saya yakin melalui pengalaman praktis bahwa itu adalah cara yang lebih baik untuk bekerja dengan cara uji-pertama di lingkungan kerja khusus kami, dan hanya dapat mengarah pada peningkatan peningkatan kualitas perangkat lunak kami, mengingat saya Saya merasa lebih mudah untuk tetap dengan tes pertama menggunakan BDD. Untuk lebih memperjelas, sebagian besar unit test kami cenderung sangat rapuh dan sulit untuk dipertahankan, peninggalan dari tahun pengujian yang diterapkan dengan buruk di mana keengganan untuk bertahan dengan proses yang digerakkan tes telah melihat pengembang jatuh pada kebiasaan lama dan lakukan semua pengujian mereka di akhir proyek (orang-orang yang sama ini mengklaim Agile!).
Jadi pertanyaannya benar-benar muncul sebagai berikut:
- Argumen apa yang dapat saya gunakan untuk benar-benar mengarahkan poin bahwa akan lebih baik bagi tim ini untuk menggunakan StoryQ, atau paling tidak untuk mengadopsi metodologi BDD?
- Dapatkah Anda menunjukkan bukti anekdotal yang dapat saya gunakan untuk mendukung argumen saya untuk mengadopsi BDD sebagai metode pilihan standar kami?
- Argumen balasan apa yang dapat Anda pikirkan yang dapat menyarankan bahwa keinginan saya untuk mendorong tim untuk mengadopsi BDD mungkin salah? Ya, saya senang terbukti salah asalkan argumennya masuk akal.
CATATAN : Saya tidak menganjurkan agar kami menulis ulang pengujian kami secara keseluruhan, melainkan untuk mulai bekerja dengan cara yang berbeda untuk semua pekerjaan pengujian di masa depan, dan lebih disukai dengan cara kami melibatkan pelanggan kami.
Dan bagi Anda yang ingin mempelajari lebih lanjut tentang BDD, tautan berikut mungkin berguna:
- http://dannorth.net/introducing-bdd/
- http://en.wikipedia.org/wiki/Behaviour_driven_development
- http://behaviour-driven.org/Pengantar
Bagi mereka yang tertarik pada detail lebih lanjut, kami adalah tim kecil yang terdiri dari 4 orang yang mengerjakan sekitar 5 proyek besar. "Uji coba percontohan" untuk BDD berjalan sekitar 2 bulan pada awalnya, dengan sekitar 4 bulan berikutnya. Tim menerima bahwa saya harus terus bekerja dengan cara ini dan harus melakukan uji coba sendiri. Saya sudah mengalami BDD selama sekitar 2 tahun sekarang sejak persidangan berakhir, sementara yang lain menjadi sangat pandai mengelak masalah ini. Alih-alih memaksakan "konfrontasi" atas masalah ini, saya mencari cara untuk dengan lembut membujuk tim untuk keluar dari belakang kolektif mereka dan meluangkan waktu untuk melakukan bagian mereka.
sumber
Jawaban:
"Pelanggan menginginkannya."
IMO Anda ingin menjual BDD kepada pelanggan Anda / pakar domain setidaknya sebanyak ke tim pengembangan.
BDD adalah proses kolaborasi luar-dalam di mana banyak pemangku kepentingan terlibat. Manfaat BDD tidak hanya bagi pengembang untuk secara otomatis menyimpulkan kode tes mereka dari tes penerimaan, mereka juga terletak pada kerja sama kreatif yang terjadi antara orang-orang teknis dan bisnis untuk menghasilkan spesifikasi berharga, yang didefinisikan dengan baik dari perilaku sistem yang dimaksudkan.
Memberikan pelanggan / analis bisnis akses ke antarmuka di mana mereka dapat menjalankan setiap spesifikasi yang dapat dieksekusi, mengontrol status mereka dan melihat perkembangan dalam implementasi mereka umumnya sangat dihargai juga.
Ada presentasi oleh Dan North tentang bagaimana Anda dapat menjual BDD ke bisnis: http://skillsmatter.com/podcast/java-jee/how-to-sell-bdd-to-the-business
sumber
Saya pikir yang terbaik yang dapat Anda lakukan adalah meyakinkan mereka untuk mencobanya ("tes asap", "lari kering", "proyek percontohan") - terutama jika Anda membuatnya sangat jelas bahwa Anda akan membatalkan gagasan jika hasil pengujian negatif.
Tidak satu pun dari ini yang sangat konstruktif, terutama dari sudut pandang "advokat perubahan" tetapi sayangnya Anda mungkin harus berurusan dengan retorika ( BTDTGTTS ) seperti ini:
Per pengalaman saya, cara paling tidak menyakitkan untuk mengatasi argumen kontra seperti yang tercantum di atas adalah dengan melakukan uji coba terkontrol terbatas untuk perubahan yang diusulkan.
Status "pengujian terbatas" pada dasarnya membatalkan tiga dari empat argumen di atas, kecuali satu tentang "vendor terhormat", yang dapat dilawan dengan memberikan bukti anekdotal kisah sukses (bukti anekdotal mungkin tidak akan bekerja untuk "perubahan besar" tetapi untuk pengujian terbatas itu cukup bagus).
Jika perubahan itu memang bermanfaat dan uji coba diatur dengan benar, Anda akan melihat perubahan positif dalam tim dan sikap manajemen, membuat transisi ke perubahan skala penuh lancar dan tidak menyakitkan.
Manfaat lain dari uji coba terbatas adalah memungkinkan Anda mengklarifikasi dan menyesuaikan detail proses target tanpa menyebabkan terlalu banyak masalah dan dengan risiko "kerusakan reputasi" yang lebih rendah terhadap ide tersebut. Setiap kali saya berpartisipasi dalam uji coba semacam itu , saya terkejut mengetahui betapa mulusnya beralih ke adopsi skala penuh dengan rincian paling penting ditetapkan dan diklarifikasi dalam uji coba.
sumber
Mungkin sudah waktunya untuk merekrut manajemen. Jika Anda telah mencoba dan melihat hasil yang solid, tetapi tim menolak, manajemen mungkin harus terlibat.
Ini terutama benar jika mereka menyakiti anggota tim perusahaan yang paling produktif. Bersiaplah untuk serangan balasan. Anda dapat mulai dengan mendekati manajemen dan berusaha agar tim berhenti meremehkan Anda dengan mengambil test case Anda.
sumber