To the degree that a software system is large and distributed enough that there is no effective single point of control, we must expect evolutionary forces.
...
There is much to be gained by recognizing and accepting that computational systems resemble naturally evolving systems much more closely than they resemble engineered artifacts such as bridges or buildings.
Specifically, the strategies that we adopt to understand, control, interact with, and influence the design of computational systems will be different once we understand them as ongoing evolutionary processes.
-- D. H. Ackley et al. 2002
Here an example on how TDD practices can be evolutionary forces that...