What would it take to make software as robust and flexible as living systems? How can we take engineering out of the business of bits and bytes and into the business of organs and organisms? What's the big deal with life anyway? Is it really anything more than some quality of mechanism? Herr Frankenstein made the whole thing seem very messy, but perhaps there's a better way?
Let's start by narrowing the field of inquiry. OrganicSoftware isn't about genetic algorithms or neural nets or protein engineering. It should be more concrete and intrinsic than just grafting on some kind of hocus pocus. Perhaps OrganicEngineering? might be a better name.
So, for a start, let's say OrganicSoftware has to have at least these properties:
Actually, no. One of the problems with this approach is that because the system changes, it becomes harder to diagnose - a real problem when life-critical systems are in use. There is a sci-fi novel that addresses this - a software system that begins to make connections unthought-of by its builders (_The_Two_Faces_of_Tomorrow_, perhaps) --PeteHardie
We also need a change in our debugging strategy.
I don't think software should be organic because that implies the software is self-interested. Software is a tool; it shouldn't have a self. (Unless you're using Smalltalk) -- SunirShah
See also SelfOrganizingSoftware
Anything that is organic is one with nature, and hence its will always reman compatiable with nature