So where do we begin a new application with TDD? Starting with TDD in mind is really no different from beginning any software development project. A developer must have some idea as to the goal of the application. The basic requirements should be understood. Just as we grow our application with tests, the requirements should grow with time.
A clean slate
One bite at a time
How do you eat an elephant? One bite at a time.
It is a massive undertaking to try to define and develop a monolithic application all at once. If you were tasked with creating Facebook you might not know where to begin. But, if you break the application down into logical portions such as Login, User Dashboard, and News Feed, it becomes much more manageable...