37signals has contributed massively to the open source community, but in what ways has the open sourcing helped and hindered 37signals and would you advocate that more companies contributed or open sourced their software, if so what advice would you give them?
Open source provides an incredible amount of technical leverage for small companies. No matter who productive your rock-star programmers are and no matter how much judo you apply to your problems, solid infrastructure takes a long time and benefits immensely from broad involvement. It really does take a village to raise great infrastructure.
The Ruby on Rails framework of today is a lot more productive than the one I was using before it was open sourced. I use features every day created by others, enjoy polish done by others, evade bugs caught by others. All work I would otherwise have to do myself. So I simply get more done for less effort than it would otherwise have taken. The same holds true for the other open source projects that have been cultivated in 37signals, like Prototype and Capistrano.
Getting more done for less is the obvious benefit of open sourcing your work. But there are a lot of other positives as well. For one, it feels good to give back. 37signals as a company is possible in part only because of how open source lowered the barriers of entry for small businesses.
Everything from the operating system to the database to the web server to the proxy engine to everything in between on our servers is open source. If we’d have to go back to a time where all that carried big upfront licensing costs, we might never have gotten the product direction for the company off the ground. Helping further that ecosystem is very rewarding.
It also gives you a public arena to learn from other great programmers and to better yourself. Most of the people using Rails are working on proprietary applications, so we don’t get to share or discuss the specifics of the projects all that often. But we do get to share and discuss the specifics of the infrastructure. That’s the best continued training course you could ever run.
Through that public arena you get access to scout for the best minds and hire people of exceptional talent. We have found all our current programmers through the Rails scene and had access to evaluate much of their work as a result of open source. I also wrote about a few years back.
Sprinkle on top that if you happen to run a successful open-source project, you’ll probably attract a fair amount of press attention and customer goodwill. 37signals has definitely benefitted from both of those categories off the many open source projects that we run.
So you get all these positives, but what about the negatives? I really don’t see any. A big fear that a lot of people have is that they’ll somehow be giving away their secret sauce. Unless your actual product is what you’re open sourcing, it really doesn’t matter (and there are even plenty of examples of that working well). It’s unlikely that the piece of code that’s only seen internal development is such a silver bullet that you’re going to outshine your competition by its use alone.
All that to say that I think open sourcing infrastructure software is a great idea. I’d heartily recommend it to anyone sitting on a piece of code that more people could benefit from and that they’d like to see developed further.