cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Berin Loritsch" <>
Subject RE: [RT] evolutionary development processes
Date Mon, 06 May 2002 17:34:49 GMT
> From: Stefano Mazzocchi [] 
> The recent thread of documentation sparkled by Diana reminded 
> me of the secret of open development dynamics and some 
> discussions I had with James Duncan Davidson about what he 
> named 'software darwinism'.
> DISCLAIMER: I really hope not to hurt anybody's feelings 
> here. For us europeans it's very strange to know that there 
> are individuals who don't believe in the theory of biological 
> evolution. Everybody (even religious
> people) take it for granted. But I've lived in the US and 
> know that this sometimes touches religious nerves. So my 
> apologies if this is so.

I find this to be really sad.  If you claim that the Bible is
absolute truth, and yet disagree with one part of it--you in
affect contradict yourself and have no basis for your faith.

I hear your disclaimer, and I agree that darwinianism applies
well to development efforts.  The main reason is that we
humans have finite minds, and do not have the benefit of
omniscience, omnipotence, or omnipresence.  (for those of
you who are not familiar with those words that is: all
knowing, all power, and everywhere/everywhen simultaneously).
Our finite minds and inability to accurately see or know the
future makes us make mistakes.  We learn from our mistakes,
and learn patterns from our mistakes so that we can avoid
similar mistakes in the future.  Nevertheless we are like
focused pockets of evolutionary forces without any external

However, to spout evolution as fact is premature.  There is
no absolutely concrete evidence either for or against
evolution.  Creationists and Evolutionists have to have one
basic assumption before you can adopt either approach.
Creationists have to assume that there is a God who has the
ability to create everything, and Evolutionists have to
believe that there is no (g)God.

As to continuing any conversation along these lines on the
list, I would advise that you take it off line.  (You can
correspond with me).

<snip>A lot of college theory</snip>

> What can we learn from this?
> A few important facts:
> 1) the evolutionary nature of open development is intrinsic, 
> it cannot be changed without severely altering the 
> equilibrium of the social system.

+1  I agree with this statement.

> 2) evolution is an incremental process: one small step is 
> *always* better than no step at all, even if this step 
> appears incomplete and meaningless. The non-linear community 
> effects cannot be forecasted before the event happens (see 
> the butterly effect for non-linear weather
> forecasts)

+100 The affect of several smaller steps is better than a few
larger steps.  Each large step causes upheaval.  Sometimes
Revolution is necessary, but it should be few times and far
between.  In America's short history we have only had one
Revolutionary war.

An Evolutionary approach to development allows quicker feedback,
and easier resolution of fundamental design questions that must
be answered before full scale development can take place.

Consider the "false steps" scenario.  When we are learning to
walk, we take small steps as we learn to maintain balance from
one foot to the other.  We make several tentative, small steps
that are not correct.  When we finally find the right step, we
can start running in short order.  Now, assuming we have learned
to walk, and we are learning to descend stairs we need some
feedback.  We inherently try to find a step that we can reach
while still holding on to where we are.  If we were between a
staircase and a cliff, we would use the staircase.

The main point of the example above is to point out the cost of
misteps.  By doing several smaller iterations, we learn more quickly
which are the misteps, and which is the proper path.  If we went
down the full implementation of one approach before attempting
another, the cost of changing our course would be too great--in
effect becoming revolution.  We would be stuck with something
less than optimal even though we know there is something better
for us.  One example of this is Microsoft Foundation Classes.
There was one huge step to create this monster--and the cost
of changing APIs is far too great even though *everyone* I know
loathes MFC.

> 3) many small steps are better than one big step, even if 
> they achieve the same result. Why? because environmental 
> feedback enters the loop on every step, so instead of many 
> small feedbacks, you get one big feedback but adaptability is 
> decreased (look at eXtreme Programming for more information 
> on this even for closed development environments)

Exactly.  Read my response to the above statement to see my
comments on that.

> 4) even design can be made public and incremental: with the 
> right amount of abstraction, paper design can lead to 
> discovery of problems even before the system is built. The 
> value of early and rapid feedback from the environment 
> (users) is vital to feedback the system and stabilize it.

:)  That was one of the things I wanted to accomplish with,
but I just haven't had the time.

> So, at the end, it's useless to resist to this intrinsic incremental
> process: you will be assimilated anyway :)

Most people prefer it in the end.

To unsubscribe, e-mail:
For additional commands, email:

View raw message