This morning I went along to @emilybache’s #xp2011 TDD dojo. Here’s a series of things I got out of it:
Building blocks of Engineering Practices:
Here (from the bottom up) are the things needed by every software project.
5 Exploratory Testing
4 Automated Checks
3 Continuous Integration
2 Automated Build
1 Version Control
1 – everyone needs version control.
2 – automate your build process. Make it repeatable, make it one click
3 – run your build process every time someone makes a commit
4 – get your CI server to run a suite of automated tests to check your code does what it’s supposed to do.
5 – get someone to manually test your software by exploring the system and trying new things.
Always remember TDD is not your only source of feedback. Ideally you need a Human to catch those bugs and usability issues BEFORE your users do!
– analyse the problem
– test list
– guiding test (indicates when the coding session is complete)
TDD is testing as it’s exploring and asking questions.
Testers – problem finding mindset
Developers – problem solving mindset
There was a whole lot about TDD and why you should do TDD, but I’m already doing it and sold on not only how great it is, but also why I’m doing it.
The interesting bit was the Dojo.
Dojos are places that people meet to learn karate.
Kata’s are a sequence of moves that you are taught at the Dojo which you can then practice and repeat. The katas she shared were Minesweeper and Roman Numerals.
We were going to attempt the Minesweeper kata.
Emily started the session off by standing at a large pad jotting down a few ideas of tests. This is the “starting” move. Everyone contributed with ideas, we added a guidance test (an input grid and an output grid) and some more basic tests. We also discussed data storage.
The next move was “Red”. Emily sat down with a member of the audience At a computer attached to the projector and began to write the first test. After 5 mins she let someone else replace her and her pair took the driving seat. This repeated as we all got to have a go. As time went on everyone in the audience was contributing, shouting out ideas and shaping some (we must all admit) very shoddy code!
My mind went into over drive. After discussions and some frantic pen scratching on my pad I think we’re going to have a weekly Dojo in Nottingham! I’ve got ideas for formats, topics/techniques to focus on and @neilkilbride to help! Unless @samwessel beats us to it!