The best way to balance open source developing and growing your own business is to combine the two, Hansson suggests.
Question: How do you balance developing open source software and the need to grow your own business?
David Hansson: So, the way I divide my time between open source development and growing my own business is to combine those two things. So when I work on open source development, it's usually for myself. I work on features that I need for my business. I work on buck fixes that I need for my business. And I think the wonderful thing about open source is that if we all do that, if we all just work on our own problems and our own design features and then share them with each other, we'll get something amazing. That's exactly what Rails is. In fact, I think things start to go wrong once that's no longer true. Once you start working on features for other people and designing for other people and imagining what they might need and imagining how they might use it, that's hard. It's really hard to design for other people like that. It's so much easier to design for yourself. And when you design for yourself, you know exactly when it's right. You know when the grip is just perfect. You know when the sharpness of the blade is just right, not too sharp, not too dull, just there. You can't get to that point of excellence by approximation. It's very, very hard to just try to envision what the good thing is if you can't feel it on your own body.
So, for me, there's no conflict. I work on open source stuff when I need it. And when I need it, it makes perfect business sense to do it and it's sort of a byproduct of that, that I didn't get to share it. I'm going to be no poorer because I shared this open source software that I developed anyway. I needed it already. So if I give it away after it's already done, what am I losing? Exactly nothing. I'm gaining a ton of stuff though. I'm gaining that I'm putting this into a wonderful, beautiful commons and everybody else is doing the same thing and all the actors walk away from that richer.
Question: Where should a developer draw the line between what should be open source and what should be proprietary?
David Hansson: I'm no open source zealot. I don't need everything in the world to be open source. I don't need all software products to be open source, in fact, I prefer that there are not. I prefer to pay for things. What I do find is that there's a lot of stuff, a lot of infrastructure code in particular, about our applications, that are not part of making our applications special. The Basecamp, the Highrise, the Campfire, the Backpack, all of the applications we have, they could built on something else than Ruby on Rails, to be honest. That means that Ruby on Rails is probably not the secret sauce. It is not what defines these applications, thus if I give it away, I'm not giving something up.
Now, if we open sourced Basecamp and said, hey, "You can just download it, run it on your machine, contribute something back to us," what are we selling? If you're giving it away for free, they're not also going to pay for it, at least not very many are.
Recorded on July 22, 2010
Interviewed by Peter Hopkins