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."
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));
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