Timing: 1+ hours
Programmer 1 writes a test and challenges Programmer 2 to make it pass. Programmer 2 attempts to make it pass in as short of time as possible and then writes another test to try to stump Programmer 1. This test could be to fill any gaps that were exploited in the previous test, or to test another part of the system. This continues until all features have been implemented. A winner can be chosen based on total time taken to make tests pass. After each test passes, both programmers collaborate to refactor the solution. This time does not count towards the final score.