Does software development evolve?

Salon: A unified theory of software evolution (via Slashdot). The upshot is that software development (a) goes much more slowly than a linear rate; (b) is driven by various feedback loops including market demand, internal debugging, and the whims of individual developers; (c) can be characterized as a tradeoff between debugging and growth. The author of the theory, Meir Lehman, characterizes the issue as managing entropy.

While this doesn’t seem groundbreaking on the surface (heck, even Microsoft has figured out the last point), it’s a fact that escapes most managers of software development efforts, often with disastrous consequences (remember Rhapsody?). It’s also funny that, even in a surface examination of this question, you run into the most painful problems with software engineering: how do you measure software development? how do you manage the trade-off between specifications and adapting to the unknown?