Typically, we first write and test our applications and then work on containerizing them right before shipping or deployment. For most of us, the first time our application actually runs in a container is in production. This is not ideal as it causes issues with containerization to be discovered too late in the development cycle. An alternative approach is to introduce containers from the very get-go of the application development process. The core idea behind Container Driven Development is to write, execute and test every line of code inside a containerized environment from the very beginning of the application development cycle. The biggest advantage this has is that it enables us to develop and test our application in an environment that could be made to look and behave exactly like our production environment.