Some Thoughts on Open Source

These were some comments I left on an other blog where a discussion was taking place. I thought I would post it here as well to help me save these thoughts.

I am very much the outsider in the the open source discussion. I have spent the better part of my 35+ year career working for companies that make and sell proprietary software. While I have worked on projects that more or less follow the open source model of development these projects have been pretty small and not in the LINUX world at all.

So how do I judge the welcoming ways of the open source world? By the way the people who self identify with it interact with me. Those experiences have been overwhelmingly negative. It is as if they see me as irredeemably tainted and the enemy of all that is good and right in software. This is of course not a good way to win me over. 🙂

People in this thread see open source as more welcoming of people than proprietary software projects. I had one big dream after college and that was to one day be a developer on the RSTS/E (a proprietary) operating system. I did get the chance and it wasn’t all that hard for me. Dang, I am batting 1 for 1. Home run the first time. So my personal experience has been that people are much more welcoming in proprietary software. Send in a resume, get an interview, people offer to pay you money to write code. How is that not welcoming?

What is the model for open source? It appears (remember I am on the outside looking in) that one can get the code and start working but that it often takes quite a long time and lots of hard work before people are willing to take and use your code. And then they still take it for free. You get a pat on the head and people use your code and that is about it. This is encouraging to people who need to make a living? Really?

It seems as though the process to work on open source as a company employee is pretty much the same as for working on proprietary software though. In any job having a portfolio of work to show people is an edge – open or proprietary. And frankly my observation is that makers of proprietary software are way a head in realizing the importance of a diverse population of contributors. They are well out in front trying to recruit women, minorities and all sorts of different people into the development process. Diversity is a core value where I work. Is it in open source? I don’t see it.

2 Responses to “Some Thoughts on Open Source”

  1. Matt says:

    I’ve actually come to love the open source world even more at work… A handful of comments.

    “So how do I judge the welcoming ways of the open source world? By the way the people who self identify with it interact with me. Those experiences have been overwhelmingly negative. It is as if they see me as irredeemably tainted and the enemy of all that is good and right in software.”

    We have a lot of jerks on our side. I’ve seen Windows users post online asking for help because they have a virus, and some Linux fanatic comes along and recommends that they try installing Slackware to fix their problem, or just says, “I don’t have that problem because I run Linux.” Even as a Linux user and fan, I want to smack these people as badly as you do. On occasion I’ve been known to reply criticizing these people, and pointing out that, I too, am a Linux user, but that they’re making us look like arrogant jerks.

    “You get a pat on the head and people use your code and that is about it. This is encouraging to people who need to make a living? Really?”

    I think you’re viewing open source software differently from many people who contribute to open source software. If you work on open source software intending to make a living, you’re most likely out of your mind. Very few people make money from giving their software away for free, for obvious reasons. (Some companies do it, but their real product is service. We pay big bucks for a free database, but what we’re really paying for is 24/7 support.)

    I had a kind of fundamental shift while talking to a coworker. The MVC framework we use is open source, as are the plugins and extensions we use. Sometimes we’ll find ourselves doing something weird, or using a unique combination of plugins that don’t play well together. If we were using proprietary software, we’d be at a dead end. If the CMS we’re using doesn’t work with our caching layer, we’re out of luck. We can’t use it. We could ask the vendor to fix it, but odds are good that it’d be ignored, or that it’d be fixed in 8 months. With open source, we can just roll up our sleeves and fix it ourselves.

    Solely caring about ourselves, we evaluate whether it’s cheaper to fix the problem in someone else’s code or to find another product to use. Usually, it’s easier to tweak the open source code than it is to rewrite it from scratch ourselves or to go by a proprietary solution. So we have developed a lot of patches — sometimes obscure, sometimes incredibly valuable.

    We usually release our changes back to the community. It’s got nothing to do with being nice or karma or wanting to subtly promote ourselves. It’s actually being selfish. If we kept the patches to someone else’s code, we’d have to reapply the patches every time they released an update, and we’d face big headaches if they ever refactored code. So we contribute the code back to the community so that we don’t have to maintain it.

    Our job descriptions aren’t to write open source software, and I’d expect to be swiftly fired if I sat at my desk writing code just for the community’s benefit. But sometimes, fixing open source code and releasing it to the community is actually in the company’s best interest.

    Another advantage is just transparency. Not so much in a “closed source is evil and probably has sneaky code” sense, but from a documentation perspective. I was trying to use something with somewhat poor documentation the other day, and was tearing out my hair, because the documentation wasn’t helpful, and the keywords I would use to search would be “only” and “include,” which were guaranteed to get me irrelevant results. So I generated a stack trace, found where the method I was referencing was defined, and looked at the options it accepted. And presto, documented nowhere at all is exactly what I needed. True, with proprietary software I could have contacted support, but this wasn’t something we’d have paid much money for, so it’s not as if support would have rushed down to the developers to ask them to revise their crappy documentation.

    It appears (remember I am on the outside looking in) that one can get the code and start working but that it often takes quite a long time and lots of hard work before people are willing to take and use your code. And then they still take it for free.

    As I somewhat vaguely alluded to earlier, this assumes that one is contributing code for their ego’s sake. You’re right, though — the chances of a new project taking off are pretty slim. (Although you could say the same thing about proprietary companies: the chances of their business taking off are slim.) But some people don’t really care. You write something for your own amusement, or to fill a niche that was unfilled. So you post it online for others to use.

    Maybe you’re Linus Torvalds, and your pet project takes off like a rocket. But it probably won’t. Maybe not a single soul will ever use your code. But that’s okay, because you wrote it for yourself. Maybe one person will use your code, and that’s cool, because someone else will appreciate the work you did. Most likely, a handful of people might tool with it, and maybe one or two will help move your project along.

    In any job having a portfolio of work to show people is an edge – open or proprietary.

    I once interviewed a candidate who was the author of a couple things we’ve used in the past. That was a big plus for him — rather than a line on his resume referencing some proprietary project that none of us had heard of, we were able to say, “Hey, we read your code, and we like the way you work.”

    And frankly my observation is that makers of proprietary software are way a head in realizing the importance of a diverse population of contributors. They are well out in front trying to recruit women, minorities and all sorts of different people into the development process. Diversity is a core value where I work. Is it in open source? I don’t see it.

    I’m not sure this is a sensible comparison. Open source projects rarely go out and try to bring new people in. Passionate people come in voluntarily. If you look at the contributors to a large project, there’s certainly a lot of diversity. You probably have every continent (well, maybe excluding Antarctica) represented. I’m sure it’s mostly men, but that’s my experience of the field as a whole — I’m yet to so much as see a resume for a female developer. I know they’re out there and every bit as qualified as the men, but there aren’t many of them.

  2. Mr T says:

    The research I have seen indicates that the percentage of women in open source is about an order of magnatude less than that of women in propritory software development. Open source does not recruit and clearly most such teams don’t think they have to. In my opinion (shared by some others) the shortage of women in open source is a big problem.

Leave a Reply