Open-sourcing responsibly
I’ve worked at a couple companies now that have open sourced large amounts of software. Recently, a few thoughts have come to mind. But they all center around a single notion:
Your project should almost never begin as open source
Reasons why:
- As explained by The Cathedral and the Bazaar*, you can’t genesis something in a large community. Large communities are great for iterating on existing projects, but genesis must occur within a small group (maybe even a single person).
- You may not actually be ready to maintain an open source project. There’s nothing more frustrating than a popular repo who’s author is AWOL and not accepting PRs. Only when your sure you’re ready to support posterity should you then open source your project.
- If this project is being done for your employer, do you really want to deal with the headache of having a separate, open-source repo? This is a real cost. If you keep it closed, there’s a lot of nice assumptions you can keep and reduce the amount of code you write/maintain. If you open-source it, you’ll almost certainly have to maintain some sort of shim layer that bridges the open-source code with your internal systems.
That said, if you’ve already got something that appears to be working well, you’re prepared to support it, and it’s been cleanly abstracted away from the rest of any related code bases, then go for it!
(And don’t forget to choose the right license!)
*To say that Eric S. Raymond is a controversial figure would be an understatement. I disagree with pretty much all of his political views. That said, I still found The Cathedral and the Bazaar to be insightful.