A unified theory of software evolution

Matt Jones pointed to this Salon article about software evolution. In it, the idea of a theory of software evolution is discussed -- a theory that would allow computer scientists to figure out how to control feedback loops in a development life cycle in order to "stave off crippling over-complexity for longer periods of time".

I find the article fascinating because one of the issues with evolutionary design that Frederick Brooks points out is that "the entropy of a system increases with time unless specific work is executed to maintain or reduce it." At the core of evolutionary design is the drive to update software in pieces over time, which means a good deal of maintenance of code. As pieces and patches are added, they affect other aspects of the application down the line. CS folks are part of a young field that is looking for a theory that will provide them some predictable cues to look for in order to control software entropy.

This fascinates me. CS people are trying to apply hard science to reduce data about the software development cycle to a theory that controls break down due to over-complication or over-growth. Science is fascinating. The work we deal with as managers of information is so soft, so fuzzy. We rely on best practices to develop content delivery strategies that will hopefully scale, and that will undoubtedly require maintenance. I like Meir Lehman's software laws. Where are our rules of information management or organization? Can anyone point to any overarching hypotheses of information management/provision with a set of laws. I would like to see that one day. Or is the stuff we do too soft to apply any science to?