Name
API TEST - Using Test-Driven Development to solve real problems
Description
Test Driven Development (TDD) is often taught using simple katas. When you get back to your desk, however, you have to solve real world problems. This workshop will focus on one significant challenge that we all experience when trying to put theory into practice -- solving complicated problems in small steps. For TDD to be successful, you need to be able to work iteratively, breaking the problem down into its constituent pieces, each of which can then be solved quickly, in response to the next failing test. But, it's not always obvious how to decompose the problem that you're working on into a sequence of small steps that lead to a complete solution. While there are many examples of problems that are relatively simple to decompose (e.g. bowling game or FizzBuzz), the real world is rarely so obliging. It's usually easy to identify the first test and get it to pass. Getting the second test to pass, however, apparently requires solving the whole problem. Without the rapid cadence of seeing tests go from failing to passing, much of the value of TDD is lost. In this session I will introduce you to a kata that seems to be hard to decompose. I'll work through this to demonstrate why it is hard to TDD. Then I'll introduce you to a technique that I've been practicing which I call "test recycling". I'll ask you to try to TDD the problem using this technique, and then we'll review how you got on. I hope the workshop will add a new technique to your TDD toolbox. This workshop is for you whether you have tried TDD only once or use TDD every day. Come along if TDD interests you. I'll be asking people to work in pairs or small groups in breakout rooms using an online development environment called Cyber-Dojo, which only requires an internet connection and a browser.
Sebastian Rose
Session Type
Workshop