Nuts & Bolts of Launching an Open Source Project
Insights from the Capital One Open Source Office
What an exciting time it is to contribute to the open source community! The software industry has embraced the open source philosophy and financial institutions like Capital One have gone open source first — encouraging their engineers to use, contribute to, and even launch, open source projects.
Here at Capital One, the Open Source Office is responsible for driving our Open Source strategy. We partner with our Legal & Security teams to manage the risks of using and contributing to OSS projects, as well as facilitating the launch of OSS projects under the Capital One GitHub.
In my work for the Open Source Office at Capital One, I have supported the launch of over 20+ open source projects. Launching an open source project requires a lot of investment — both in terms of time and effort — and launching it under the Capital One name comes with a huge responsibility. I would like to share with you some insights into the items that we take into consideration when we launch OSS projects, and how they can apply to your project as well.
Open Source and Competitive Analysis — Do I Really Need This?
Competitive analysis for an OSS project helps the project team get an understanding of the needs of the consumer, along with the consumer groups most interested in what you’re building. Competitive analysis can also help in other aspects such as:
- Name selection
- Selecting the technology stack for the project
- Understanding the “pain points” so you can focus on them in your project
It also provides insights into the community building efforts needed to build and maintain a robust community for your specific project. And as we know, a healthy community is the foundation of a successful OSS project!
What’s in a Name?
Naming an OSS project can be an equally simple and complex task. You can choose a creative name using your imagination & original ideas, or a descriptive name which describes the good or service that the project is providing. Creative names like giraffez or Hygieia can be cool, catchy, and fun; but ensuring that the name is not violating any trademarks and that it can sustain the test of time can be daunting. Descriptive names can be bland and boring but they don’t have to be. They are also often easily searchable because they tell what the project provides or does. This is definitely not something to underestimate since it’s important to choose a name that is easy for your users to both remember and find.
TIP — Keeping the name of the OSS project de-coupled from the project code might be preferable just in case you need to change the name before or after the launch of the project.
Why Bother With License and Copyright?
Good OSS projects should state the license terms for using, modifying, and distributing the original as well as the modified code. So, it is important to pick and document the license terms used in your OSS project.
The Open Source Initiative is a non-profit organization with global scope which was formed to educate about, and advocate for, the benefits of OSS. They maintain a list of license terms that they have approved and categorized. Make sure to research the different types of licenses and copyrights to find the right one for your project and community goals.
Certain licenses allow your code to be used in other commercial products, You might want to choose your license depending on your penchant to allow such an usage. Also, if you are working for an organization that requires you to get approvals before launching an open source project, then make sure to get those approvals.
Why Do I Need to Think about the Pre-Launch Efforts?
You have a good starting product, a name, the right license term — what next? All you have to do next is just put it on GitHub, right? Not right…
From the time that you first start developing the code, it is never too early to think of when, how, and where you will be launching your OSS project. Here are some times and places to consider:
- At a conference
- When a new version of a related technology is being released
- At a hackathon
- In a blog
- In a book or white paper
- By an expert in the field.
What is important is to not wait until the code is ready to think about the launching efforts. Try to give a preview of the product in various forums, websites, blogs etc before the official launch. This can help you get supporters that may be keenly interested in helping you co-develop the project before a public launch.
Marketing is as important to an OSS project as it is to a commercial product — it is just looks a little different! You don’t have to spend a lot of money to do it, but be creative and open about developing and reaching into a wide network for publicizing the project. Hydrograph, Capital One’s third OSS project, ran a preview at an internal conference in fall 2016 and was publicly launched at SXSW in March 2017. The preview helped garner support from the community before the launch, which helped with the development and early adoption of the project.
Building The Community
If you feel exhausted reading the list of things involved in launching an OSS project, then you will be glad to hear this — YOU ARE NOT ALONE! All the things that we’ve talked about point at one main objective. Nope, it is not to build a great product (although that is important). It is to build a great community around your project which will translate to delivering a great product together. And what does it take to build a great community from Day #1? Market research to ensure you’re developing the right project, a catchy name that people can easily find and remember, a good license that your community can use, and a pre-launch plan to build interest and reach contributors and users. Keep these in mind as you start to build your OSS project and you’ll be in a great place to continue building your project and community post-launch!
DISCLOSURE STATEMENT: © 2019 Capital One. Opinions are those of the individual author. Unless noted otherwise in this post, Capital One is not affiliated with, nor endorsed by, any of the companies mentioned. All trademarks and other intellectual property used or displayed are property of their respective owners.