A clean slate
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.
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.
Minimum Viable Product
Each definition of work should be broken down into small deliverables. The concept of a Minimum Viable Product can apply to all aspects of our code. As the requirements for the monolithic application are broken down into manageable chunks, it might...