Ketika saya ingin mendorong penggunaan Test Driven Development, saya menjalankan Cyber-Dojo . Dengan latihan semacam ini, penekanannya bukan pada kode itu sendiri, tetapi pada proses penulisan kode .
Kami menghabiskan satu sore, berpasangan, mengulangi kata yang sama, tetapi dalam kondisi yang berbeda. Kami mulai dengan semua kelompok melakukan satu latihan pada saat yang sama. Ini memberikan garis dasar.
Kami kemudian membahas beberapa prinsip dasar TDD, meminta setiap orang berganti mitra dan mengulangi kata yang sama. Kami mengulangi kata yang sama untuk mengurangi penekanan pada pembuatan kode dan sebagai gantinya memusatkan orang pada proses penamaan kasus uji dan siklus Merah / Hijau.
Kemudian kami mengulangi kata itu lagi, tetapi kira-kira setiap 10 menit satu orang di setiap kelompok akan pindah ke kelompok lain, mensimulasikan lingkungan tim yang agak cair yang sering kita temukan di masa sekarang.
Dalam iterasi terakhir, kami meminta kedua mitra berganti setiap 10 menit atau lebih menjadi grup yang berbeda. Ini membantu untuk menunjukkan bahwa dengan TDD, bahkan penyerahan dari satu tim ke tim yang sama sekali berbeda tidak perlu terlalu menyakitkan, karena proyek seharusnya hanya setiap satu siklus Merah / Hijau dari bekerja.
Yang menarik adalah, ada beberapa orang yang telah melakukan TDD sebelum sesi, tapi apa pengetahuan TDD di sana dengan cepat menyebar sampai dengan iterasi akhir melalui kata, kebanyakan orang berpikir dengan cara TDD atau setidaknya bisa menghargai mengapa mungkin bermanfaat.
Orang-orang pada umumnya mengatakan bahwa sore itu menyenangkan dan informatif dan kami sekarang mencari cara lain untuk menggunakan Cyber-Dojo di tempat kerja saya.
Cyber-Dojo , yang ditulis oleh Jon Jagger , bekerja sangat baik untuk latihan semacam ini. Ini adalah lingkungan berbasis web yang terintegrasi untuk melakukan praktek yang disengaja dari TDD dan belajar tentang dinamika tim. Ini memiliki banyak kata yang dipilih secara khusus untuk membantu orang berkonsentrasi pada proses TDD dan bukan masalah. Ini juga mendukung berbagai bahasa, dari Python dan Ruby ke Java dan C ++.
Yang terbaik adalah, setelah melakukan kata, Anda dapat kembali dan melihat perkembangan merah / hijau (atau mungkin tidak * 8 ') dari masing-masing kelompok yang berpartisipasi. Itu lampu lalu lintas adalah cara yang bagus untuk memvisualisasikan bagaimana proses TDD bekerja.
Jika Anda ingin server CyberDojo Anda sendiri, seluruh proyek dapat ditemukan di github dan bahkan ada mesin virtual alat Turnkey Linux yang ditautkan dari sana, yang berarti bahwa dengan asumsi Anda sudah menginstal VMware player atau VirtualBox , Anda dapat menjalankan dan menjalankannya di dalam beberapa menit mengunduh alat!