Hacker News new | past | comments | ask | show | jobs | submit login
Open Sourcing a Failed Startup (nirvdrum.com)
344 points by nirvdrum on Nov 21, 2014 | hide | past | web | favorite | 159 comments

I really feel for nirvdrum here, we had exactly the same hard process with Microcosm.

We were somewhat better placed to open it up, we had separated various parts more completely, hadn't put in the full billing engine, and had no third party code or other things that we were distributing that might be an issue.

But... one of the things nirvdrum didn't touch upon was that we just hadn't designed it to be a single-server, single-customer install.

We designed it as a platform, and made assumptions along the way. I didn't mind opening the embarrassing code (everyone's shit smells), but the people who were asking all seemed to want a single, well-documented install... and we were having to walk away and go get a day job.

We did choose to open it in the end, and you'll find our work here: https://github.com/microcosm-cc/

But I only know of a few people who have actually installed it to date (and struggled, because it's not well documented). All of the effort to open-source it just found another set of tyre kickers.

Sigh. It's tough. Just letting go. And it's definitely made tougher by wrangling with these questions and trying to do the right thing without investing so much at a time when you're exhausted, broke and likely quite down about things.

Thanks. That's another excellent point. I think I had it in my post outline and just forgot to put it in here. The Mogotest application is complex to set up. For each version of IE you want to test, you need a separate Windows installation with that version of IE. To test Safari and iOS requires provisioning Macs (we used leased minis running VMs on ESXi). And the code itself runs on a Linux cluster.

Since our cluster provisioning and deployment was encoded in the project rubber [1] configuration, that complication is somewhat mitigated. But the point remains: the application requires multiple machines across platforms to be remotely useful.

[1] -- https://rubber.io/

As one of buro9's users, I have to say I was very happy to hear that the software was going to be Open Sourced, however I was dreading having to migrate it all to my server.

In the end I'm much happier that buro9 found a way to keep it ticking over. Given the choice of continued service vs. Open Source I definitely would have chosen continued service - but it's even better to have both!

> the end I'm much happier that buro9 found a way to keep it ticking over

It's worth noting for people that don't know, that I ate my own dogfood. The communities and forums I run are now hosted on Microcosm.

So when we were facing the "What next?" moment, I knew I had to install and setup my own instance of the platform just to give my users an uninterrupted service.

What I did, was for every customer already on the platform who had stuck with us, loved what we'd done... I offered them space on my instance.

I never wanted to leave even a single customer in the lurch. I think it sucks that startups do, especially if a way can be found.

Wow, I didn't know that... Your bluemonday package is one of higher quality and useful Go libraries I know.

That was one of the bits we had always intended to open-source. There was a real need for decent HTML sanitisation in Go.

When I find the time and energy (between the new job and getting married in a month), I still want to add CSS sanitisation to the mix as well.

Honestly, I'm not quite sure how I feel about this.

I have people that ask me to open-source my current side-project all the time (one that is paid), and I find it insanely disrespectful.

"Yes, let me just hand over the source code for my commercial product. How about not."

I'm not trying to sound greedy, but money speaks. If these companies want the software open sourced, they should be pitching in for the cost. If you don't think something is worth money, you don't value it at all.

EDIT: Perhaps this is a good place to drop the "challenge" I gave myself and invited other developers to join me a few months ago.

DEVELOPERS - I challenge you to spend some money TODAY:


I'm not a developer, I'm a DevOps admin, so perhaps I don't understand as well as I would if I was a developer (blood, sweat, time, all that jazz).

I can see it being rude for people asking you to open source an ongoing concern side-project. But if your startup failed, your application didn't have any value in the marketplace (or you weren't able to execute).

As you said: "If you don't think something is worth money, you don't value it at all." If the market doesn't value it, and it failed, why would people pay to open source it?

You're completely correct in my opinion, but I'd like to add one crucial point:

If people are asking/begging for the tool to be open sourced, then they do indeed value it. Otherwise, why would they care if it just withered and died?

They may not have valued it as much as the product was charging for, but that's a different debate entirely. I'm assuming there was some discussion of commercial viability, lowering prices, etc. before they chose to shut down. (You pretty much said this part in your second paragraph, this is the "execution" part.)

>If people are asking/begging for the tool to be open sourced, then they do indeed value it. Otherwise, why would they care if it just withered and died?

If we are talking about a start up, what about current clients? Maybe your business could not be sustained by the number of clients you had, they do find value in but they can not by themselves sustain your business.

Yes it's totally allowed to sell a product under GPL, for example to give it only to the real customers who paid for it. Those are then free to share, but since they know how much it cost them, they may choose not to.

Some people value an open source product more than a proprietary one. Although in this case, the OP couldn't get enough funding to release it as open source.

If someone won't pay for a closed product, and won't pay to open it up, they don't value it at all.

This completely ignores customers without boatloads of cash laying around. I've worked in educational institutions where there is absolutely no budget to do something. However, people that are genuinely interested in accomplishing something will turn to open source.

They have time to contribute back through documentation, bug reports, and even bug fixes. The only thing they don't have is money. That doesn't mean they don't value the project.

If you're interested in seeing something open sourced and you have time but not money, consider offering to do some of the requisite cleanup work under NDA.

"If someone won't pay for a closed product, and won't pay to open it up, they don't value it at all."

There might be no/little value in the product but some probability of value in the source. For example, for a competitor there is possibly a lot of value in seeing the approaches the software took, the problems the developers ran into, etc. Key word: Possibly.

I'd personally just ask to interview the startup owner for 10 hours at say $200/hr but I know some people aren't great at extracting value from a face to face chat.

Ah yes, money is the only measure of value in the world...

It's a good thing my kids pay me to love them.

Note that I said, "They don't value it." That doesn't mean it doesn't have any value.

Value is not an objective property of a thing, so I don't see your point. Things have value by the virtue of them being valued, not solely because someone wants to spend money on it.

Actually there's an entire spectrum of pricing between paying enough to get the owner to agree to give the product or the source to you, and wanting it for free.

Price determination is always hard in business, but I'd like to think its a bit easier with software or SaaS products, as you have zero marginal cost (besides server time).

I believe we're in agreement then!

'The market' - which is actually not a useful catch-all way to describe a complex set of customs, traditions, power-plays, politics, and other relationships - may have undervalued something for all kinds of reasons.

Markets are not only not omniscient, they're remarkably easy to influence if you're one of the relatively few people who understand how to do effective marketing. (I'm not, but I've certainly experienced people who are.)

Ability-to-persuade usually trumps ability-to-deliver. Even in tech.

So what's the real value of a product/service?

With a failure like this, the lack-of-value may have been as much about the failure to upsell and market correctly as about a lack of practical usefulness.

Making people pay for something that they already get for free is hard. I have never paid for a piece of software. I have donated to a few open source projects and have contributed code to several too. Most of us developers are used to getting high quality open source software for free and being willing to contribute back to it for that reason. Being asked to pay for it instead just leaves a bad taste in my mouth. If that model doesn't work for your software, fine, but that just means I'm not going to use your software.

Perhaps a better solution here would be to hand the code off to a trusted group of volunteers for clean up purposes.

I know this is going to seem like nitpicking, but most developers will never contribute to open source. Maybe most of the people you are immediately surrounded by do. But a lot of open source is written by a small subset of the population with an extremely long-tail of contributors that will never come close to giving back as much as they take.

" I decided to try a crowd-sourced campaign to help with the open sourcing effort. Precisely zero of the companies that have been begging me to open-source the code have contributed in any capacity."

Wow, that speaks volumes. Good call on not open sourcing your code.

Quite agreed! I do believe that we have a duty (c.f., discussion in thread elsewhere) to try to do it, but if it's not that valuable ... meh! let it go, have a drink, chill.

I think the same goes for those trying to pressure twitpic's owners to give up all of the company's IP for $15k in bandwidth bills. If it's really an indispensable historical archive, as they claim, surely someone is willing to put up some dough and see that twitpic is fairly compensated for relinquishing control of that archive. This goes double now that Twitter is a public company. The fact of the matter is that twitpic is not considered that valuable, or they'd be able to raise some money for the data dump.

As far as I knew, several serious parties affiliated with archive.org offered, contacted them directly, and made plenty of waves to try and buy this capacity.

So twitpic might be different, but I agree with the general point: if you care so much and you are making money with it, pay, otherwise go build it yourself.

This is a great use case for crowdfunding!!

I love and contribute to OSS, but the community often has a toxic entitlement mentality. It has somehow become for-profit corporations' God-given right to expect free labor from white-collar professionals. Ahem, what?

I have gotten asked about whether I'd OSS my services if I was unable to continue maintaining them commercially. Nope. Not a chance. If they need a soft landing, that soft landing will be a 6 month warning to get your data out, prior to them going into the big bit bucket in the sky. It is extraordinarily difficult to take a multi-tenant SaaS app and turn it into a single-tenant appliance. There are people who do exactly that as a consulting service, and they charge tens of thousands of dollars for it, for a reason. (Plug: take a look at jidoteki.com, which is attempting to productize that particular space.)

Just doing the license review is something that they pay serious professionals with high-three-figures-an-hour bill rates to walk on a file-by-file and function-by-function basis in the case of e.g. an acquisition. If a forgotten subsystem got written by a freelancer 4 years ago and you don't have an IP assignment readily at hand your options are a) locating the freelancer and convincing them to sign additional contracts or b) doing a quick cleanroom reimplementation of code you might not even have know existed.

It's not like OSSing the code will quiet the criticism, either. Some folks simply want to see it OSSed for the same reason they want to see their football team win, but some of the folks have the notion that they're actually going to use it. When it doesn't work (and it won't work), they're going to expect you to fix that for them. For free, naturally. This will often entail doing free tech support for other people's software -- in some cases, other people's very expensive software that they should probably be paying professionals to support for their customers.

If any of this discomfits OSS users, the mint prints out paper ballots which allow you to allocate your votes on desired outcomes for the future. See that some go to the people responsible for software you can't live without.

This was a large part of why I decided not to. It took me 6 hours or so to realize that was the path I was heading down. But the end of the 14th hour, I was certain it was a bad call. Releasing something I know was broken and that everyone knew I was the best person to fix just sounded like a recipe for a bad situation.

I wish I had realized it a bit sooner. But, hey, I feel more comfortable having thoroughly exhausted the option.

There is a real problem with the perceived value of software. The public sees Google giving everything away, not understanding the underlying business model, and assumes all software has little or no value. Software is not made of physical materials, so why should it be compensated?

The public sees Apple apps for 99¢, so shouldn't all software be priced like that?

I recently dealt with a customer demanding a free upgrade. She paid $29 nine years ago, and was seething mad at having to pay for an upgrade. How do you deal with that?

I'm just looking for an Opens Source banker who will give me an Open Source mortgage.

>I recently dealt with a customer demanding a free upgrade. She paid $29 nine years ago, and was seething mad at having to pay for an upgrade. How do you deal with that?

After 15 years in the field (as a consultant) NOW I can say, you just drop the client if she does not want to pay. These people don't value other people's work.

Ask the customer when was the last time Microsoft gave a free upgrade for Office.

Sadly, about two weeks ago...

If you're asking why sadly: if you're not paying... etc

> I'm just looking for an Opens Source banker who will give me an Open Source mortgage.

+1 :)

I'm always brought back to the time I decided to literally sell everything I had and leave the country. A few weeks before leaving I listed each item I had for extremely reasonable prices.

A $400 couch for $200, table for $20, beautiful custom framed long print of an old possibly rare poster for $50. Laser printer for $20. Ridiculously reasonable prices on everything on and on.

Nobody bought anything and every thing I managed to sell was preceded by an arduous process of "oh how about this much". Two days before moving out I listed everything I had left for free, which was basically everything. Immediately the phone was off the hook, people were leaving work to come pick up whatever it was.

What I'm saying is nobody pays shit for anything.

I just had to do the same thing, and had a completely different experience.

I sold our stuff on an auction site (TradeMe, the NZ EBay equivalent), with $1 reserve, and applied some of the lessons I've learned from lurking here.

My wife thought I was crazy. She was completely ready with the "I told you so". I argued that we didn't have time to relist it if it didn't sell at the reserve, so $1 it had to be!

Everything sold for more than I expected, dramatically so (frequently more than replacement cost). Even better, when people came to pick up their purchases, they were invariably _happy_ about it!

Going back, I compared my results with those of the same items on the site, my $1 item outsold them.

It helped that ads with pictures, $1 reserve and paid placement got preferential placement.

Things to do:

  1) Put some effort into the copy.
  2) Track down the user's guide.
  3) Track down a product review.
  4) Take pictures - Make sure they are in focus!
  5) Show the label indicating model number clearly.
  6) Answer all questions promptly.  
  7) If people ask for Buy Now price, decline. :)
  8) Pay to be top of the results!
I also learned that 50% of the bids arrived in the last day.

That's really interesting. Perhaps people feel they are getting a better deal if they 'win' (buy) something at $20 that someone else wanted for $19. But if you had of just listed it at $20, then they feel that the seller is just trying to extract as much value as they possibly can.

That is - they are getting the market value rather than the arbitrary value the seller assigns. Even if that value ends up being the same.

Here's a relevant tidbit from game theory: http://en.wikipedia.org/wiki/Dollar_auction

I'm really interested in this, any chance you have the hard numbers on what you spent vs what you made? Marketing is a skill that I'm not great at so this kind of explicit example is very helpful.

Honestly, if you want advice on selling items such as furniture or personal items online, you might want to ask in one of the flipping comunities like /r/flipping on reddit. They don't usually try to get rid of their own stuff, but they sell stock from yard sales, thrift stores craiglist offers, retail arbitage, ect. In fact, you might have drawn some flippers with your free offer. They're usually quite helpful if you ask concrete questions , especially regarding presenting your wares, and there'll proably be members who can tell you what percentage of their revenue goes to shipping and other fees.


Thanks! I'd never heard of /r/Flipping and the direct link to the wiki was very useful.

No, sorry, I have no data, this is pure anecdote. :)

Were these local buyers or were you shipping everything?

They were all local buyers.

in other words, marketing.

If someone knocked 50% off a couch, why wouldn't I try to see if they'd knock off 75%?

If you're selling a $100 laser printer for $20, then you're clearly not trying to extract the maximum value from it, so why wouldn't I try to see if you'd take $10 for it?

It seems like you implied that getting rid of the things in question was more important to you than getting a fair price for it. People simply carried that assumption further.

The phone wasn't ringing off the hook to carry that assumption further the phone was ringing off the hook when it was free.

This just reminds me what a terrible Craigslister I am - when I see something I want at a price I like, I don't bother offering anything less, I just say I'll pay the list price.

Wife on the other hand? I can't even be in the same room with her during negotiations over $40 chairs, she's ruthless and it makes me feel so awkward.

I would think you'd have a different username :)

I've sometimes experienced the opposite, where no one wants it when it's free, but put a price tag on it and suddenly they have to have it right now.

Long ago I volunteered at a food pantry that "sold" food for $1 a bag, because (against what Econ 101 would say) people didn't act as entitled when they were entering a transaction.

Before I gave up on Craigslist completely, I had multiple experiences where I offered something nice for free, people quickly replied to claim it, and either never showed up to pick it up, or made it a complete pain in the ass (e.g. the people who showed up at my house at 6AM on a Saturday to get a couch, after having agreed to come at 10AM).

That happens when you're selling things, as well. I have an ironclad "no holds" policy these days - no, I won't hold it for you, I don't care that you're literally driving down the highway and are five minutes away - I've waited days for "five minutes away down the street" guys before, and I never will again.

It also often improves the chances of people taking the food at all, pride/dignity comes into play at all levels.

Pro tip: do some precision anchoring [1] of your offer price.

If you had listed your couch as $205, table $21 dollars, etc. you would have probably received offers closer to your asking price.

Round number prices signal you have no idea what the items are actually worth prompting people to ask "how about this much."

[1] http://en.wikipedia.org/wiki/Anchoring#Anchoring_in_negotiat...

I dunno about 205/21 dollars but I do know people will think you are copying the price from the store if you put it as 199.99.

I've had the same experience.

I think that's why B2B is so popular: people are willing to spend money to increase their corporation's value, when spending more than a latte's worth on personal software often is agonizing.

That's a direct result of people being salaried, meaning they're on a fixed budget. As a corporation, you put in something, and something comes out the other end. As a salaried individual, you put in something (more hours) and absolutely nothing comes out the other end.

You're in the wrong job then. Product comes out; your performance review can improve, leading to raises and bonuses.

Yes, raises and bonuses are there for some/most jobs, but people don't make their daily shopping decisions based on their 5-year career plans.

I can imagine hourly workers/consultants thinking to themselves, "Hey, this is a nice piece of software, let me pay the $x it costs for it and I'll stay at work another hour tonight."

I can't imagine salaried employees thinking, "Hey, let me buy A, B, C, D, E, and more, be in a budget deficit for the remainder of the year and hope for a raise!"

I think the problem with business is that until you are making a ton and have people beating down your door, this is how it feels - like no one pays for anything.

In fact people pay A LOT for tons of things, they just have so high of a bar or are so fickle about what they do buy that it seems like there is no way to figure out how to get them to buy.

Having been through this kind of decision before, this really resonates with me. Especially the pettiness.

When your business fails after years of struggle because people didn't want to pay for your software, and those same people make you feel guilty for not supporting the codebase after you can't pay the bills... that breeds the kind of resentment that creates real-life Walter Whites. It's hard to understand the experience unless you've been through it.

One thing that came out of it is that now I always try to find a way to pay for the things I use. Especially when I don't have to -- because I know I'm in the minority. And when I don't pay for something and that something goes away, I don't get frustrated anymore. I know i'm getting what I pay for.

In short, please pay for your software.

> In short, please pay for your software.

I regularly donate to several free software projects (kde, gimp, vlc, firefox, and occasionally others) because they respect my freedom.

I strive to avoid proprietary products. If other developers want my money, I want my software freedoms. Those that provide them get money from me. I do understand this is not the norm behavior, and it is awful that it takes developers disrespecting the users of their software to have them pay for it. Just nobody sees the value in software freedom (and yes, even if you cannot write code you benefit from being able to pay any developer to fix your problems, and you can also pay auditors to inspect the code whereas with a proprietary product you are screwed).

Given that developers prefer not to starve and companies prefer to stay in business, if we're going to switch to a world where software is open source and everybody pays/donates even though the source is there, consumers need to make the change first.

As long as consumers don't pay/donate for opensource software, producers cannot afford to pull the ripcord and switch things over, even if they want to.

Work on letting the pettiness go because it will only make your own emotional recovery more difficult. Honestly, it might take years for you to fully recover mentally but cynicism will just prolong it.

If it helps you financially to not open the code because someone may yet still pay or because it saves you time then thats a good choice, don't feel bad one bit about it. But forget people who "should have paid" if it has no relevance now other than to torment you.

You also may have an adjustment period as you go back to working for another company. It's weird because you feel like you've already grown out of that yet will be expected to fit in as a corporate soldier.

I can offer hope you will eventually see an upside in personal growth. You'll realize that you've gained experience and expertise in running a company that's rare and extremely hard to come by any other way.

Good luck on your road to recovery, don't give up.

Thanks for the concern. I've sorta gone through this before. I ran another company (Servprise International) for 4.5 years and went through the adjustment back to a full-time job. The biggest difference is this time I'm older and wanted to think about something I could reasonably see myself doing for 3 - 4 years, at least.

I'm actually fairly at ease with things. Making the decision to leave it behind was liberating. Dealing with the BS required to shutdown a company is just annoying. But, the open source question has come up quite a few times. I wanted to give it more than a simple "no" answer and explain why. I feel like it's really a loaded question to ask a start-up that just shutdown, especially when it's not often asked of start-ups still running.

I threw the pettiness quip in there to be intellectually honest. Taken out, I don't think it materially changes the decision. But I wanted to address it. I'm human. I certainly have irrational tendencies and I'm rather okay with that. Sure, I'll work on them, but humans aren't perfect automata even if this forum is wont to linking to Wikipedia pages on logical fallacies. Even after challenging that part, I couldn't find a strong enough set of pros to outweigh the cons in spending more time to give it away.

Luckily this is one decision I'll never have to make if we ever fail and shutdown. All of our code is Open Source, ASLv2 licensed, and has been from day 0. Well, OK, maybe not a few internal tools and things, but all of our product code is OSS already, on GitHub and ready to go.

We consider this a strong selling point to our current prospects, actually. There's no fear of vendor lock-in, they can kick us out tomorrow and get a new vendor to support them, they have 100% freedom to modify the code and tailor it to their needs if we don't provide what they need, and - if we close up shop - they have options for future support, whether it means supporting it themselves, or paying someone else to do it. But access to the code will never be a problem.

Well, that's great and all but be careful not to be to flippant about it.

It's a very different business model, with different advantages and disadvantages that are very hard to compare directly. It's not an easy decision to make.

My current project was Closed Source for a year and a half and has now been Open Source for a year.

Open Source was always something I thought about, and sometimes people asked, but the thing that made me flip over was the realisation one morning after some bad sales meetings that with either a Open Source or Closed Source project, making a project that users both actually want and you can get some money for was very hard work, and if I was going to do all that work anyway I may as well do the one I personally preferred.

So I Open Sourced it, and I feel I did so from a position of strength. It's been a great year for the project, and I don't regret it.

I've also been on the flip side of that; Open Sourcing a project from a position of weakness. We had talked about Open Sourcing it from the start but never did, then the project never took off and in the final stages before we finally killed it we Open Sourced it. It never gave us or anyone else that I know off any benefit, and was a waste of time.

Thanks nirvdrum for a honest and good post - I'm actually talking about Open Sourcing my project in a week and would like to quote your blog - with a link and credit, of course. Good luck for the future ...

By all means, quote away. Writing this was cathartic for me. If it helps others, even better.

Plus 100 for this. I've (after one year of business) open sourced my software and this was one of the better moves in my 5 years business history.

This opened a lot of doors for me.

Awesome. I think I could have made this more likely by going more service-oriented from the outset. It was a Rails prototype app that kept growing. Eventually new stuff was service-oriented, but far too much was locked up in a monolithic Rails app. In any event, that would have allowed me to still outsource some of the view stuff to proprietary software while being able to open up the core of it. C'est la vie.

I'm the competitor nirvdrum was mentioning (Browserbite). We had a very nice founder-to-founder talk and we have gone through quite a few of the same failures that he has. I have all the respect for nirvdrum. Most people don't manage to hang on that long.

To be honest, I was sorry to see mogotest go, because it shows that there might not be any business in cross browser testing. But there is! In my eyes it was a valid effort on all fronts - trying to build a community and handling lots of browser vendor irregularities. He was one of the first ones. But the market wasn't there, yet.

Good luck! The cross browser testing space will miss him!

Giving your customers a soft landing is really important to maintain trust. They loved your product, and proved that the market existed--but it wasn't as big as you thought.

When closing down, has anyone explored not completely shuttering the company, but instead continuing to exist as a licensing entity? License the source code itself to your existing customers so that they can continue using it, without all the messiness involved in open sourcing it completely?

Probably a terrible idea, but it's what this blog left me thinking.

I did think about licensing. There are two big problems with that:

1) The costs of running a single instance of the application far exceed the plans I was selling. It requires a certain amount of amortization to become cost effective for a lot of people. Dealing with Windows and Mac licensing and the hardware required just to get the browsers going, let alone the analysis engine, is too much for most of our customers.

2) Browser vendors pump out releases every 6 weeks. Without some form of ongoing support, the app would become obsoleted in fairly short order.

As such, the licensing model only makes sense for those that are comfortable messing around with the source. While the article makes it sound like it's a coupled nightmare, most things are actually laid out very nicely. But, it's still a level of complexity a lot of people aren't going to want to tackle.

I know that I'll sound like patio11, but have you tried charging more?

I mean, you have clients, that value your software. You have bills to pay. Do the clients value it more than the bills you pay? Why don't you try to discover that?

> Giving your customers a soft landing is really important to maintain trust.

Will "maintaining trust" pay his mortgage? Unless he's going to found another company, that's not very useful for him.

Not a terrible idea at all, IMHO. Isn't the core idea of OSS to enable those who use the software to modify it and keep maintaining it? It doesn't mean you have to give it to everyone else as well for free.

One reasonable choice would be to give or sell your former paying customers just a raw code dump, with a notification and a disclaimer of all the included license problems and other embarrassement. Giving it for free would of course be an easy way to avoid unnecessary liabilities.

Who knows, maybe next they want to buy your services to make fixes and new features? Perhaps they might even be willing to sponsor you in making it a proper open source project.

Talk to your customers. They are your most valuable asset.

EDIT: continued the natural train of thought

What I hate is that some people feel entitled to getting one's hard work for free.

No, that's not the issue. People object to useful IP rotting in the back of a filing cabinet, unused. It's not about getting it free, it's about being able to get it at all.

(Some people may want things for free but that's a different issue.)

I agree there's something to that.

But I've also seen first hand that actually, yes, a whole fuck of a lot of people just want something for nothing and will happily tell you how great your thing is but only when they don't have to pay anything for it. And even once you do go free and open "to save it from the filing cabinet," any option you leave open to contributing to the maintenance of it long term even will be largely ignored.

Even Mozilla continues to exist more because of the search engine licensing money than actual contributions to the effort.

I think there's a distinction between possibly useful and probably useful.

My old business records might be made into useful scratch pads by developmentally challenged individuals undergoing vocational training at the local GoodWill Industries. But where theory meets reality, donating twelve banker's boxes of paper is neither in my interest nor those creating the training program.

People who save empty shampoo bottles and mayo jars and used condoms because they might be useful someday are the subject of the reality show 'Hoarders'. Some things are not worth preserving.

And discarded code doesn't take up space in a landfill.

That objection is a form of entitlement.

No, it's not. Some of us actually believe that the advance of humanity comes from the reuse of its own previous work.

You're not rebutting my argument; you're merely saying that the "entitlement" isn't in this case negative. You've confounded a positive argument with a normative one.

Either way: it clearly is entitlement. Someone writes something, conjuring something new out of thin air. An unrelated person believes they have a moral claim to that thing. QED.

I do happen to think this entitlement is negative, if for no other reason than that it prevents people from publishing or even talking about publishing for fear of having to deal with entitled strangers arguing with them about what to do with their work. Whatever "good" that sense of entitlement does is, I think, outweighed by the bad.

You obviously disagree.

But if one subscribes to scrollaway's hypothesis one must conclude that someone cannot conjure anything new out of thin air, that your work does not exist in a vacuum and that "entitled strangers" are not disconnected aliens, but vested shareholders in your cultural genesis.

It is a sense of entitlement, but it's far more reasonable. If you spent years working on a codebase which at least a few people liked enough to use, is it really worth dumping all that code in the trash for all of eternity just because you'd incidentally end up capitulating to some obnoxious people when you open source it?

Setting aside the licensing issues, and assuming it's just because I don't feel like dealing with obnoxious people, something still doesn't make sense to me. Prior to announcing the shutdown, no one had access to the source. I've made a lot of it available since then, but not all of it. Today, they still don't have access to that source. How is society any worse off?

Unless your belief is simply that all code should be open source. And that's fine, but then it doesn't really seem tied to the shutdown of the company.

No, I don't think all code should be open source at all.

Humanity isn't worse off for it if you don't release the source, but you could potentially make humanity better off by releasing it. If you keep it to yourself forever, never to be used or seen again, you reduce the chance of helping someone's project or improving someone's life to 0%.

If you do release it, there's that chance that a few people out there will borrow some of its ideas to help them out, or perhaps they'll actually use the entire codebase so they don't reinvent the wheel. This could save them a lot of time and effort. Or maybe a non-coder will use it because they genuinely want to use the app. And who knows, maybe it'll be a lot more than a few people.

It's just a bit existentially sad to essentially lock all that code produced out of so many man hours in a little sphere that is never opened again.

For a good example of this, look at Isaac Newton's unreleased works.

If you really don't want to appease obnoxious beggars from companies, you can just release it with a license that restricts all, or certain kinds, of commercial use.

It's totally unreasonable for them to try and make some moral argument that they should be allowed to have it if they aren't willing to pay.

Absolutely, yes it is worth hanging on to. "Dumping it in the trash" is such a biased metaphor. Having self respect and not being a pushover pays gains in the long run, so yes it's worth it.

But, it is! The question is, are we as humanity entitled to previous work after $period_or_event?

(I would argue that yes! we are! after... some debatable period or time, and I would argue that not all that can be recovered is worth recovering, but those are strictly subsidiary from the question).

Just to be clear: at issue here isn't whether some piece of code scraped from an HTTP response or found without a license on Github should revert to the public domain.

The specific entitlement we are discussing is whether work you produce on your own in private, without ever revealing it to the public, is so encumbered by the entitlement of strangers that you have a duty to furnish it.

That's what people who cajole business owners over open-sourcing their failed projects are asserting.

Absolutely. To be crystal clear, I am discussing whether the technical & intellectual work produced as part of your (as commonly understood by the layperson) property and business, ought (as a duty) to be furnished by the creator/owner under some license to the broader world in some sense (whether by specific request or generalized publishing).

I argue that, generally, if said piece of property has no other encumbrance, then after some event or period of time, if this property is not providing value, the creator/owner should yield the property to the broad public, as their duty to society.

In particular, I am not asserting that they have a duty to make it useable or useful, or have a duty to do anything besides a tar ball or the moral equivalent. I am not asserting that it is always possible (encumbrances exist...). I am asserting the principle that our duty to society demands yielding this property up to the world at some point when we no longer find it valuable to own in any sense.

I am founding my statement of duty based upon reading too many papers from the 50s-70s where really interesting systems were developed, and then redeveloped years later, when the original companies had disappeared or discontinued the initial product. I think we could be much further along if the publishing of source was a commonly done thing.

Part of the purpose of my post was to paint a realistic picture of this process. I suspect much of what I ran into isn't an aberration. Creating a tarball and distributing it is a gross oversimplification of the process in many cases. And there's massive liability exposure in doing so.

So, the question then becomes how much more do I owe society? Am I obligated to spend 40 hours to clean up the code? Should I pay for a personal E&O policy on the off-chance I'm infringing on IP or unwittingly using someone's patented work? Should I continue running the corporation just to protect my personal interests?

And even if we managed to come to some agreement on all that, is it really the best way I could contribute to society? Would that 40 hours be better spent volunteering at a soup kitchen? Maybe spending the time programming for some non-profit that needs help?

The question seems simple at face value. The reasons for open sourcing dead software sound fantastic in an idealistic society. But the reality is far more complicated than the question suggests. And I don't think it's entirely fair to expect or demand this of people.

Those are really quite fair questions in reality: I'm arguing from principle, but I don't think your complaints are unreasonable. Reality exists, after all. :-)

Let me pose a hypothetical example - Suppose your company produced the World's Shiniest Algorithm (WSA), allowing our total software energy use to drop below 10% of what it currently does.

And, then, because your company is led by a scientist who can not run a business, it completely implodes. The WSA is now out to lunch. What is the moral duty relating to the WSA? Should it have been published/open sourced?

On the flip side, what of the company with the World's Worst Algorithm, allowing your fine company to rank size of navel lint. This also implodes (for obvious reasons). What is the moral duty relating to the WWA? Should it have been published/open sourced?

My perspective is largely informed by seeing a lot of published papers referencing really awesome software long ago that essentially went into the garbage can due to commercial reasons. I don't think that it was a net win for society that that happened.

These are interesting points and my response wasn't intended to slap you down, as it were. I just see the question posed every time someone announces a shutdown here. And I don't think it's a bad question to ask, but it is quite loaded. I set out to explain why.

To your example, if someone tells you exactly how something was built, but didn't give you the source for the embodiment, that seems like a fine societal contribution to me. But, I'd probably argue that if it were truly that valuable to society, society probably should have found a way to support it, too. As long as the argument is no one owes a founder anything (which I can agree with), then the founder shouldn't owe anyone anything as a matter of fairness.

You seem to think that society deserves to be treated with benevolence, and responds well to it.

As a member of society, I have learned that if something is actually all that great, it will eventually become open source or be replaced by open source. Jeff Atwood had an article about this a long long time ago.

Society learns also from being punished. If people did not give away their work for free, society would learn more quickly that you have to pay people to work. Then society could benefit 1) from paying people to work 2) from having a claim on the work they produce.

They aren't going to learn if people keep bending over.

It's entitlement, but not entitlement to free stuff.

In a repeated game (which the world is), otherwise-paying customers can just sit back, wait for the company to fail, and then get the software for free.

Eh, that depends on if the value is the software, or in the delivered service. Can go either way. I am very confident that , e.g., some Company I once dealt with could open source nearly everything with AGPL3 or other far-out license, and it would make piss-all difference to their bottom line, because they sell satisfaction of customer desire, and getting to that place is a very hard road in their business.

Not all companies have that model though.

Agreed, but the most useful form of that objection would be to make an offer the codebase, etc.

The one group that I feel is somewhat entitled to the code is the customer base. Not open sourcing it is one thing, but I'd highly encourage the author to release the code as shared source with only his former customers. They're the ones that tried to help make his startup a success. They're not the freeloaders. If they end up giving the code to someone else, then so be it...he's not making any more money off it anyways.

Moreover, I think the shared source model is one that more companies should pursue from the beginning. For one, having light on the code from day 1 helps keep developers honest. Secondly, it establishes a trust relationship with customers that can be very powerful. And lastly, it eliminates one element of fear in the purchasing decision...potential customers don't have to worry about being left in the lurch if the business goes under.

I feel like I went above and beyond what was needed. I communicated clearly with my customers. I'm running all the servers right now with my own personal money so they had an extra month to get all their data. I found a company that could provide some of the same functionality and got them to offer my customers a discount. I open-sourced a lot of the code. And I didn't bother wasting their time with stuff that wouldn't work without significant effort.

The fact I can't easily open-source certainly could be a topic of discussion. But I don't think I was being terribly dishonest by outsourcing large pieces of functionality to software I don't have the rights to distribute. We originally used jQuery UI and it was a constant source of headaches. We switched to ExtJS, got a much richer UI up in a weekend, had paid support for any issues, and our customers were happier with the product. It was a trade-off and I was hedging on making the company work, not making it easier to give away should the company fail.


If there weren't enough customers to support the business model with the way he was approaching it, then there isn't enough business to sustain it. If one of his customers is interested in the platform enough that they want access to the code to run it, they should pay him for it - either to hire the talent, or to buy the business.

Some projects are created because people are passionate about them, and some are created so that people can keep the lights on.

Shared source is an awful model for startups - it results in increased legal wrangling to establish ownership and licensing, it creates entanglements that could prevent or constrain growth, and it explicitly says to the startup "I don't trust you to be here soon, so I want to own part of you."

The correct way for a business to eliminate a fear of a partner disappearing is to pay fair value and sign a contract so that the vendor they depend on has a reliable cash flow.

There's an entire industry called "source code escrow" for this problem. If someone is concerned that you'll go out of business, you can escrow your stuff, and they can continue to run it and modify it. You can probably create a proper license so they can use it internally however they want but not sell it/give it away.

There's a cost to open sourcing software. I like that the OP pointed that there was software that was sub-licensed and needed to be excised. Netscape took close to a year to open source their browser as Firefox using every significant company resource.

He should have always been (trying to be) aware of all the licenses he was using from the start. You can't just use any code you find on the net and staple it into your project.

I was well aware of the licenses. I was optimizing for delivering value to my customers, not for the best way to give everything away should I go out of business. The world of licensing gets considerably more complicated once you decide to distribute it. There are plenty of things I'm free to use in a service capacity because I'm not distributing them. The issue of linking or derived works or license compatibility doesn't come into play for many licenses if you're not actually distributing software.

And that says nothing of the commercial products I licensed that I knew I wouldn't be able to sublicense. But, the name of the game was expediency. I liked the theme on WrapBootstrap. I paid ~$20 for it and got up and running in a weekend. Recreating that would have been considerably more effort at significantly more cost. I made a trade-off, as businesses need to do. It's technical debt, one I'm not obligated to pay and don't see the long-term value being worth it.

There's a difference between knowing "I can use this" and "I can let you use this." Even if he was up to speed on his use of various bits of software, that doesn't mean he was fully aware of whether or not he could sub-license it. In fact, in one of the instances (the theme), he was distinctly aware that he could not sub-license it.

He obviously was aware of the licenses he was using, as he listed them in the post...

Why the down votes? This is a valid point, although coarsely stated.

most of the time it's extremely hard to just go open source when a startup dies. There's issues of ownership and also the amount of work needed to get a typical startup codebase clean, refactored and open source ready is difficult. It's kinda like having a garage sale and giving everything away - it's hard to give away or sell every single thing, but parts of it might be useful to the community.

AFIK, AngularJS was the result of improving and open-sourcing the code of a failed startup, after taking it to Google, adding a tone of features to the codebase and using it in internal projects before open sourcing it.

Got a source for that? That's a very different story from the one that Brad and Misko told at the ng-conf (https://www.youtube.com/watch?v=r1A1VR0ibIQ)

In wikipedia http://en.wikipedia.org/wiki/AngularJS is says "AngularJS was originally developed in 2009 by Miško Hevery and Adam Abrons [10] at Brat Tech LLC[11] as the software behind an online JSON storage service, that would have been priced by the megabyte, for easy-to-make applications for the enterprise. This venture was located at the web domain "GetAngular.com",[11] and had a few subscribers, before the two decided to abandon the business idea and release Angular as an open-source library"

I think here they mention it in the adventures in Angular podcast that Misko took it from a previous company which was a startup between him and another developer that did not went through -> http://devchat.tv/adventures-in-angular/001-aia-the-birth-of...

It might also have been here or one of the the Javascript Jabber Angular episodes (their search functionality seems to be down for the moment)

but it was just the bare bones idea, that got expanded a lot in Google.

If this is true, then still:

> after taking it to Google, adding a tone of features to the codebase and using it in internal projects before open sourcing it.

Are pretty unique circumstances, that don't really show that it's an easy thing to do usefully/succesfully, for projects that aren't taken into Google, have a ton of features added by paid Google engineers, and then are used by internal projects at google to work out further kinks and cow paths.

I actually had a lot of success with Open Sourcing. After a year of making virtually nothing out of selling Espruino as software (while being bombarded with sometimes abusive comments about the fact it wasn't Open), I decided to put it on KickStarter as Open Source hardware a year ago - and the result was very good. My second KickStarter is about to finish in 24 hours too.

It's a shame yours didn't work out - I think I was lucky I had something that could be crowdfunded more easily.

Having said that, none of the people that berated me for being Open Source have contributed anything back (others have been very helpful though). I've also had to cope with cheap clones, the possibility of competitors using my own software, and a huge support burden from users of other hardware.

Just to add: Overall open source has been great in my case. It's just that it's very easy for someone to make a comment on the internet - it doesn't mean they're particularly bothered about it or are prepared to do anything about it!

Went through a similar experience with a simple puzzle game that relied on a UDP p2p networking library I was working on. I lost 2 years battling NAT and the nondeterministic nature of networking before I had to throw in the towel. I lost a similar amount, perhaps $40,000 in the form of credit card debt. Took me forever to get out from under it and it destroyed my credit, so I haven't used a credit card since 2008, other than a $500 one for medical emergencies.

This is a rough business and I'm not sure if I would want to open source the library either. For one thing, we have better replacements now like ZeroMQ and Firebase. Also the idea of giving up on all that work (that I someday may be able to still use) leaves an awful taste in my mouth.

Fantastic write up! I have long wondered why failed companies and products just don't throw their code into github. Like google reader which bit me big time.

I knew I recognized you from somewhere! For those who don't know, nirvdrum's one of the primary contributors to rubber https://github.com/rubber/rubber (it's a pretty critical part of our current infrastructure)

In my book at least, you've already contributed a huge amount to open source and I wouldn't worry about needing to do more :)

Thanks. I do what I can. And thanks for your contributions to the project over the years :-)

I think this approach is both pragmatic and reasonable. You felt that open-sourcing the code has certain amount of value and the act of open-sourcing has a certain cost. If someone wanted that, they should have funded the crowdsourcing campaign.

It didn't work out because it seems everyone asking wanted it for free. That's their problem. You did everything right.

So what now? Did you get a day job?

Honestly, there shouldn't be any rush to do anything. You released some good tools, and that's fine.

I came to the realization that Mogotest didn't have a future, at least with me, over the summer. I've evaluated a lot of opportunities in that time. The hardest part being that I didn't really have a clue what I wanted to do. My strategy was to cast a wide net and see if anything excited me.

It took a while, but I'm happy to say I joined as a researcher at Oracle Labs working on their JRuby/Truffle implementation. I started this week and while it's early days yet, I feel relieved in a way I haven't in years.

Currently the only other downstream comment from this post starts with "Bummer to hear that".

So I want to say, congratulations on your new job. It sounds incredibly interesting. I hope you enjoy it, meet new people and learn new things.

Thanks! I don't think the other comment was meant to be negative. It was a bummer to shut it down. And it's one of those events you sorta relive every time you talk to someone. "Hey, how's the company doing?" Fortunately, I've gotten a lot of those out of the way by now :-)

So far, the new gig has been great. I was extremely reticent to join such a massive company, but it's the sort of work virtually no start-up would ever be able to justify spending resources on. The change of pace and the new experience should be worthwhile. And rather than working in a silo, I'm surrounded by some of the top people in their respective fields. It's ... different :-)

Bummer to hear that, especially as one of the mentors and funders of your Techstars Boston 2010 pool. I only wish that the folks in your pool communicated often and early to the mentors and funders of your Techstars cohort -- we most likely could have helped earlier.

Indeed, I think this is the biggest failure I see of startups, regardless of the quality. The seeming inability to reach out for help, guidance, and provide feedback and communicate with others outside their company... especially (and surprisingly) their investors and mentors.

Startups - communicate often and early with others.

I had reached out to a few people over the years. Without a doubt, I could have done better. If you'd like to email me, I'd be happy to discuss that aspect more. kevin@<domain_in_article>.

If you use the term "Open Source" as a verb, you're probably Doing It Wrong.

If you develop a piece of software in the open, preferably with a community around it, then you won't be able to get away with it being impossible to deploy or containing inappropriately-licensed subcomponents. If you don't, you'll likely run into all of the problems the author mentions, and more, when you go to 'Open Source' it. Not only that, but there'll be nobody to maintain the resulting project, and it's likely that nobody will actually benefit.

Open Source is great (FWIW I work exclusively on Open Source at the moment), but it isn't like a condiment you can spread on after the fact. It needs to be baked in to your strategy.

There needs to exist a place to simply dump code with no obligations.

One of his minor arguments against open sourcing was having to maintain the code base, and i've heard this from others too. With a dumping ground there would be no such obligation.

Well it can always be "accidentally" leaked and blame placed on chinease hackers or something.

There is.

The null device.

Why? Dump it in github with the right license, and anyone can fork it.

Unfortunately, it wouldn't be that easy—and I assume parent commenter is talking about a "code dump" that is not within legal limits. Original author wants to do things by the book:

    Setting all that aside, open sourcing the codebase is not some trivial process.
    And I'm not talking wanting to clean up stuff I might be embarrassed by. Here's
    a non-comprehensive list of issues that need to be addressed:

    - The web site design was a theme bought on WrapBootstrap that I don't have the
      rights to sublicense.
    - The rich UI widgets come from the commercial version of ExtJS. That needs to be
      excised or the whole project needs to be GPLv3.

One reason is because you'll invariably be criticized for not merging some pull request.

Create an account with a throwaway address, put the project up, then walk away.

I have a few projects on Github that aren't under my name because I don't want to be pestered about them, ever. And I never have.

I would offer your clients the chance to purchase a software license and send along a list of DevOps contractors you would recommend. You might make some money, your clients will appreciate the offer, and your DevOps friends make gain a client. Win, win, win.

AccelerEyes recently did the same with their product arrayfire(github.com/arrayfire), though I cannot tell if they are successful or not.

This is a great post, thanks for sharing!

One word: music

Is it possible that you failed at commercialization, and now you can't bear the thought that open sourcing your creation might lead to zero stars and forks on Github?

Is it possible that the "bombardment of questions" you claim was nothing more than a handful, maybe in the half-dozen or so range, of people who wanted to offer you emotional support because that is free for them to do while paying you for a product they did not want is not?

We don't all get immediate success. What matters is perseverance and determination - never giving up. Not making excuses for why the world failed you. You'll never get anywhere that way.

To be clear, since you made another snarky comment that you deleted, I did have paying customers and it was cash-flow positive. But, I couldn't hire a team on current revenues. And given I had bootstrapped a slow-and-steady business, I didn't have that awesome hockey-stick most people lie about, making raising substantially harder. It wasn't some 6 month operation that failed so I pivoted and I didn't piss through investor money. By any objective measure, I was quite dedicated to it -- to the point that I suffer from intense hand pain due to the amount of typing I do daily.

At the end of the day, I didn't want to waste away on a slow-but-steady company. I wanted to lighten my load so I didn't need another hand surgery. I wanted to spend more time with 1.5 year old child. And I wanted to work with smart people learning new stuff.

But, by all means, take a single sentence intentionally devoid of context and continue to extrapolate.

don't let armchair quarterback assholes get to you. the beauty of entrepreneurship is it was your decision to start, and your decision to stop. you don't need to justify it to anyone but yourself.

the experience of having founded and run a company for 5 years is a skill that will be valuable. put it on your resume and sell it as experience few others have, because that's true.

Thanks. Without a doubt, one of my biggest weaknesses is taking troll bait.

The number of leading and insulting questions here lead me to believe you simply didn't read the post. Go back and take the 15 minutes to actually read it. You'll find most of it answered. And feel free to spend a modicum of effort looking me up to determine to what degree I care about stars on GitHub.

That took some restraint. You are a nice human being for not responding to that comment like it deserved.

I wish I could comment the way I would respond, but I am at work now...Good luck to you.

It's an acquired skill :-)

Open source… the dumpster of the startup world.

The quality of open source from startups vary significantly, but so does open source in general.

The quality of software varies significantly in general, we just get to see the open source.

This is a very disrespectful comment.

Well, the parts I could integrate with upstream projects, such as Selenium, I already had. Much of the remaining stuff is useful in its domain and small enough in scope where on-going development really shouldn't be necessary. And the parts I thought would essentially be "dumped", I opted not to open source for precisely that reason.

While this comment is poorly expressed, I would guess that the majority of Open Source projects atrophy very quickly.

Would be interesting to see how many Github projects have regular monthly updates after 12 months, 24 months, etc.

I don't know how successful I am, but I strive to ensure that my code (mostly common lisp libraries) doesn't need regular updates.

wow, take a good hard look at what would be the software world without OSS

I don't want to go into a rant or anything but really your comment is wrong at so many level

dumpster ? as if open source could only result from some failed attempt

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact