Doing TDD is not always easy. And to get into test-driving our software, it takes a lot of patience in learning. Since there is lot of that to be expected – learning.
And it does not make it easier to start the learning journey, knowing how some folks are such strong proponents of TDD – what if I don’t learn to master it? What if I don’t know where to start from? What if I fail in learning it? There are a lot of these ‘what-ifs’ in starting the journey to become master in test-driving our software.
These unknown unknowns, causing uncertainty, can make the first step to be very big, and scary.
We here, at Ambientia, chose to support each other in taking the first step. In our internal Software Craftsmanship community, we came up with this idea to have a common time and place for us to start the learning journey. And since the first step is often the hardest, we decided to have a ‘TDD Demo Room’, where anyone could bring code they are working with and which they’d like to start writing tests to. The format in which we chose to work is one of mob programming with one driver (the one who came up with the problem) and all the rest as navigator-mobs. Together, we can celebrate our journey of learning
Our more senior TDD practicioners would help the mob by finding insights and guiding where to start from – what would be the first test, what would be the first assert. Later, I hope, there will be no more relative seniority within our TDD practicioners, rather we’d all discuss and apply our ideas and thoughts on our weekly mob-sessions. Then I could take my role as more of a facilitator and less of a TDD practitioner
Of course, since retrospectives are quite close to my heart, we close the session with retrospectives, aiming to improve the setup, to celebrate our success (learning) and to relate to each other.
After two sessions and two different problems, namely
- how to test private functions (with no side-effects)
- how to test code that uses static functions from 3rd party libraries.
… we have already seen the change we want to be – some people have taken the first steps toward mastery in TDD. And having a community supporting that is one key ingredient to success.
Stay tuned, more will be said later.