SPA Conference session: TDD as if You Still Mean It | |||
One-line description: | What would happen if you really did let Tests Drive your Development? | ||
Session format: | Workshop (75 mins) [read about the different session types] | ||
Abstract: | "TDD" is probably the highest profile and most widely adopted technical practice from the Agile toolkit. But, I see a lot of this sort of thing: • Think up a design • Write a bunch of tests that say the design exists • Write the implementation • Test, debug, test, debug, test, debug, test, debug, debug, test, debug, test, debug • Write a TODO saying to refactor That's not really TDD. In this session we will try doing this: • Add a test – The very simplest test you can think of • See it fail • Make all tests pass – By writing the least code possible • Refactor - design thinking goes here • Repeat until done With some very strict rules in place about what the "simplest" test and the "least" code are, to force the Tests to really Drive the Development. | ||
Audience background: | Programmers NB This is a hands-on session so attendees should bring a laptop or be prepared to share. No specific language or tools need be installed beforehand but attendees should bring a machine on which they can do programming of some kind within an automated unit test environment. | ||
Benefits of participating: | Gain an appreciation of the possibilities of TDD as a design tool. Gain an understanding of the kinds of problem-solving strategies that other programmers use in applying TDD Previous attendees at these sessions have said things like this: "I’d highly recommend [TDD as if You Meant It] as something to do on a relatively regular basis to help refresh your TDD muscle memory" — Rob Bowley | ||
Materials provided: | a few slides outlining the maximum-discipline interpretation of TDD and describing a simple and familiar problem domain to address | ||
Process: | Work in pairs with pauses for reflection and a show-and-tell at the end. | ||
Detailed timetable: | 00:00 - 00:15 explain the process, with a couple of examples done collectively to get folks going 00:15 - 01:00 programming in pairs 01:00 - 01:15 highlights and lowlights | ||
Outputs: | A version control system will be set up to capture the code written by attendees as it evolves, which will subsequently be studied and some conclusions published somewhere, probably. | ||
History: | this was one of the most talked-about sessions at Software Craftsmanship 2009 http://parlezuml.com/softwarecraftsmanship/sessions/tdd_as_if_you_meant_it.htm and was popular at Spa 2010 I have since run and refined the session at Agile Cambridge ( http://www.infoq.com/presentations/TDD-as-if-You-Meant-It ) and XP Day 2011 as well as at private events. It has been run subsequently by others at various conferences and gatherings and has become a recognised "advanced TDD" exercise for code dojos and code retreats. http://coderetreat.org/facilitating/activities/tdd-as-if-you-meant-it | ||
Presenters | |||
1. Keith Braithwaite Zuhlke Ltd |
2. | 3. |