3 ms·
Having the possibility of open sourcing your project in mind when writing it, is a bit like having unit tests. It forces you to think about how easy it would be
by maaaats 12y ago
Having the possibility of open sourcing your project in mind when writing it, is a bit like having unit tests. It forces you to think about how easy it would be for others to reuse or deploy.
An example from my organization: Two big projects, one OSed and one private. The private one has configuration values hard-coded (passwords, ldap url's etc.), a setup that is impossible to run ("it works on my machine") and the deployment is a secret that no one really knows (not prepared for someone being hit by a bus).
The OSed project, while not perfect, has separated these concerns and always had re-usability an easy-setup in mind. We can't just push some code that works, the thought of it being public makes us put more pride in what we write, so the QA is good. Of course, there is some overhead in all this, but it wins in the long-term.
- akerl_ 12y agoThis may certainly be correlation, but causation is a bit tougher. It's also possible, for instance, that the devs who write cleaner code learned to do so from people who also taught them to open source.
- bsimpson 12y agoMaking it modular also makes it repeatable, which is a huge internal benefit. eBay has been pretty liberal in letting me open source the things I've asked to. The only requirements that I know of are that it: 1) Isn't sufficiently complex to be considered proprietary, 2) Doesn't presume on eBay-internal infrastructure, and 3) Has a name that doesn't infringe any public trademarks. Whenever I start working on a new feature, I design a generic library and then test it by writing a proprietary implementation. There are many benefits to working this way. Most importantly, I can share an exact replica of my environment modulo any project-specific code, which makes reporting dependency bugs or soliciting architectural feedback trivial when it would usually be nearly impossible. It also means I'll always have access to the tools I create here, regardless of what happens to my projects, my team, or my relationship with eBay. Even if no one else ever found the stuff I've released useful, it's been beneficial for me to be able to share it.
- angersock 12y agoDoes eBay own all of your code at any time, or just while working on the clock there?
- bsimpson 12y agoFor salaried employees in California, your employer can claim ownership of any IP you create that's related to one of their current or reasonably anticipated products (e.g. _anything_ if you work for a tech borg). There's an exception for things you can prove you were working on before they hired you. The law is actually designed to product employees (so your ad network employer can't sue you if you work on fitness apps in your spare time), but modern large companies have their fingers in every pie.
- eropple 12y agoThe good news, such as it is, is that most employers I've run into will be understanding and will work with you if you ask to redline problematic clauses before you start. (If they won't, that's a sign not to work there.)
- angersock 12y agoI've found our company, once concerns we're articulated, to be pretty open to addressing these sorts of concerns.