I think that his argument is based on fundamentally different assumptions than the Agile practices. One of the most obvious is the idea that programming is engineering or architecture; however, there are quite a few people who disagree that software can be developed this way. Robert Martin suggests that programmers are craftsmen, not engineers; others suggest that gardening is a good metaphor (http://www.artima.com/intv/gardenP.html).
The article implies that one must write all of your tests first when using TDD, but it fails to mention that they don't need to all be written before the first line of non-test code. When designing a bridge, one does need to design it in great detail before beginning construction, but gardening can be more...organic :)