Establishing a standard as to how an organization uses proprietary and open source code is at best difficult for most organizations. But iXsystems has essentially bet its future on the continued use of open source code in its product line. This makes it an imperative that it get this decision right to continue fostering support for its product in the open source community. This fifth entry in my interview series with iXsystems‘ CTO Jordan Hubbard discusses his thoughts on iXsystems’ responsibility toward the open source community for their contributions and how it draws the line between proprietary and open source code.
Ben: Do you have a responsibility to return your code to the open source community? Where do you see the line between proprietary and open source?
Jordan: That is a great question and I think a lot of companies struggle with it. Eventually this always comes down to personal taste and where you combine the moral and the technical arguments.
It is a very tricky one to make, and I try not to moralize about this because there’s been a lot of invective on this topic. Returning the code makes the most sense, from primarily a technical perspective, and we can leave the morals out of it.
I have a strong tropism towards supporting that community and the warm fuzzy part of it. But even if you totally set that aside, I have almost never seen a case in which it did not make more sense to open source something, and put the commercial value-add into the support of crafting custom solutions for people, and make the source code not the battleground.
It always makes more sense, in 99.9 percent of the cases, to have as many eyeballs on that code as possible, to have this feeling of inclusion that you get from saying, “We are working shoulder to shoulder with you folks on a variety of technical challenges.”
There are always more technical challenges than you can ever possibly accomplish, for any size company. I don’t care if you’re a Fortune 500 with 20,000 employees who are all full-time engineers; there will always be more to do than you can possibly do.
Being able to actually work with those folks without having these firewalls in place, and being able to commit your code into open repositories, is important. I’ve seen a lot of companies get that wrong where they say, “We will open source it but only in intervals. We will throw it over the wall periodically.” And that should be good enough, right?
The fact is that is not good enough because what people external to the company really want is to work with you. They do not really actually want the code. That is the biggest irony of open source. It is really not about the code. It is about the collaboration.
I do not want to sound too touchy feely, but it really is about the people and the relationships and being able to talk freely, discuss what is speculative, what science experiments are currently ongoing, what is really going to be in the next version of the product.
That is why working on something like FreeNAS is so rewarding, because we do all of that out in the open. All of the source code is freely available. But more importantly, the mailing lists on which we discuss these things, the IRC channels in which new features are discussed, which nuances of the product are discussed, the forums, bug reporting systems — all of that is completely open.
Our own people use it. It is not double entry bookkeeping where there is the stuff that’ is discussed inside and furtively and without any oversight or collaborative opportunities, and the stuff that goes on externally. They literally work in the open. That is what multi-community and mindshare and people who are actually enthusiastic about things means.
This is truly an open source project. You guys are doing it all right here. We can send you requests for patches, we can discuss stuff that is clearly half-baked and sitting in a branch somewhere. That is fine because it is on a branch. It is not going to be in the main product for a while, but we can check that out, we can see what you are doing, we can offer suggestions, we can get involved. That is what open source really means: developers working shoulder to shoulder.