Building Robust Systems - Gerald Sussman (2007) [pdf]
groups.csail.mit.eduThis is a biological metaphor that has been stretched too far. Natural selection has produced impressive systems and ecosystems that provide some redundancy, but humans are much better at deliberate effort and fast conscious feedback loops, and as long as humans are writing software the way we do it should play to human strengths.
We of course can do better then random mutations when it comes to designing systems, but I think the point here is that we can not rewrite our systems from scratch all the time to get the design correct each time a new constraint or requirement appears because it is economically not feasible (not only in terms of money, but also in terms of time and effort). As a result, we have to incrementally build up our systems (so evolve them in some sense), and currently, as a result, we often end up with huge spaghetti balls, just think about what it takes to write a modern web application vs. what would it normally take if we now designed some technology completely from scratch having learned the lessons we learned about what the web is used for.
So, even when we do roughly know how a optimal design would look like, we often have to do incremental development and I think finding ways to make it easier is a valid problem at least, even if the biological metaphors aren't directly applicable.
I remember finding this a very interesting read when it first came out. It's clearly colored Sussman's research for the years since, for example his work with Alexey Radul on "propagators".
However, I've never found a way to make it actually work in a real system. The cost of redundancy is high, and you absolutely need a way to pass around the chain of configuration choices with the values. Otherwise, if something goes wrong, or even to understand the values you're getting, you're stuck grubbing through log files (if you're lucky) to find out what happened.
I suppose his propagator research is a way to make this easier to do, but it's so specialized that it becomes an all-or-nothing approach, not something you can incrementally develop towards.