In this chapter, we drove the development with customer tests. We began by first writing a customer test for the new feature. This test failed when it was run, as expected. We used this failing customer test as a very explicit form of requirements definition. However, the customer test is at too high a level to be able to drive development of the implementation. To drive the development, we turned back to programmer tests to flesh out the rest of the implementation. We started at the data access layer, drove the development back through the Web service, and eventually to the customer tests.