Kata Level: 1
1° Focus: Kata Intro
This is where it all begins. Started with a new team, six people, who have never done katas, TDD or even pairing. First session went well. I went through the principles of Kata Culture:
What is a code kata? It's time we deliberately take to learn and expand our development skills and knowledge. We use a code problem as a medium with which we explore and learn.
What is Kata Culture? We approach the kata with the mindset of using three philosophies: Learning/Performing Distinction, Deliberate Practice and turning objects into tools.
What are the Kata Rules? Four simple rules...
One primary focus point
Simplest solution (think quick and dirty)
Anything goes, as long as you are following 1 and 2
Working software wins...prove it
Once we'd gone over the ground rules, I gave them 45 minutes and FizzBuzz to work on. They immediately went their individual ways and started coding. Four out of the six started console applications, two went with unit test projects.
Along the way a couple of them were struggling with coding the problem so I paired them up.
For the couple people who were successfully writing console applications to solve the problem, I would come up and ask them to prove to me their solution worked and they'd run their program for me. I'd ask, show me 3, 25, show me 45. What if I added divisible by 7, show me...prove to me that adding that didn't break 3, 25 and 45.
At the end of the 45 minutes we had a quick retro about how things went.
A console app is not sustainable with me modifying requirements and constantly asking them to prove that the code works.
The unit test framework helped shut me up. The tests were a simple way to prove that all the cases worked, even when adding new functionality.
The two people who were struggling independently, when paired up actually shot forward and were surprisingly productive.