views:

301

answers:

5

My primary motivation for asking this question is this uservoice suggestion. Jeff declined the ticket to make the SO software open source saying that it will take more time.

I've seen this before in various other pieces of software that have gone from proprietary to open source. So, my question is: why does it seem to take so long to make software open source? To me, it seems pretty simple: put your code on sourceforge and google code and be done with it. But there's obviously something that I'm missing in the whole process.

(And before anyone gets the impression that I'm trying to be critical of Jeff or anyone else that delays open sourcing their software, I'm not. I just want to get an understanding of the process for open sourcing stuff and its costs.)

+5  A: 

Usually it requires all contributors to agree, for some projects that means you have to ask quite a few people if its ok to open their code too.

For other projects, it requires the libraries you've used to be either open source, or taken out of the project where you've used them. IIRC Sun said they couldn't open Java for so long because they used some 3rd party code that couldn't be opened.

gbjbaanb
+3  A: 

The reasons are:

  1. Are you sure you have the right to make software open-source?
  2. And do you really want to?

Regarding the first question, note that you may be using third-party code, so you have to go through all your code making sure you have the right to make it all open-source.

In second place, it requires the project owner to want to open-source the project. In some cases, he/she may think it's not worth it.

luiscubal
+3  A: 

Opening the source could be good or bad. In the best case, they only benefit from contributions from the community, retaining creative control. In the worst case, the project could fork, and two differing codebases are not usually beneficial to the community.

In SO's case, they may be worried that if enough people are impatient, then opening the source too early is inviting a fork of the project as other developers implement their "pet" features more quickly (or differently) than SO. Maybe those people really want features that have been declined.

Forking also brings in the aspect of competition that Shawn mentioned. Perhaps much later when SO has a more well-established community, opening the source would be more acceptable as SO would have a head start on any potential competition.

The conservative thing to do is to wait a bit before making a decision, rather than opening now and hoping for the best.

EDIT: Note that even in the best case, they are taking on the added role of managing an open-source project and dealing with whomever wants to contribute. The "herding cats" methaphor comes to mind, they may want to focus on the codebase right now rather than administrative overhead.

Adam Bellaire
+5  A: 

The main answer to your question has been given by others - getting the legal permission to do so (see the SO blog entry on Reverse Engineering the WMD Editor for an SO-related problem child) is often extremely difficult, even impossible.

So, my question is: why does it seem to take so long to make software open source? To me, it seems pretty simple: put your code on Sourceforge and Google Code and be done with it. But there's obviously something that I'm missing in the whole process.

What you describe - dumping the source - is not really Open Source. It is more akin to either AbandonWare or perhaps 'Available Source'. An Open Source project needs to accept inputs from outside, and build a community. One of the criteria that the Apache Software Foundation uses for its incubator projects is "has it acquired a critical mass of contributors from outside the original authors?". This is a valid concern.

Note that neither AbandonWare nor 'Available Source' is necessarily bad; both make code available that would otherwise not be available (and provide some of the benefits of Open Source). But there is more to Open Source than that.

Also, there is management overhead in handling a truly Open Source project. That is not negligible.

And, finally, it is not unheard of for the code quality to be such that the authors would rather not make the source available for fear of ridicule. I doubt if that applies in this case, but it can in other areas of the software world.

Jonathan Leffler
lol, the last bit is true. If you looked at our codebase you'd see the odd comment like: "this is f***ed, needs a rewrite ASAP! - Jim, 10/04/92" :)
gbjbaanb
+1  A: 

Here are some factors to consider before open sourcing:

  1. Are you legally able to make the code open source? Due to libraries, other contributors, etc.

  2. Do you have a business model / Do you need one? In projects like SO or Digg, where the edge is mainly in the community, then it should be OK, but in other projects that gets deployed inside corporate firewalls making it OS reduces the ability to make money to cover your costs. Although some companies do that via support, however, the ability to get support costs depends on the nature of the product and how critical it is to the companies deploying it.

  3. What is your feel of the community? There are tons of open source projects that have 1 or 2 contributors and not many users contributing patches. If that is the case, then the overheads may be larger than any benefits.

  4. Are you ready to support others deploying your product in other verticals or even the same vertical? This means forums, mailing lists, bug trackers, easy to use upgrade scripts, documentation, etc.

For a project to be successful as open source, it has to be well managed. Putting the code out there is simply not enough. You will just end up with unhappy community and potentially a fork on which you have no control.

vboctor