> From: Stefano Mazzocchi [mailto:[EMAIL PROTECTED]] > > > 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 direction. 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 D-Haven.org, 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: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]