Open Source Contributions Are Part of My Professional Development
“Boy did I spend a bunch of time organizing all my issues today” — he said while trying not to sound like a whiner — “You know… I found this neat tool yesterday that easily integrates with our repository management software. It adds project management capabilities that would save us time. Might be interesting to take a look?” — He ended his sentence with a question, something that he absolutely hates doing, a sticking point he’s had since spending a lot of time with a coworker that incessantly did that. He definitely did not want to sound insecure while talking to his manager.
The manager looks up, away from the computer screen in which he was diligently reassigning issues to their newly requested releases, and instead answers with the dreaded: “Is that tool freeware? Did you download it?”. The programmer, a lonely, isolated peon that was simply trying to make his own life easier, was definitely not expecting that response, and so he answered with the unfiltered truth (those of you that often communicate with management know what I’m talking about).
“No, it’s not freeware, it’s not a download. It’s a service, though they do have an enterprise version they sell for big teams. I signed up to test it as a demo last weekend in one of my GitHub repos” — the pawn replied while trying to dig his way out of the ditch, fully knowing that the ground just turned into quicksand and wiggling around will just make it worse.
“Do you have permission to have an open source repo?” — the manager responded.
“No I’m talking about my own stuff, the things I work on at home, not the Company’s software, I know I’m not supposed to put the Company’s code on the internet without permission” — replied the coder as all his recent tinkering efforts start flashing before his eyes: the image processing, the docker containers, the python work, can he even publish the awesome improvements he’s been working on every night for the past several weeks?
“I do mean your code. You’re supposed to ask for permission from the legal department before contributing any open source.”
“Yeah, but none of it relates to the Company’s work and it’s not done on the company resources or schedule. I read my intellectual property contract and it did not state that you own all of any work I ever do. Only if it relates to the Company’s business”
“Well you need a new lawyer to look at that” — replied the manager with a chuckle — “No matter what you do, you cannot contribute to an existing open source project, and you cannot create your own project, without asking for permission from legal”.
Should we have the right to contribute to open source?
I’m a computer engineer, and I’ve been working on both software and hardware professionally since I received my degree in 2002, but before I started college, I already had experience designing and developing business apps, thanks to my dad who had his own software company. While growing up working with him, I had first hand experience of what intellectual property really meant, as he lost his business when a customer essentially stole all his code.
As I progressed through my career, the folks at my first company really encouraged (and rewarded) the submission of invention disclosures, so I devoted some time to that and was able to kick around several dozen submissions that have yielded quite a few issued patents.
The years passed and I kept working for corporations that generate export controlled technology or products with lots of intellectual property. I essentially worked myself into the black hole of technology, where one invents (and sometimes reinvents) some pretty neat stuff, but is unable to tell anyone about it.
When it came time to move to other pastures, interviews with companies working on the technology I cared about all went down the route of: What have you contributed to the open source community? Do you have any sample code on a public repo we can look at? Did you ever use or modify open source software at your previous jobs? What does your open source “portfolio” look like?
Portfolio, such an interesting word in this context. When I was younger and writing software with my dad, I also happened to do graphics design in various areas and page layout for a few local magazines and newsletters. I knew what a portfolio meant in that context:
An edited collection of their [an artist’s] best artwork intended to showcase an artist’s style or method of work. A portfolio is used by artists to show employers their versatility by showing different samples of current work. Typically, the work reflects an artist’s best work or a depth in one specific area of work. — Wikipedia.
This is when it dawned on me how deep the implications of open source really go. It’s no longer enough to say that I know kung-fu, I now have to prove that my kung-fu is strong enough by showing my work, not just answering some random questions that prove basic competence.
I have no objection to any of this, in fact, as someone that’s frequently had to evaluate another person’s “kung-fu”, I welcome it. So I made it my mission to find a way to develop my “street cred”, such that not only would I grow as a professional, but that I would also be able to help other coding arts achieve their goals, and maybe teach some grasshoppers some of my skills. Finally being able to call myself a productive member of a coding community.
Back to the beginning
I now find myself in a situation where, while totally understanding why someone wants to control the delivery or deployment of code related to a business, I have no idea why said Company would want to restrict and prevent a person from learning and growing as a professional.
Being part of an open source community helps everyone learn coding standards, version control, communication skills, negotiation skills, debugging, and the list goes on and on. I consider it part of my professional development.
If instead I went to school to study comparative literature, do I have to ask for permission from the Company’s lawyers before submitting an essay comparing Shakespeare to Keats?
Most will agree that contributing to open source is a good programmer’s duty. But it’s about time we started asking ourselves whether it‘s our right!