In my experience, there are some skills that are hard to learn as a professional programmer. You learn a lot on the job, via trial and error, and coaching from your peers. Occasionally you go on a training course and learn the basics of a new framework or language. Neither of those ways is particularly effective when it comes to a skill like Test Driven Development.
There are several reasons for this. It’s hard to change the habits of a whole career in a two day class. Then when you get back to work you discover your system is not designed with testability in mind, and adding tests later is really difficult. Alternatively you may find yourself working on some kind of greenfield development where it should be easier. The trouble is you find writing tests slows you down so much, you have to abandon them as deadlines loom. In the best case, adding tests afterwards becomes the norm, and in the worst case they are not written at all.
I've found that having a regular forum for learning, called a \"coding dojo\", can make all the difference to professionals who want to learn skills like Test Driven Development.
When you step into the coding dojo, you leave your daily coding environment, with all the associated complexities and problems, and enter a safe environment where you can trystuff out, make mistakes and learn with others. It's a breathing space where the focus is not on delivering solutions, but rather on being aware of what you actually do when you produce code, and how to improve that process. The benefits multiply if you can arrange to bring your whole team with you into the dojo. Through discussion and practicing on exercises, you can make a lasting impact on the way you work together.
In this talk I'd like to explain what a coding dojo is, and why you might be interested to take part in one.
Emily Bache is a software developer and automated testing specialist. She currently works for Pagero in a development team, and part-time at her own company, Bache Consulting. She enjoys the combination of daily programming, using tools such as Scala, Python, TextTest and Docker, with occasional training and consulting engagements. Emily is the author of The Coding Dojo Handbook: a practical guide to creating a space where good programmers can become great programmers and loves to coach and teach developers about Clean Code, Test Driven Development, Refactoring, and more. Emily speaks regularly at international events such as Agile Testing Days, XP2014, ACCU, and recently gave a keynote address at Europython in Berlin.