If you're a small startup, putting forward a statement that all the code will be open sourced if you shut down should increase the level of comfort your customers have in the product.
What are the downsides I'm not thinking of? Companies that reuse code across multiple products, perhaps. Product A dies, but uses component Foo in Product B that still exists, and represents some kind of special-value-add.
The most obvious downside is that it creates perverse incentives -- potential customers benefit if you fail. It also telegraphs a lack of...I don't know what the word is. Tenacity? It's kind of like putting a bounty on your own head so that at least somebody can benefit if you die. You really want people to be invested in your survival.
It also limits what you can do with your program. If your program uses code you don't have a license to release, you can't open-source it.
It's debatable customers benefit if a company fails and open sources their product. The customer, assuming they're willing and able to install it, misses out on any further upgrades (rare is the salvaged open source that goes anywhere) and support. Though I don't discount that there is _some_ benefit and that many customers might over-estimate that benefit.
I thought about this earlier - putting a statement on circleci.com saying that if we shut up shop then we'll open source everything. However, I think its dangerous to plant that seed in a users' mind - I think it suggests that there's a danger of that happening (which there isn't, CI fans).
I actually think the solution is to ignore customers with this view. We'll get their business when we "cross the chasm".
It gets tricky if your exit path ends up being the sort of combination talent/product acquisition where your new employer wants to keep your tech proprietary (see: Apple acquiring Siri, Facebook buying Face.com and shutting down their public API).
If you're a small startup, putting forward a statement that all the code will be open sourced if you shut down should increase the level of comfort your customers have in the product.
What are the downsides I'm not thinking of? Companies that reuse code across multiple products, perhaps. Product A dies, but uses component Foo in Product B that still exists, and represents some kind of special-value-add.