Organic Software

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:

These seem like desirable properties for all software, don't they?

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.e. you will need to construct shunts for data whilst you work on a part, because that part may be being used in all kinds of complex ways by other parts of the system


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


EditText of this page (last edited June 5, 2007) or FindPage with title or text search