DEV Community

Discussion on: Introduction to Agile

Collapse
 
_moehab profile image
Mahmoud Ehab • Edited

Hmm...
I hadn't read "The Paragmatig Programmer" before, despite reading about it from Twitter a long time ago. 
I'll add it to my list.

Obviously, there are two different approaches in applying TDD. I have two references for the one I mentioned here (that leads to a messy structure of the program, and follows agile principles as well. Minimalistic and simplicity are essential in Agile Development); the first one is Meyer's book, while the second is one of Robert Martine lectures.

In "Agile! The Good, The Hype, and The Ugly" book, page 9, Meyer says:

Refactoring is particularly necessary in connection with test-driven development: a process consisting solely of adding a code element for every new test would yield programs with a messy, ad-hock structure; refactoring is necessary to maintain a clean design.

In this TDD demo, Uncle Bob demonstrates how should we apply TDD in our projects. If you watched this demo, it definitely would be clear for you, how TDD creates code with a messy structure.
https://youtu.be/58jGpV2Cg50&t=2630s

Eventually, I'd like to share this debate between Robert Martine and Jim Coplien with you. It leads us to believe that agile proponents have a different perspective on TDD, which is the one used in this article to define TDD.
youtu.be/KtHQGs3zFAM

I hope everything is clear now.
Cheers.