On software systems evolution


To the degree that a software system is large and distributed enough that there is no effective single point of control, we must expect evolutionary forces.

...

There is much to be gained by recognizing and accepting that computational systems resemble naturally evolving systems much more closely than they resemble engineered artifacts such as bridges or buildings.

Specifically, the strategies that we adopt to understand, control, interact with, and influence the design of computational systems will be different once we understand them as ongoing evolutionary processes.

-- D. H. Ackley et al. 2002



Here an example on how TDD practices can be evolutionary forces that help to spot violations of design principles:



An interesting quote from Stafford Beer, a managerial-cybernetics theorist
If you wish to tell someone how to reach the top of a mountain that is shrouded in mist, the heuristic ‘keep going up’ will get him there




Print | posted @ venerdì 18 febbraio 2011 14.38

Comments on this entry:

Gravatar # re: On software systems evolution
by LudovicoVan at 18/02/2011 21.17

> There is much to be gained by recognizing and accepting that computational systems resemble naturally evolving systems much more closely than they resemble engineered artifacts such as bridges or buildings.

I'd only partially agree on that: building software is just another level of complexity than any traditional engineering, that is correct. But, it is still fundamentally an engineering effort, engineering of complex systems: i.e., at the end of the day, you still need a working and reliable product. While the comparison to natural processes is, properly speaking, improper.

-LV
  
Gravatar # re: On software systems evolution
by LudovicoVan at 18/02/2011 21.20

Me:> While the comparison to natural processes is, properly speaking, improper.

Indeed, think of the dialectic analogic vs digital...

-LV
  
Gravatar # re: On software systems evolution
by LudovicoVan at 18/02/2011 21.28

And, pardon, as a last note: there is a theory of *evolutionary processes* in software engineering at least since the mid 80's (among which are incremental, spiral, component-based and concurrent-development models, to name the most known). Of course that has nothing to do with "natural evolution".

-LV
  
Gravatar # re: On software systems evolution
by LudovicoVan at 19/02/2011 14.33

So, Stafford Beer, the managerial-cybernetics theorist, does not even know about local maxima? Not good advise...

I could literally debunk *all* those pseudo-theories at each and every sentence: so I will rather start a series on my own blog, titled something like "Debunked". And I will rather use your posts as a prolific source reference for such kind of material, instead of bothering you here, which is, admittedly, not even that nice. (Hope you like the idea: and I will let you know should I make any direct reference to your posts.)

Ciao,

-LV
  

Your comment:

Title:
Name:
Email:
Website:
 
Italic Underline Blockquote Hyperlink
 
 
Please add 7 and 4 and type the answer here: