How Software is Built

A blog forum to provide deep dive analysis and community conversations about software development models. For more details click here.

George Berkeley, the 18th century bishop and philosopher, presented a system of philosophical thought that came to be known as “Idealism.” The central idea in Idealism is that perception is necessary for existence. It is expressed in his famous phrase “esse is percipi,” or “to be is to be perceived.” This is the philosophical framework from which the question is asked: “If a tree falls in the forest, and no one is there to hear it, does it make a sound?” Berkeley would have said no – no sound, no tree, no forest.

As the idea pertains to source code of open source products, it has been labeled “the Berkeley Conundrum” (Feller and Fitzgerald, 2002). The simple premise presented is that if source code is never examined, it is not an advantage to have it. As Joseph Feller writes in his book, “Perspectives on Free and Open Source Software” — “…many organizations would have neither the competence nor even the desire to inspect or modify the source code…”

Intuitively, I tend to agree with this. If you are starting a business, and you need OS software for your server room, how likely is it that you would have the competence internally to read and understand that code? Going further, how can anyone really grasp a system of 1,000,000+ lines of code, especially if the only thing they have is that code? That’s quite a daunting prospect. Even with accompanying specifications and architectural diagrams it would be a huge task to get your head around a system of that size and complexity. So do enterprises care about the availability of the source code? Perhaps not in most cases. Rather, they’re more likely to care about system capabilities and cost.

Does that mean the source code has no value? That depends. My guess is that for users (as opposed to developers) of systems as complex as operating systems, the answer is yes – there is little or no value there. However, not all software is as complex as an operating system. There are also applications of varying complexity, including office type apps, email apps, web browsers, graphical presentation packages, and so on. My guess is that for a significant (over one percent?) segment of the open source using population, having the source code has proved valuable. Hypothetically, consider a graphics conversion package that translates images between formats. If a company develops a new format, extending an existing open source package to include that format would be much easier than writing a multi-format translator from scratch.

This leads to what I think is the greatest value in source code availability. With open source, you are permitted to “modify and extend” the source code, and redistribute it as long as you perpetuate the same open source licensing of the product you started with. That means that innovators can decide to create new system configurations, using existing source code as a starting point. If you consider that there are people who thrive on improving and extending existing systems, then the availability of source code isn’t only valuable, it is imperative.

I understand and agree with the Berkeley Conundrum when you’re talking about users and mega-systems. But for other situations, like continued development and extension of applications, I ask: If you derive something valuable from valueless source code, do you make that source code valuable?

If you have some anecdotes, (especially if they’re documented), about source code having been useful in some case, please leave the story in a comment. That would be interesting and informative.

Posted by Richard on Thursday, May 3rd, 2007


You can follow any responses to this entry through the magic of "RSS 2.0" and leave a trackback from your own site.

Post A Comment