The Evolution of Software
An anonymous reader writes "Russian physicists Gorshenev and Pis'mak have posted a preprint claiming evidence that software projects naturally attain a state of self-organized criticality, in a process analogous to the contested theory of punctuated equilibrium in biological evolution (see also this paper by Bak and Boettcher). The software projects studied are FreeBSD, Mozilla, and GNU Emacs, by analyzing data from their CVS checkins."
The what of the huh did what?
Huh?
To reiterate...
WTF?
"software projects naturally attain a state of self-organized criticality," eh?
Clearly they've never looked at the code I have to maintain!
"Times have not become more violent. They have just become more televised."
-Marilyn Manson
I'm not surprised someone is using punctuated equilibrium to explain some of the development patterns in Free Software. Short periods of intense development followed by long periods of inactivity. Sounds like a pattern of a volunteer developer to me, giving his or her free time to a project. Since free time rarely occurs as contiguous segments, the parallelism to punctuated equilibrium is easy to see. I just hope this paper doesn't earn these two yokels anything but a quick pat on the back for pointing out the obvious.
assert(expired(knowledge));
buzzword bingo anyone? ...
It's time to qualitize our paradigms for increased marketplace productivity and to keep employee morale high by constant restructuring and
or.. to quote Dilbert, My SPOO has too much FLEEM
Did anyone understand this post?
Only two things are infinite, the universe, and human stupidity,
and I'm not sure about the former.
Mob Software: The Erotic Life of Code
An Essay in First Person by
Richard P. Gabriel & Ron Goldman
It has been previously discussed in Slashdot.
Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
Russian physicists Gorshenev and Pis'mak...
Gorshenev is a Russian, but I'm pretty sure Pis'mak is a Vulcan.
One man's -1 Flamebait is another man's +5 Funny.
I wonder how long it took these guys to obfuscate the obvious that any software developer learned in CS101?! All they are saying that after a certain time the software development process (i.e. CVS checkin data) reaches an equilibrium only perturbed by small changes.
:)
Well if that wasn't the most complicated summary of the software development process, I don't know what is.
Yes there are a lot of changes initially, since the product is being written, then as it reaches alpha the features taper off (thus the heavy CVS activity) and the new CVS activity is mostly high priority enhancements, as we reach the beta stage, the CVS activity is mostly bug fixes. Post release CVS activity is again intermittent CVS checkins of bug fixes, and such.
Now if these guys really wanted to prove their theory valid, they should have analyzed CVS branches individually and would have seen that their theory does not hold up. A branch in CVS is proportional to a change it will caryy and the CVS activity in a branch scaled to that will show that there is no slowdown but rather the same chaos as in the start of the project except localized to a branch.
I do wish these academics would try and write about something that will move us forward, rather than taking ideas that are well known and obfuscating them to a point that they set up back in the time it takes to understand what they are trying to say. Or maybe they just had a bad run with Babelfish
Or in layman's terms:
Like animals, software tends to change a lot until it becomes pretty good, and then not change as much any more.
my password really is 'stinkypants'
In software terms, what this means is not that code gets more stable, but that stability is dependent on the scale at which you are looking at things. Look at the linux kernel: There are lots of small changes being made, but their are still big changes happening (albeit less frequently). e.g. the 0(1) scheduler, new filesystems, etc.
It is definitely not that things taper off to stabilityy, then there is an equilibrium where only small changes are occuring. Changes of all sizes are continuously happening - its just the bigger ones are less frequent. But you can predict how often the bigger changes will happen, based on observing how often the smaller ones happen.
I've just been thinking my way through this article, and I think it might have some interesting consequences - maybe there is a paper in it somewhere! regards, treefrog