This discussion took place during the Stack Exchange 1.0 days, when FogCreek sold Stack Exchange licenses for a fee.
It is worth noting that Stack Exchange licenses are still being sold for intranet use. 
Important Caveattm: this is something we are merely discussing that may happen more than one year from now, if it happens at all. Bearing that IMPORTANT CAVEAT in mind, please read on.
Joel is convinced that open-sourcing Stack Overflow, in any way, shape, or form, will destroy the business model of StackExchange  (pushing prices down to hosting commodity levels) and possibly the Stack Overflow family of sites as well (fragmentation & dissipation of audience via army of clone sites).
Does open sourcing Stack Overflow even make sense at all? What do we (stackoverflow.com llc) get out of it? What does the community get out of it? Is it "win-win"? Or does someone lose?
Are there "hybrid" models of open sourcing that could work? Rather than treating this as an "all or nothing" scenario, is there a way to open source parts of what we're doing, or restrict licensing so that we don't compete with ourselves in the hosted StackExchange part of the business?
Aren't there other companies pursuing open source and hosting businesses at the same time? Such as Six Apart  and Movable Type ? I'm not sure how applicable this is to hosting business models, but certainly Slashdot and Reddit have gone open source. DotNetNuke  also runs a similar business model, apparently.
Won't we be competing with open source versions of ourselves anyway in the long term? There are certainly already open source Stack Overflow clones, and lots of open source FogBugz competition and clones. Over time, won't the competitive pressure increase from the continual improvement of open source copies of what we do? Would it make sense to do it ourselves so we control it?
Could there be "enterprisey" closed source and "public" open source parts of the business? I've always said that StackExchange is going to have to fork because their private small, medium, and large business audience will want very different things than the public internet audience we serve. Wouldn't this be one way to segment the "free as in whatever the heck it is we're calling free these days" open-source dev work from the value-add closed source product?
Thoughts? Feelings? ... ponies?
The key question is #1; until that is adquately resolved, all of the others are irrelevant.
So, does open-sourcing StackOverflow make sense at all? Absolutely not.
There is absolutely nothing that you, as a business, will gain.
StackOverflow (the codebase) is an application, not a framework. You want this to be a cathedral, not a bazaar. You don't want random strangers, even if they are fans of the product, to submit to the codebase. If users have ideas for product improvements, great. Let them submit the ideas. And then the SO management team can weigh them against other ideas, against the business model, and against the various costs, and decide whether or not to implement the idea. And if the idea is implemented, the SO management team can guarantee that it is coded in a way that fits in with the overall design.
Simply put: would you house your business in an office building that was "open-sourced" during the construction process?
So, if open-sourcing StackOverflow won't help the business, who would it help? "The community"? If the goal is charity, there are many more effective ways to give back to the community (of users, developers, what-have-you). The community doesn't "win" anything by having access to the source code--so it's not a "win-win" situation, it's a "lose-meh".
I think the idea is a non-starter, and I'm surprised to even see it coming up. Forget it, and move on.
Yes, it makes sense. You get a horde of extremely competent and enthusiastic users as potential contributors to the SO code base. These users (me included) will contribute with new functionality, better unit tests, new designs, etc.
It depends. Open sourcing the SO code base, but licensing such that it can't be hosted by anyone but you contradicts the FOSS spirit, but I guess it's possible. I can't think of a suitable existing license or a project sporting such a license at the moment.
Indeed. WordPress.org is in direct competition with WordPress.com, TypePad is in competition with MovableType, etc. Both Automattic and SixApart seems to be doing just fine. Especially in the case of Automattic, I'd say they're doing a hell of a lot better after open sourcing WordPress than they did before.
Yep. I think the NRKbeta Doctrine  applies just as much to source code and services as it does to copyrighted content. The only way to control your content is to be the best provider of it. If SO doesn't provide the community with the source code for SO-like services, someone else sooner or later will. Can and will SO risk losing the head-start to another service provider?
Absolutely. See my answer to point 3. There's lots of other examples of service providers doing the same, but I think those examples weigh heavy enough (for now, at least).
Frankly, I'd be amazed if anyone could accurately predict this. I'll be surprised if our guesses as to how companies will use StackExchange come true in the first place... and a year is a very long time.
I do see Joel's point: FogCreek has to add value somewhere. Maybe that will be things like AD integration - but I'd be surprised if an Open Source version didn't gain that ability fairly quickly anyway.
Now, I think a lot of companies would want to use a hosted version (or at least an "installed and supported by someone else" version) to avoid wasting their employees time setting it up etc. The risk comes from other hosting companies. How much will they want this? It depends how profitable it is for FogCreek, I expect. I don't actually expect every cheap hosting company on the planet to snap this up, even when it runs on Mono and against Postgres - but I dare say there will be competition.
It will be a challenge for FogCreek to work out how it can add enough value to make money, but I suspect it will come up with something. Managing internally-hosted implementations would be one starting point, I expect - and that speaks to their area of expertise anyway, with things like CoPilot. I can see companies really wanting a private, internally-hosted StackExchange for internal knowledge sharing. Will the cheap hosting companies want to do that? I doubt it.
One thing which distinguishes SO from the phpBB style forums in my view is that it works well when there's a broad subject matter where a single question can touch multiple areas. For very focused groups, I don't think there'd be as much benefit. That may well make it less attractive for tiny web sites which just want a simple discussion board - which may mean it's not worth cheap hosts getting involved.
As for what the community gets out of opening it anyway - that's tricky. I expect (and hope) you'd treat significant patches with a great deal of timidity; applying someone else's patch to the main SO is a big undertaking. However, I'm sure there will be some groovy new features added by the community (possibly including those Joel would rather have exclusively to FogCreek, admittedly).
A bigger benefit will be to individuals who do want to run their own server but on a small-time basis which wouldn't merit paying for StackExchange. Heck, there's also plain curiosity :)
Personally I would like to see it Open Sourced, but I can certainly see why Joel is nervous.
It might help thinking about this to listen to Tim O'Reilly's comments about where online value is: http://twit.tv/floss73
StackOverflow seems like a canonical example of something where the value is in what's contributed to the site, not in the software running the site. Even if many someone else's take the software and set up their own *Overflow-type sites, they have the problem of displacing StackOverflow's momentum and brand recognition.
Just having StackOverflow's software doesn't give anyone SO's infrastructure, or data, or knowledge about how to deploy the software effectively.
As O'Reilly says, even if you have the software for Google's search engine, that doesn't let you run another Google; there's a lot more to it than just the code. (Although, of course, Google still haven't opened their code, which I'm sure isn't for want of people asking them to.)
I think, from a business perspective, there probably comes a point where the code itself is such a small part of the overall value of StackOverflow, that giving the code away will do you more good than harm. Joel is right to be cautious just now, in that you're not clearly at that stage yet, but surely you will reach it at some point (probably shortly after Google does :-) ).
There are a lot of interesting posts in this thread. I want to call out a few of the different arguments:
This is false. First of all, most of the patches you get will need to be rejected. In the end, you likely either spend as much time reviewing patches as it would take to implement the feature, or you're just not getting the patches. Secondly, open sourcing doesn't guarantee that you get to be the maintainers of the project. It won't stop people from also forking it to do what they want. For a product like this, where the maintainer has a very high standard for polish and integration (a good thing) and the audience includes many competent, connected developers, the likelihood of a serious fork is very high. So the idea that going open source somehow lets you pre-empt the clones is just wrong.
Irrelevant. It's a different business in a different situation. Even if the situation seems similar, there will be little differences that can have a big impact. This applies to WordPress and Reddit as well. And many of these companies are still in the stage where they're burning through VC money, so appearances can be deceiving.
This is very much true. For that kind of money, I could take one of the (bad) clones as a starting point and tell a developer to spend a couple months turning it into something usable. It'll take a bit and won't be quite as nice, but pretty soon we'll have something that our users like almost as much, is tailored to fit our company, integrates with our existing systems, and is much cheaper to operate. If after a year I'm still not happy, we can work on it more and I'm still not out anything vs using SE. If I had that kind of money to burn and needed something right away, I might buy SE, but I probably can also have another developer hack a replacement at the same time and so you wouldn't keep the business for long.
Then again, I'm a programmer and not a business manager, so perhaps this would never even occur them. Instead, all they'll see is a big price tag on something that's basically a toy for their internal users. Either way: it's too much. Basically the problem is that it assumes the reason you'd want the onsite version is to go bigger, when it's more likely customers will want it because they're smaller; they only want to use it for internal staff and don't want it's contents public.
You also need to look at it from a forum site standpoint. Right now there are thousands of little sites running vBulletin or phpBB. What do those users pay? How can you capture some of that money? Currently you are completely priced out of this. The only way to get into that market at all is to have some form of installable package. Will it hurt you if a bunch of other little sites start using the same code base as stackoverflow? Probably not, especially if they're paying for the privilege. Will releasing the code as open source allow you sell to more of these users or fewer? Depending on how you do it, it could be many many more, or it could completely cut off any sales of the for-pay edition at all.
Perhaps. I think probably not quite that far: as the originators of the code base, you will always be able to command a premium over the competition. If you go this route, what you would need to do is make sure you're in the business of selling hosting to the richest customers (the banana republicans) rather than poorest. Let others worry about making money from the low end. Yes, you're giving up a lot of revenue to them, but most of that doesn't count because it's revenue from customers that could not have afforded your offering anyway. All you get to think about is the portion that you lose due to pricing pressure from the competition. This will be significant at first, but the story isn't over yet.
What this does for you long-term is allow you to use the competition to grow your market. Some of the smaller customers that start out going through a competitor and could never have afforded to even get started under your current plan will now grow enough to need your services. Think of it like giving CoPilot away for free on the weekends. Some of those weekend users will eventually want it during the week. And some other big users might hear of it because they know someone who knows someone who uses it for free. Over the long haul, the economics say this should be the better option for the business. A bigger market usually means more revenue - eventually.
Separating the engine from the interface is a good idea anyway, and probably required for StackExchange to be a success. Additionally, setting up the engine to use a provider or plugin model for certain parts would be a very good idea. One big is the authentication mechanism. Another is treating your main input editor as a pluggable component (so users can swap out your markdown for freetextbox, for example). Others include adding badges and moderator tools as plugins. I could come up with more like this. Again, this makes sense to do anyway, and will make managing the StackExchange product easier. It would also allow you to hold some key code in reserve in a meaningful way if you ever do go open source.
What I really like about it is that it gives you the option to sell the components. You could forget StackExchange (at least as the main money-maker - I really doubt it will take off anyway because you can't just install a community on a server), and sell your markdown editor implementation as a component that can plug into any web site.
Finally, my own new point:
You keep saying this, and we know it is very much true. You have the ability to show potential customers the graphs published by google and bing of how clicks and attention drop off as a page takes longer to load, look them in the eye, and guarantee your pages will load in the fastest block. Even if you open source the code, your competition would have a hard time doing that, because they don't have your intimate knowledge of how it works and what it takes to keep it fast. You can do a better job monitoring and profiling your customers performance, and tuning the servers than anyone else could ever hope to. And this is another big reason the banana republicans with money to burn would go to you for hosting vs cheaper competition, even after you open source the product.
Let me be honest: When I saw the pricing of Stack Exchange, I went "WTF?". But then again: I am not a business, I am an individual. So if you Open Source SO, then that would allow people on the low end who would not be customers otherwise to become customers.
I am perfectly willing to setup my own SO on my own Server, well knowing that the whole thing is not going to be as good as your hosting, but for my free site it would be good enough. So no harm to the business plan there. Even as you may lose some people who would be interested in the small plan, I think that overall I don't see much of a problem.
BUT I see a problem at the other end of the spectrum: Self-Hosting is $2500 per month per server, or 30000$ a year per server. As we would need our own admins anyway to set it up, the "real" and "open source" versions would not make much difference - apart from the 30k$. This might hurt you.
And then there is the thing you mentioned on the podcast: What prevents hosters from adding SO to their portfolio? SO is a big brand in IT now, but you're also aiming outside of IT. I'm not sure if that works.
I don't think that an Open Source SO and the StackExchange pricing can co-exist, but then again I am not a business-man, so maybe I'm missing something.
Wordpress is a bit of a different example: They have free hosting, but they charge for stuff like changing your themes or making certain changes. So they are making tiny amounts of money from people who want care-free hosting, but they have a LOT of people to make tiny amounts from.
If you decide to open source at all, don't go hybrid on the license or the edition (free/enterprise).
Use something like the Affero GPL to make sure people hosting the code contribute back all changes, but don't use a confusing license, or you'll keep away the guys you'd like to have contributing to your code, and only attract those that won't respect your license.
If you have an enterprise edition (with AD support, for instance), what will you do when one of your users comes up with a patch to implement it in the free license? If you want to maintain the comunitity leadership, refusing features will make that difficult.
I think it is better to wait for StackExchange launch and see what additions and modifications corporate users need.
It's very unclear right now how open sourcing can affect your business.
I believe I am right in saying that the key thing with some (but not all) of these combined open source and hosted setups is that they don't open source all of their code.
They open source the core code so that you can install an individual instance of the product, say for a single Wordpress blog. But they don't open source the extra bits from their hosted solution that makes it easy to scale the solution to tens of thousands of blogs.
Doing that counters Joel's claim that a hosting company could get a competing StackExchange up and running in minutes. Though it only adds a little speed bump for them.
I agree with Joel that releasing the source of stackoverflow as-is would destroy the business model of StackExchange. All the points he made in last weeks podcast are valid, whereas all the points Jeff made (and makes again above) are merely equivocation. Saying that other business like Sixapart survive in spite of open-source competition doesn't prove anything unless you have their books to examine.
The only way it wouldn't hurt StackExchange is if StackExchange customers demand (and get) some special features that aren't open-sourced, but until StackExchange is up and running it's impossible to predict that.
And of course people could make open-source clones of the StackOverflow software, but that applies to any software - there is still caché to running on the real StackOverflow software if that's what the customer wants. Also, I think sometimes people over-estimate the competition from open-source software that doesn't exist yet. There's a big difference between releasing a complete project as open-source and having some people track all your improvements to the main codebase (or forking it and adding 'enterprisey' features themselves), and starting a clone project from scratch. We observe the former much more often than the latter.
Joel has a point that if you open source something and try to create a business from just hosting the same identical thing you don’t have much of a business model.
Making money from open source is all about added value. You can open source stack overflow, and people will use it, some may host it, but you have to show that StackExchange adds value, great uptime, staff to help you personalise and set up your site, experience of large knowledge exchange sites, and custom coding. The business that doesn’t want to pay for these things and goes for the lowest price is not going to make you much money anyway. The business that wants to have the “enterprisey” features is the one that you make money from.
As for what benefits your will get form open sourcing the SO code, this is difficult to tell. ASP.net is not a mainstream open source language, but you have enough profile so you will get some popularity. For what it is worth, I think the best open source systems are those which are highly extendable (Firefox, Movable Type, Drupal for example) , I don’t think the SO code base was designed to work in this way, so it’s evolution may not be that fast and the benefit that you get from the community may be minimal.
So in summary, you probably won’t loose money but you probably won’t gain much either.
A potentially good example of point 5 is mysql, it has a large opensource community which feeds the paid for enterprisy community.
It will without a doubt change the business model that Joel has planned for S-ex.com. you cannot charge $129 / month hosting when the exact same software is available for me to install on my own server, let alone the $2500 / month required for me to do so.
I don't want to downplay the functionality within the SO engine, but there feels like there is a big difference between SO and a blog engine in terms of setup complexity and options, complexity that perhaps would explain why sixapart gets away with charging for 'professional' versions and for support of it.
I work for a large bank, which for reasons of data protection (yes, even for developer chat) does not want any conversations occurring outside our network. As such we would only consider an onsite install - the choice between $30000 that Joel wants for an onsite install and the cost of a shared server in our data center - ~$1500 - makes taking an open source solution a no-brainer.
We've replaced a good number of proprietary solutions with open source alternatives, (operating systems, source control, bug tracking, wiki etc.,), being able to address scale issues without considering the license cost is a huge factor in our decision making.
So the real question for me is whether you should change the pricing of the hosted version and to move to opensource sooner rather than later.
Even if you do opensource it, I don't think it will hit the traffic on SO in a major way, since it is the community that matters a lot. Just because there is another site to do the same thing, doesn't mean people will shift to it (and even if they do, the shift will be very very slow) since SO has built up a very nice community.
Cases in point are reddit -- I don't see any site using reddit's opensource code that has even a fraction of the traffic that reddit does. Same thing applies to wordpress -- even though there is a separate opensource self-host version of wordpress, the hosted version of wordpress has quite a lot of traffic. The kind of sites using it that will mushroom will be those for niche topics and specific subsets, and might eventually end up replacing forums in many places where it makes sense, especially for tech support for products like ubuntu, various linuxes etc. And many companies may even use the paid hosted version for their tech support, replacing their forums.
If you do opensource it, there are two ways you could make money off it, as I see it
A very important thing to note here, is that if you opensource it, and people start using it in a big way, the brand recognition of SO will increase by a huge amount. On the other hand, keeping it closed source will mean only a few people will be using the non-public version of StackExchange. ActiveCollab  is a case in point here.
One major advantage of opensourcing is that the community will be able to add a lot of new features to the OS version, and you could still make money off it by providing hosting and support.
Just my 0.02¢ http://www.activecollab.com/
I think you're asking the wrong question. You should be asking Can our business model survive being copied? Because if you're successful, you will be copied, and it won't make a difference if they're running your engine, or one they made themselves.
I'll suggest you are not asking the right questions...similar to a developer trying to justify some implementation without having a clear idea of the requirements. Instead, you may ask:
What value does open source bring your paying customers? i.e., your advertisers in one biz model and your corporate subscribers in the other.
What value does open source bring your crowdsourcing partners? i.e., your content providers that work for those "at a boys" and reputation.
What value does open source bring to your future revenue? Do you need feature providers that work for "at a boys" and reputation? Do you need open source to undermine the value proposition of your competitors?
This is perhaps repeating some of what others have said, but since I was asked to bring my comments here, I'd rather keep them whole than splice them up as comments to other responses. Sorry, I'm lazy.
(Background: I am a rabid free software fanatic since the 1980s I pretend to be pragmatic on the 'Net, though.)
I agree with Joel: releasing the SO source code would mean his hosting business would have to compete with a number of competitors who drive the price down (nearly) to cost. It is almost inevitable. Joel would have to provide something extra to justify higher prices.
Some companies manage to do that. There are significant differences in the prices for, say, web hosting and DNS registries, even though the software and service are essentially the same. However, it is a very difficult market to be in.
On the other hand, if these kinds of Q&A sites do become a lucrative business, I predict someone will clone the SO code, perhaps making it free software from the start. Then Joel is in a difficult situation again, although he'll have a couple of years of head start.
I suggest it may be worthwhile to consider avoiding that by pre-emptively open sourcing the SO code base at the opportune moment.
There's at least few ways in which Joel can help keep his competitive edge despite the code being free:
Use the Affero GPL license, which means all his competitors would have to release any changes they make, even if they don't distribute the code. At least they won't be able to compete by having a better product: everyone has access to the same code.
Release the code in a delayed fashion. The Free Software Foundation did this with the Ghostscript implementation of Postscript (or rather, accepted it when done by its developer). GS was released in a non-free fashion first, then a year later under a free license. This made it easier for the developer to be paid by printer manufacturers who needed bug fixes and improvements sooner rather than later.
Embrace the competition: sell support for setting up and maintaining a SO instance.
Now, I'm not saying any of the above will make Joel's life easier as a hosting provider, but I would like to suggest these for consideration in your discussions.
I'm astonished that nobody seems to mention an IMHO very important point:
Releasing the source would allow others to build websites for other topics/sub-cultures.
Think about all those people who are e.g. into mathematics, aquaristics (fish tanks), whatever. I'm sure there are many groups out there who would love to build a question+answer based site like stackoverflow/serverfault/superuser.
Jeff, if you don't release the source, somebody will build it themselves. I don't think you need to worry about what open-sourcing the project will do. Whatever is going to happen is going to happen.
SO's only option is to offer the users something different. If we could plugin to SO via a thorough API, that would make SO different than any spin off. It's not the technology that makes SO neat, it's the content and the community.
Open sourcing Stack Overflow makes sense. The LLC gets a few benefits. First of all, it gets free labor. Programmers aren't cheap. Secondly, it decreases the likeliness of other open-source implementations. Third, it gives you inroads and mindshare into an entire audience who wouldn't use StackExchange. By using OpenStack (I'm naming it now, whatever), they might end up using StackExchange or contributing patches in the future, which is of value to you.
The community gets similar benefits. People who would never buy StackExchange could use OpenStack instead. We'd get a whole ton of good looking, well designed, ASP MVC code. People who really love StackOverflow could express their thanks by contributing.
There is always the dual license option. For those that aren't familliar with dual licensing, the idea is that you license the software under the GPL for no cost, but you also license the software under the BSD (or MIT) license for a fee. You could easily add this to your current pricing scheme. Essentially, there is an additional "Free" tier at the bottom with no hosting, and you also add a "purchase" option where you get a BSD'd copy for $x. This would probably be pretty expensive.
There are a few benefits to doing this, but basically, the reason that you would open the source of SO is to garner updates to the code from the community. The price of updating the code without contributing back is the the cost of the BSD'd code. A company can essentially "buy off" the need to share their own proprietary stuff.
Now, your "compete with ourselves" point is well taken. However, you forget about your prime advantage: you know the code base. Yes, someone could just set up shop and install OpenStack on a ton of servers, put up a front a la WordPress.com, and start charging. But are they able to compete with you on developing new features? If they fork it after your first release, will they be able to make it better than you will be able to, given your knowledge of the codebase? You're also discounting the social element involved. Basically everyone would know that that's what they're doing, and I honestly doubt that many people would do business with someone who would do something like that. At the very least, I know that I'd want to use an originating service, as I wouldn't trust someone else to have a thorough knowledge of the code.
There are. What you have to remember is what these companies' value propositions are: convenience. They're in the business of selling bottled water, basically. No need to worry about filtering it for yourself; just pop the top and drink. Lots of people make lots of money selling bottled water.
This is true. As you've said, there are already lots of clones. If you were to release SO as open source, there would be less of a tendancy to re-implement SO itself, and more of a tendacy to just contribute.
See my above comment about dual licensing.
There are three revenue sources for software:
In your case you will also have ad revenue from your three web properties that use the codebase.
Open sourcing the software definitely eliminates #1 above and may also eliminate #3 (as Joel mentioned in Podcast #60). I could certainly see FogCreek being able to make a ton of money using the #2 approach - sell the server, installation, configuration, and training for $50,000 plus an annual maintenance fee. Enterprises want the software on their own network - a reason I think the StackExchange idea will not be as successful as it could be.
There will be many advantages of open sourcing the software from a business sense: getting the FogCreek brand out (for Joel), developer good will (you buy products from companies you like), and contributions from open source developers.
Point 4 has been answered convincingly by Benjamin Pollack , in my opinion.
Yes, there are Open Source clones and there will be many more (simply because the SO mechanism/UI is so convincing) but for a long time to come, they will be far inferior. I agree with Jon in the other regards. http://blog.bitquabit.com/2009/07/01/one-which-i-call-out-hacker-news/
The source code is only a part of what makes this site valuable.
I'd say the bulk of the value comes from us, the users, contributing our knowledge and expertise free of charge, in exchange for the warm fuzzies that come from helping someone, and also the recognition of our peers.
At what point did the number of man-hours spent on answering questions exceed that spent on writing the code?
Just thought I'd add to it that SVN and GIT are both open source, and people seem willing to pay for them to be hosted.
Also the network effect should protect you from competitors to your existing sites.
Lots of companies make money off of opensource software. In the case of StackExchange, you're paying for a service, not just a piece of software. After all, even if you open-source SO, people will still need a place to host it. And who better to handle the hosting than the people who help make SO?
Besides, consider the advantages:
One thing missing from the question is what constitues the SO/SE source code. If it is just an HTTP renderer with database interface and user authentication, then I don't see the problem with open sourcing that. The hosted version can get it's added value from the tools that are used to create the look and feel, administer users perhaps, do automatic backups and any other housekeeping chores. If SE is being aimed at non-IT based companies, they aren't going to know the ins and outs of CSS to set it up properly for the SO engine. I'm sure there are a few other tools that can add to the value of a hosted solution that need not be put into the open source version. This allows the small groups to benefit as well. Who knows, it may prompt someone to suggest to their employer to use the system. Also, open sourcing the SO engine would give you added benefits - localisation for one, especially those non left-to-right-top-to-bottom formatted languages.
semi-Open Source: Code available, but not licensed for "Resale"
So, individuals and organizations can use it, contribute patches and features, but ISPs and Web Hosting companies can't undercut StackExchange.
This can be accomplished by Dual Licensing... free for personal/intranet use, royalties required for reselling or providing StackExchange-like services.
I was hoping you might ask, the podcast on this was interesting.
1). Yes. I suspect a very large number of us (me! me! me!) would like to get involved, and motivated developers make for the best technology. The customer is always right and in this case you have a chance to give direct influential access to a very savvy group of customers.
2). I'm not really au faitOSS guy, but surely you can choose any licence you like such that you could prohibit the commercial use of SO codebase in such a way that it competes with your hosting, e.g. disallow commercial hosting. Hell, couldn't you sit down with a lawyer and work out a bespoke StackOverflow Licence if you have to?
3). Definitely out there, god knows what their diverse business models are like.
4). Almost certainly. Historically, at some point every closed system becomes unsatisfactory to those who "own" it's usage. Be it Internet Explorer or the American colonies.
5). Can't see that kind of schizophrenia working. You're dooming yourself to conflicts of interest.
1) Open-sourcing Stack Overflow certainly makes sense, as now the community itself can partake in the growth and expansion of the system itself.
2) There could be a commercial-use license.
3) There has to be.
4) I've seen open source versions already, so yes.
5) No real point in doing so.
The SO community is already so well established it would be difficult for anyone to exactly copy SO and steal any significant market-share.
You have a large range of options when it comes to open sourcing. Whether you choose, say, a GPL license or a BSD license will have a large impact on what people can do, as I'm sure you're well aware.
I'd say the safest model to choose is a dual-licensed model where code can be used for free under a viral license (eg GPL) but can be licensed commercially too. In some ways this is the best of both worlds but it does have a downside.
The real benefit of open source is that you get developer involvement essentially for free (apart from the time required for someone to organize and lead the project). The negative of the dual-license model is that if people contribute code under say the GPL license, you will have a tough sell convincing them to let you sell it commercially too.
The plus side of any open sourcing of course is that you will get free development done.
Personally I wouldn't worry about the impact of competing with IllegalArgument.com. You were here first and will have a large loyalty base as a result (like Digg and Reddit). Ultimately, it's not hard to duplicate the functionality of StackOverflow once you've seen it. I know theres nothing here I couldn't write and I think we're talking only man-months to produce something with most if not all of the functionality. By open sourcing, you can probably head off such efforts and then control the licensing as people will more likely use yours than duplicate it.
The downside of any open source effort as well is that once you've done it you can't take it back.
Other potential models including providing the source code for free but charging for support. I don't know if this would suit SO but it works for MySQL and others. JasperReports does this too and they have a dual license model but don't accept contributions to the official source because of the aforementioned issues.
In doing this you could also provide a basic version for free and have a better commercial version either by way of:
I find the concept of open sourcing a saas product interesting.
On one hand I can understand the concept that withholding the source code gives a major competitive advantage, and of course it may lead to someone creating his/her own clone (think of identi.ca for twitter).
But there is something that can also be considered: stackexchange concept embraces a lot of generatives that would make it better than free/open source and thus valuable by itself (http://www.kk.org/thetechnium/archives/2008/01/better_than_fre.php)
Regardless if stackexchange will have an open sourced version or not, it does seem to have all the ingredients for success.
Personally I believe that an open sourced version would help stackexchange to be more successful as it reinforces a lot of the points mentioned above and it could open the last two point Embodiment (local stack exchange user groups) and Patronage (users giving back by evangelizing and contributing code / plugins / bug fixes etc)
Thing is, the SO code really isn't all that valuable. It wouldn't take long for a few good people to have a half-assed duplicate ready to go, and then polish it. Three full-time people cannot keep far ahead of an interested community. In a year, we'd likely have Gnu Overrun, no matter what.
This means that there will be OS SO clones out there, if there is interest. There's nothing you folks can do about that. The current SO people can keep all the trademarks, and those will be worth something, at least as long as they stay on top.
Therefore, open-sourcing SO will not lose much, if any, revenue. It will be a case of the trademarked SO vs. a non-trademarked (or at least with less valuable trademarks) OS version, no matter whether SO is open source or not. Either the trademarks will carry the original SO or they won't, and the code really doesn't matter. The market will drive towards commodity hosting prices, no matter what. There will be companies who are willing to pay premium prices for the real SO from StackExchange, but they will do so regardless of whether SO is open source or not, and they will expect premium service.
There's also a question of what open sourcing SO would gain you people. You'd have some development assistance, although I don't know how valuable that would be. You'd generally find and identify bugs earlier.
It may or may not contribute to the community spirit. What makes SO a success is the community, not the software. Having the software OS might make people feel like more of a community, and might attract more Open Source and Free Software people, which would be good.
So, frankly, it isn't going to make much difference. There will be OS/Free Software setups that do pretty much the same thing, no matter what. The hosting prices will be driven towards commodity hosting prices, no matter what. The real thing will command something of a premium price (although probably not the projected rates) no matter what.
Given that, I'd recommend OSing SO, and hoping it will help the SO community.
I can see a good combination of two approaches:
Dual-licensing with AGPL and a proprietary license: It's the model Qt has taken  and it seems to have worked quite well for them. Few competitors would give back code, so you get paid by them while letting the community have its share;
Hosting with paid advanced features: Wordpress.com charges for the simplest things  (like editing CSS), even those that are available on the open-source version. You could offer similar free hosting, with your own ads, while charging for:
The reason not to open source would be because you would gain less revenue. (which isn't the same as losing revenue: hardly anyone who downloads Photoshop would pay for it if they couldn't download it, so it's not revenue lost)
Would you gain less? StackExchange might gain less revenue, but StackOverflow wouldn't.
The on the other side, the only reason I can see to open-source it is to get it more widely used than a service like StackExchange can make it, or to head off competitors that are doing similar.
In other words, the reason is because it would be free-like-beer. The fact that it would be free-like-speech wouldn't give many benefits at all: The product works well so there's not a huge amount of development work you need to do that can't be done in-house. And any work done externally would have to be vetted in-house anyway, so you'll need to pay that guy.
If you did decide you wanted to go the Open Source route, follow the MySQL or RedHat path: it's all open source, but support is provided at a cost. That means you will sell it to the enterprise crowd who need solid support contracts before they can begin to look at a product. You can sell it (via StackExchange) to the crowd who have no idea (and don't want any idea) how to set it up for themselves.
Sure, there will be other people who will compete with StackExchange using your product. But that's going to happen anyway, just using some other open-source initialtive that works the same way.
(Note that this yet-to-be-discovered competitor will be writing it in PHP or Ruby or Python -- all languages that have huge Open Source followings. ASP.Net just isn't that big for open source because it's based on closed-source libraries and compilers. This means that you'd be losing the competition for people to help you write it, so again the argument is all about free-like-beer.)
Aside from releasing source the alternative would be to license SO. I would push for a purchase in my org.
It is a great way to organically build a knowledge base over time, and I think that piece is missing in a lot of places - especially stovepipe orgs. Given the competitive nature of the badge system it would encourage average employees to contribute their knowledge for recognition - which would help break down information barriers. It would also allow you to identify who in the organization knows about what, and which people are holding the place together.
As a programmer if I could go to a LAN instance of SO about... say accounting, ask an accounting question, and get answers from people in 4 divisions, that would be awesome.
I am sure that you aren't the first to comtemplate / go down this road. What has the experience of others been as a result of going open source (in some way shape or form) and what were their motivations in doing this in the first place? I think for some it has been desperation, for others a shrewd move since it has enabled others to build plugins for a solution.There are other companies like sugar crm taking an approach see here http://www.sugarcrm.com/crm/community/sugarcrm-community.html .
The approach you are taking with stack exchange is an interesting one in that at one level you are a business which operates consumer sites and in another you are then looking to commercialize the same back end software for end users. So as far as I can see for $1,299 a month i could setup a competitor to stackoverflow with yourselves - and you are worrying about open sourcing it and generating a competitor? $15,000 a year isn't a lot of money to setup a competitor! Thus this leads me to the question - where do yourselves see the revenue opportunities for stack overflow? I think if you answer this question then whether, if and in what form you go open source will come out in the wash.
I suspect quite a few people would be interested in just looking at the source since yourselves were early in on the ASP.NET MVC scene.
Trust this helps.
You probably already know it but there is a Spanish social news site called Meneame ([meneame.net]) which platform was open-sourced from the beginning and they are still getting about 80k daily unique visitors (Google trends said: http://trends.google.com/websites?q=meneame.net%2C+stackoverflow.com&geo=all&date=all&sort=0  )
It's true that they didn't built it thinking about business models but they are making some money with it.
And of course they got a lot of clones, but they are the reference and the community was already built that's what makes Meneame to have an added value. http://trends.google.com/websites?q=meneame.net%2C+stackoverflow.com&geo=all&date=all&sort=0
Not only will open-sourcing stack overflow hit your business model, but also mere talk of it will hurt the business model.
So I think you just decide pretty soon and announce you will never open-source stack overflow.
Having said that, Jeff, you have my email and I would be glad if in exchange for this suggestion you sent me the latest tarball with installation instructions so that I can tinker with Stack Overflow.
Turn the question on its head: How does freeing (not to be confused with open-source which misses the point ) change the game for stackoverflow.com LLC?
There is only one reason to free your software: enable your users, provide them with the freedom that comes with your software, the freedom to implement all of those UserVoice features and bug fixes they've been whining about.
Fact is, with the correct license (e.g. Affero GPL as suggested above), your competition will only come from companies and individuals that share your views (and goals) of free software. Any competitor will have to do the same thing as you: create value for the end-user. I dare say, nobody does this better than you and therefore you have nothing to fear from freeing stackoverflow. http://cacm.acm.org/magazines/2009/6/28491-why-open-source-misses-the-point-of-free-software
Jeff, consider this:
When it comes to the actual content of the site, Joel seems to embrace the bazaar model. He wants the silly questions and the big, involved questions too. From some things you have said on the podcast, I get the impression that you would like to keep the content as refined as possible and at times you actually seem annoyed by questions you deem to be beneath the site.
What do you think it's going to be like when people who you don't agree with are changing the code base as well as the content in a way you do not like?
Several have suggested that the main value of open-sourcing is the "free" programming work. However, the success of the SO framework, imho, is it's simplicity. We all know it works well... right now. Yes, there are lots of tiny burrs that could be polished off, but the core is already successful.
Having said that, I think that the core question to resolve is whether there will be successful alternative open-source competitors (question 4). I think that this is inevitable, and "owning" the SO framework that everyone uses for this type of site might be more valuable than eeking out the profits from SE for a half-dozen years.
A popular reason to open source Stack Overflow would be so that people who want to host it for free (say, people running non-profits or open source projects) can host an instance.
Why not have a version of StackExchange available to non-profits and open source projects for free, thus negating the need for those people to use a clone?
Why not a hybrid model? Open Source for people that won't pay anyway, like non-commercial entities, open source projects, etc, and only make enterprises pay with a clause in the open source licence that explicitly disallows commercial use.
You will get the best advantages from both worlds.
It should be mentioned that open source and free software are slightly different concepts, but I'll use them here interchangably anyway, with the meaning of free software.
1) There are many ways in which you can consider whether open sourcing makes sense. Gains/losses are one significant angle. There is also a philosophical one.
In the philosophical sense, freeing the code is itself a goal - the rationale being the same that science tires to embrace: advancing the body of human knowledge, or in this case the codebase of humanity. Things to consider here is not what gains will be gotten from making the software free, but rather what will losses will be made (if any), and whether they can be afforded. In this view, closed source is a bit like hiding a cure for common cold and selling it for rich people - somewhat shady business, but it happens.
From the utilitarian gains/losses angle, you need to consider the affected parties, as you already stated in the question. What do you gain/lose? What does the community as a whole gain/lose? What do other individuals gain/lose?
4) You will indeed inevitably be competing with open-source options. If you go open source, you'll probably be controlling the progress. You can delay this until the open source alternatives are starting to gaining community and popularity - but if you delay too much, you'll need to work a lot to get to the top, since everyone will be focused on the alternative that was open source from the beginning.
The relevant question here is, does it matter whether you are in control or not? You'll always have SO code for your sites, regardless. The risk for you is that an open source alternative becomes a lot better, and people start migrating there, so you have to work to keep up with the competition. You could avoid the work by going open and just controlling the progress yourselves. Then again, I don't expect OS alternatives to get attractive enough for migration in a long time, but who knows.
Open-sourcing is good. Open-sourcing Stack Overflow is a bad idea. It's so close to a finished product already. One of the major reason to open source a project like this (that I can see) would be to make it work on more platforms and that works directly against your business model, which is to monopolize on the Stack Overflow engine.
One thing I see lacking from your business model is the freebie choice. 10 clicks, no cost and you've got your own mini-Stack Overflow. Sounds bad for business? On the contrary, because this mini-Stack Overflow will be limited enough so that only the people who would never consider paying any big amount for the Stack Overflow engine will keep on using it. The most recent site using this business model that I can think of is Google App Engine  (You may say that it is open source, but that's just the framework; not the stuff behind that makes it all tick. Not to mention the hardware requirement it has.) http://code.google.com/appengine/
If you're not going to open source it, then you might create some lower priced tiers for freelancer/small business.
Currently, it wouldn't make any sense. Open source only make business sense when there is a community of users or businesses that find supporting a core software module/product useful for their business, but not part of their core business and thus to risky to devote resources to. By everyone contributing to the open code base, the risk is dispersed.
The classic example of this is the HTTP server. Every company needs one, but it rarely falls within a company's core business model.
In my opinion, SO as an application is distinct specialized enough that it is not a commodity, and therefore doesn't fall into the above category of software.
Yes, if this is a core "engine" that ranks questions / answers / users, you could choose to open source that. For example, you could open source the "badges" component.
Yes there are companies based on open source. You should evaluate how successful they have been and if their success matches up with your goals. Note that two of the companies you listed were acquired.
Seems like you already have the answer to this question. Yes, I agree - you will be competing against open source clones, particularly in markets you may not have entered yet (Asia, Eastern Europe)
See answer to #2 - if you want to provide an open source version of "Stack Engine" you could do so - but the only benefit would likely be goodwill of the community. As such, should not have the full features of the core site.
As a business model, you generally want to commoditize your complements  ... not your own business.
For a for-profit business, open sourcing software makes sense if it drives sales of something else. What would releasing the SO engine as open-sources achieve from a business standpoint?
Personally, I think it's hard to make a compelling business case for open sourcing something like SO - and I have yet to hear one. http://www.joelonsoftware.com/articles/StrategyLetterV.html
Don't fix something that works.
You can always open-source it later if it makes sense, the opposite is impossible.
My perspective is that you only gain goodwill.
You do not gain in perceivable quality, you do not gain in security, you do not gain in features.
You lose time in reviewing submitted patches, you lose corporate marketshare from forks, and you lose potential community members due to fragmentation of the market.
However, I would suggest - tentatively - that you may want to partner with a Big Iron-y company to see what their needs are for this kind of software. Perhaps that company would get a special rate, in exchange for being a "Friends and Family" contributor to SE features/licensing model.
I do not believe that offering something for nothing(open source) is a viable business model. I do not see how it fits into a functional and viable theory of real-world economic behavior.
One alternative to providing an open-source version would be to provide a Free version on StackExchange, similar to the way that UserVoice does it. The reason that people would want an open-source version would be to run it for their site, for free. If you provide that functionality for them, there would be much less need for it (other than making changes to the code/functionality).
One reason that it WOULD benefit the community would be to show off the quality of the code. This is a programmer's haven. I'm sure that a lot of people here would LOVE to see the code, just to use it as an example of a great codebase. Perhaps a license like the Microsoft .NET source code license would apply (look but don't touch).
Open Sourcing SO is a horrible, horrible idea. Please do not do it.
As someone who plans to launch half a dozen SO sites as soon as I can, I want to pay you money. Please let me do that.
Digium has managed to open source their asterisk software while maintaining an Enterprise version. Redhat (RHEL vs Fedora || CentOS) and Novell (SLED vs OpenSUSE) have done the same too ...
I would like to see an open source version of StackExchange - I would love to start a site for car enthusiasts - oilchange.org or something similar - but I can't really justify investing the money for the StackExchange service.
Really, it depends on the Open Source License you choose, you write your own license that prevents people using the software, or any derivative of it, in a manner that competes with you, but allows them to use it freely for their own purposes - ie: a company can't start their own hosted StackExchange service, but they can create a site for hobby-electronics or something ...
Slightly off topic though already sort of mentioned. What about a free closed source version of Stack Overflow for download?
I'm thinking along the lines of things similar to Microsoft's 'Express' editions of Visual Studio where the product works but has certain limitations built in.
You could for example create a free to download but closed source 'Stack Overflow Express'. It could be limited by for example, only working with SQL Server express (total database size 2GB Max), no support for running ads, limited number of page views a day, limted number of total users, limited styling support, no plugins, etc etc.
This would make a great free product for interanet or extranet use within small companies, organisations or groups and not impact on the business of getting the big users to buy the real thing.
From a purely selfish standpoint, I would love to see the source, as it is clear that the site has been done "correctly" in so many different ways, and I think it would make me a better developer.
If you did open-source it, you would have to license it in a way that protects you from direct competition, as I honestly think you guys should be the only ones in this space. Having two or more StackOverflows on the internet would only dilute the model.
I also think you should be very choosy about who gets write access to the code repository. These people would have to be totally dedicated to the purity of the Stack Overflow concept, and the only way to be sure of that is to retain complete control.
Undoubtedly you would face competitive pressures from clones who use your code. But your secret sauce is not the code itself, it's the social model you have constructed that is embodied by the code, and that has already been open-sourced.
I wish I had a crystal ball and could tell you what the best business model is. Nowadays its seems that the more you give away, the more exposure you get and (potentially) the more revenue you can capture. But I think you already have your audience. From a business standpoint, I don't see how open-sourcing StackOverflow will help you.
I humbly suggest that the value of making this project open source may come from the following scenarios:
The perception that there will be code review by the public will encourage higher quality code production (this may not be the case, but it is a motivator). This is an often overlooked and highly valuable consideration in many closed-source development scenarios.
Actual review by the public has the potential to reveal security issues, and more importantly the turnaround from the community for a fix is typically overnight.
Free porting to other platforms increases the size of the potential marketplace for support contracts.
Open sourcing the project allays concerns about lock-in, or that the product not remain available into the future (who knows, a law in Utah may someday prohibit the StackExchange SAAS model...).
Peddling (slightly difficult) open source software creates revenue models for support.
Open sourcing the project will allow others to turn it into something newer and better, and in particular further the ability to integrate with other software projects.
Open sourcing the project will destroy the motivation for an open source equivalent to arise in competition to your own project.
Measuring these against your project is a non-trivial problem! Best of luck.
Haven't read all 50+ answers, but here are my opinions:
Open-source the concept only. There are still Java, Ruby, etc. developers out there, who don't C#
Not much, as you would decline almost everything.
No, just keep the quality bar high and use modern scientific methods to optimize the community's behavior.
If you want to sell the engine, no problem there.
Btw, how do you imagine a business version of SO? A corporate knowledge base or something?
If I were you, and I was low on money, I would ask for donations, and perhaps ask god to help me out some way. Or any minor gods out there.
I have one word for you: data
The actual codebase for stack overflow is not that important, what has value is the questions. So I reccomend that you wait until stack overflow has so many questions any clone would be useless due to lack of questions. By that point even moving all the questions over would be useless, because people will go and look on stackoverflow.com and not some random clone.
Due to the reasons mentioned above your business model is not at risk relying you don't mistreat your community.
Make your money by offering hosting and customization. If you get some big customers, they are going to want customized changes that go beyond CSS. They will expect AD integration. They will want attachments.
If you add attachments, you have basically the same feature set as and can compete with Sharepoint, Confluence, Clearspace, etc.
At the same time, release it as open source. @Brian M. Hunt's reason #7 is probably the most important: "Open sourcing the project will destroy the motivation for an open source equivalent to arise in competition to your own project."
Leave out some key features (like AD integration, file attachments). Create a few plugins for essential features that aren't included with the open source product, and make them available for sale.
Let the community contribute features. Make a dead-simple plugin framework (following Wordpress's model) so the community has a low barrier to entry.
And, if it is open source, then (low- or no-budget) communities (such as students, user groups, etc.) that need a certain feature will be able to add it themselves.
What about instead of open sourcing it, making it free to create a StackExchange site? You could keep all the advertising revenue. There's loads of great ideas out there , and I would hazard a guess that many of us would just like a SE site relating to our topic of interest, and aren't interested in trying to monetise it. For example, books.stackexchange.com or movies.stackexchange.com could easily become more successful than stackoverflow. http://meta.stackoverflow.com/questions/4033/what-stackexchange-sites-do-you-want-to-see
Open sourcing everything probably will screw up your business, but opensourcing parts here and there is a common thing - see http://github.com/facebook for example.
I wouldn't worry about it until you start having actual competitors, excluding of course Chinese knock-offs.
Or if you can let users create their own stack site on your system. Like Google Groups, but now it's Jeff Stacks.
Could there be "enterprisey" closed source and "public" open source parts of the business? I've always said that StackExchange is going to have to fork because their private small, medium, and large business audience will want very different things than the public internet audience we serve. Wouldn't this be one way to segment the "free as in whatever the heck it is we're calling free these days" open-source dev work from the value-add closed source product?
Personally, I think open-sourcing part of the tool amd not all of it is a Bad Thing™. It's why I won't even take a second look at a lot of "Open Core" toolsets (like Zenoss) - either the whole operation should be open and available, or none.
I've wanted to be able to use the SO engine for a knowledge-base system for a while - with the caveat being that any authenticated user can post or view a question, but only "special" users can answer (in the context of providing a corporate KB for software tools, for example).
I'd be willing to use SE, but honestly the hosted costs are just way too high. For the amount we'd spend in a year, I can have a couple developers build a knock-off that works well enough for our purposes.
This is even more true in the context of having a Q&A site for FLOSSS projects on which I am involved at some level.
My first reaction was ... " No, no, no, hell f**ing NO !! " ..... , but then the point number 4 gave me real long pause.... and I haven't recovered from it yet ;)