To Open Source or Not To Open Source? That Is the Question
At some point in their engineering career, nearly everyone builds an internal tool and thinks that it would make a good open source project, but quickly gives up on the idea due to lack of knowledge on how to do so and fear of its overhead. Having experienced this myself, I decided it was time to pave the way in our organization and enhance our engineering culture by creating our first real open source project from a highly useful tool we created that others can benefit from.
As this was the first time we (and I specifically) created an open source project, I had no prior experience or clear guidance on how to do so. But who wants to stay in their comfort zone all the time, right? I must admit that the effort of making this happen was not that big of a deal, the main things we had to do were:
- Extract the code to a different public repo, post it to PyPI and use it as an external dependency (requirement) within our code base (this is a Python open source)
- Create a dedicated CI flow (in our case CircleCI), that will also publish new versions to PyPI
- Write a good README explaining what this framework is about, its API and how to use it (with clear runnable examples)
- Add a standard legal license and contributor agreement with the help of our legal (as it was published under Optibus)
- Move to use GitHub Issues instead of our internal Jira projects
That part was relatively straightforward (it took me only a couple of days), however, getting external traction for your open source is a different story and it is something that I regret not putting enough emphasis on. In order to get traction, clearly you need to have created a framework that addresses a real common pain that many can relate to and benefit from. But, no less important, you will need to have a “marketing” strategy.
A strong marketing strategy requires a solid online presence to spread the word, or promoting it through people that have such a presence. You should try to use your network as best as you can to make it visible to others. You should write posts in relevant forums, blogs, promote it through podcast interviews, etc. You will probably need to put as much effort, if not more, into this part as you have into converting your project into an open source.
So don’t be afraid to convert your work into an open source! But if you want traction, know that you need to work in order to make it happen.
And if you ever need to record and replay operations from your production environments, be sure to check out the Playback framework (always be promoting).