Open source as business model or engineering convenience?

Pragmatism precedes principle

Every good engineer knows that design precedes re-use. First, you start with a good software design; then, whatever code you are writing has to be as generic as possible so it can be reusable. Engineers often do this by looking at different pieces of code that were written earlier.Open source is a wonderful way of doing this on a much larger scale. Open source is a huge repository of great generic code, designed for a specific reason.One of the things I often hear from software engineers active in open source is that, by its nature, open source code is always more attractive and preferable to any and all software developers.But to the extent this is true, I believe such preference is a product of pragmatism, not principle. People like to talk about open source as a business model, marketing model, sales model, but it’s first and foremost about engineering convenience.In fact, engineers do often get enthusiastic about this. If they see a nice piece of code written in a nice way, generically, they will use it. Open source does take this to a larger scale: not only can the engineers within the same company use the code, but engineers from a variety of companies can share it. Say you’re an engineer. You wrote a nice piece of code about search. You put it out there, if your company lets you do so. If you see another piece out there, you can take it and use that, too. And you think, “What a wonderful thing—I don’t have to write this.” One of the major sources of the appeal of open source is that engineers across many different companies can communicate across a common code base.  When there’s a commercial company, you’re free to talk with the engineers at all the other companies involved in the project—with a common denominator.  Unlike strictly commercial projects, open source isn’t perceived as being governed by exactly one pointy-headed guy in a suit. That means it’s free to be more pure and pragmatic, more of an extension of what the engineers consider interesting and important. I think the ultimate open source project is Maven, a repository of millions of lines of code from millions of people that put stuff in there. Like an exchange, you can put some in and take some to use for yourself. Maven is a generic project, not necessarily targeted to a specific market or vertical solution. There are other projects, though, that have a specific use in mind. In the case of a project such as Lucene, the code is very specific for search, so it’s more targeted. But the bottom line is the same: Engineers who like to write code can put code in there and use other pieces of code as needed from there.So should we call it “a model”, or is it purely a convenience that has taken on a life of its own? I tend to think it’s the latter, but I would love to hear your opinions on the matter.

Join the Network World communities on Facebook and LinkedIn to comment on topics that are top of mind.

Copyright © 2010 IDG Communications, Inc.