Last week I ran a workshop for agile teams in Mumbai, which I'm so glad to visit again and again and see their progress. This time we plunged into Concurrent Unit Testing. I am lately avoiding the term TDD, not because there's anything wrong with the practice itself but sometimes I see this weird perception: "TDD is not for us", "it's too extreme" etc. Well, it is extreme, but who said extreme things aren't simple?
Four hours of kata session (see previous posts to see how "kata" format works in different cases) was quite enough to kill a couple of myths. First myth, saying that writing tests before code isn't natural... I guess teams realized quite the opposite after their first few methods implemented after we specified their behaviors as JUnit tests. Second myth, saying that pair work is too extreme. I think guys didn't even notice that they started spending 100% time with a partner in front of a notebook.
So, two people always sitting at the front table... writing tests, coding, talking out loud. What they do is on the projector. Everybody sees that and think about the next steps. Every 7-10 minutes we change one of the partners with someone from the group and move on, and then introduce another new person in the next 10 minutes and so on.
The process is very smooth, we would only halt to emphasize something important to the audience, e.g.: "now, if we have a situation when a test compiles but causes run-time exception - this very likely means that we will be adding more tests to catch the problem with this test"... and then we would move on again.
Couple more steps and our Enterprise Chat Server is now functioning and we move to its advanced features. Devs rushing to make further progress...
Oh... and the polar teddy bear that I bought in Vienna for these guys as a prize for the best performance went to two guys this time, because it was really hard to decide who of them was a better agile dev. Now each of the two will own the bear for a sprint, because guys are from different scrum teams.
It was fun... for everyone, even though it's hard work. Only Eclipse, JUnit and no Powerpoint slides.