Sharing with the Community vs. Keeping a Job
Microsoft has done a whole lot to open source their tools to the IT professional community and this is awesome. Some of the stuff that I’m using pretty regularly includes DSC modules that are available on GitHub for basically nothing. I can actually modify the code and put in pull requests to get my changes put into the actual main product.
As a Windows guy, this is totally new to me. When I find something that I don’t like, I can now change it to the way I want it and, if I think others would use it, I can put in a pull request (PR) to get it merged into the real deal. On the other hand, if I do something that’s just for my own use, I can do it without worrying about breaking the real stuff. It’s pretty neat and very useful. I’ve been able to take some things. like the Windows Firewall DSC module, and modify it to give me more power over the rules when I use it. I’ve even made my own DSC module for configuring Windows Update.
The question really now is, what can I share with the community and what do I need to keep to myself? Obviously, if there is secret stuff, like passwords or private info, in the scripts, I need to keep that to myself. But what if absolutely nothing in the code is specific to my employer?
I work for Trek. I don’t do this kind of work on my own time, and even if I did, I still feel like it’s for Trek. Every part of improving myself technically or improving my status in the community affects my employment, at least at a high level. If I was to become the biggest contributor to the DSC modules “on my own time”, would that not benefit Trek? What if I did something “on my own” and then put it in place at Trek? Would that suddenly make the work “Trek’s time”? If I was to build an awesome personal Git repository full of my own work, and never put in the PRs to merge them into the main code, would that be mine? What if I was to leave Trek? Would I be able to take all that work with me, thereby benefiting my next employer?
These questions keep me from posting really anything into my own GitHub account or doing PRs for what I do. I just don’t see where risking my employment or some IP infringement problems is worth it. I know there are some employers out there who totally encourage giving to the community. That makes perfect sense, particularly if you’re a technology company running open source stuff all the time or a consulting company making money in open source development and support.
But I work for a bike company. We have some high-tech stuff, but we aren’t a technology company. If I’m to ever leave Trek, and my next employer wants me to do similar work to what I’ve already done, then that employer needs to pay for the time it would take me to regenerate it. If that company is open to having me put everything I work on out in GitHub, I’ll jump on it to do it. From what I can tell now, though, I can bring my skills and network along with me, but not my old work.