TDD Is A Broken Practice • Dave Farley • GOTO 2025
AI Summary
In this video, Dave Farley critiques a common perspective on test-driven development (TDD), particularly as articulated by Art Zachenko. Zachenko argues that TDD requires prior knowledge of system behavior, which many developers lack. Farley counters this by explaining that TDD encourages an incremental, evolutionary approach to software design, allowing developers to work effectively even in rapidly changing environments like web development. He emphasizes that the main value of TDD lies not only in its testing capabilities but also in its ability to drive better design choices and promote smaller, manageable steps in development.
Farley illustrates how TDD can be misinterpreted, noting that beginners often confuse writing tests with predicting their implementation. He argues that TDD allows for explorative design, where developers can experiment with small increments of code without significant overhead. By starting with simple tests, developers can refine their designs iteratively, making the process more flexible and scalable ultimately equipping teams to manage complex projects more effectively. Farley concludes by reaffirming that TDD enhances feedback on design choices, helping teams navigate the intricacies of software development.