By Darryl K. Taft  |  Posted 2004-03-08 Print this article Print

-source proof of concept"> What about the process of alpha testing and beta testing in the so-called closed-source environment? Would that not entail a peer review? Ah! We have lots of different debugging methods, some of which approximate sort of small-scale peer review. We have formal methods, we have structured walk-through, we have blah, blah, blah, blah, blah. We have lots of methodologies. The problem that were facing as an industry right now—and the fundamental reason that youre seeing more and more open-source development—is because each of these methods is appropriate and effective only within a given band of complexity, or a given region of lines of code. Formal methods, for example, are great stuff. They are wonderful. The problem is they only work on toy programs. Proofs of program correctness? They only work at very small project sizes. Similarly, for each debugging method that we have available theres a characteristic project scale … under which its not worth it to use that method because its too expensive, and over which the method doesnt work because the process overhead kills you. What were increasingly finding is that open-source development and decentralized peer review is the only debugging method that scales up to todays project sizes and has any hope of addressing tomorrows project sizes.
Thats part of what I was getting at when I said we wont see open-source projects going proprietary … because the proprietary development method just doesnt work when your software gets past a certain size.
Well, what can you point at in the open-source world that scales to this degree versus proprietary software? The Internet! The World Wide Web. That is the largest system of cooperating software programs in the world. Theres nothing that even approaches it, and its all erected on open-source technology and open-source standards, and thats not an accident. Because only peer review, only openness can sustain a system that large and that complex. If you want other analogies, its like free markets of ecospheres. Above a certain complexity scale, you dont get sustainable results from centralization and secrecy. No, you have to decentralize the system. You have to let the brains migrate out to the periphery, and you have to have constant communication. Editors note: The headline on this article was edited since its initial posting. The storys original headline belonged to an accompanying news article.

Darryl K. Taft covers the development tools and developer-related issues beat from his office in Baltimore. He has more than 10 years of experience in the business and is always looking for the next scoop. Taft is a member of the Association for Computing Machinery (ACM) and was named 'one of the most active middleware reporters in the world' by The Middleware Co. He also has his own card in the 'Who's Who in Enterprise Java' deck.

Submit a Comment

Loading Comments...
Manage your Newsletters: Login   Register My Newsletters

Rocket Fuel