This is a guest post by Divya Sasidharan, a web developer at the Knight Lab.
Interested in telling your story here? Reach out to our team at blog at circleci.com
In agile development methodology, test-driven development is seen as the embodiment of good coding practice. The “test first, code later” approach to writing software not only blends well with the short sprints intrinsic to agile development, it also enables developers to focus on the requirements and design of a system without getting sidetracked. However, given that a project undergoes different stages of development with varying requirements and specifications, a test-driven approach is not always conducive to development.
In a fairly new codebase, or in a prototype application, where code is being added and refactored at a rapid pace, tests can add friction that slows down development. Conversely in a more stable codebase, tests protect the integrity of an application. Considering this, how can we more productively think about testing as a whole and adapt to the ebbs and flows of a project lifecycle?