Open source projects are like startup businesses. They start as an idea, audiences need to be convinced about their importance and they require lots of resource investments to grow, as well as determination by their founders. Open source projects are also very advantageous to the technology world - they create useful tools, save time and money, encourage collaboration and grow talent.
If you're looking to start your open source project, are in the middle of yours or just interested in this world, this blog post is for you. I will elaborate more about the issues discussed here during my talk at Jenkins World 2017. Details here.
Here are some tips for making your open source project succeed.
1. Focus on Your Audience, Not Your Code
Step away from your source code and focus on marketing. This might sound counter-intuitive, but the logic behind it is that you already have the code because you already solved the problem. Now, you should distribute your project and spread the word.
One important way to do that is documenting; creating content in forms of blog posts and answering questions on forums like Stack Overflow. This will give people information that will encourage them to use your project. I also recommend you invest project's UX , because there's a higher chance that users will recommend a project they had a good experience with. Finally, create support channels to help users, but also use the questions as feedback that will help you grow your project.
The size of your audience will also be affected by your social behavior. Note how you answer people; if you are patient when others with less experience ask a question that was already asked thousands of times and consider how you treat your contributors when they offer something that contradicts your views. If you think the project is 100% yours and act like a dictator, instead of getting excited about suggestions; if you call people stupid if they are misusing your software or if you treat people negatively, your project will get killed really fast. Think like a startup: would you act like that to your customers?
2. Once Grown, Change Tactics
After establishing the infrastructure for distributing your project, it's time to grow it. Start by attracting contributors. There are many types of contributors: code writers, QA testers, content creators, etc. At BlazeMeter, for example, we put a huge emphasis on writing blog posts about open source load testing tools like Apache JMeter. You need all of these contributors, so value them and invest in them. Be attentive to them, stimulate them and be friendly to them. Remember they aren't passively consuming your project - they are contributing to it and amplifying it. Contributors are like a startup's partners.
This is also the time to move your project to a more solid infrastructure, like from GitHub to AWS, to appear more grown-up. Finally, constantly listen to possible second-breath ideas from blog posts and feedback. Otherwise, you will hit stagnation as your project will stay the same while the world evolves.
3. Know When to Let Go
While the project is yours, you can't be a dictator or stay the king or queen forever. If you do, your project will hit a glass ceiling because you will never attract enough contributors. As a result, the project won't survive. This is a typical founder's trap - so know that you have to give away control, and then retire.
This could also be to your benefit - the number one reason for a project dying is changes in the founder's primary job or a loss of interest. But that's ok because you also need to live your life. One way to pass on the torch is to put an announcement on the project website stating that the project is open for adoption. This is how I started managing, developing and evolving the Jenkins Performance Plugin. At some point, I will also retire, and I will give back the project by offering it up to adoption. Remember, we have limited resources, so it's ok to transfer the ownership.
Contributing to an open source project and improving open source tools is satisfying, and helpful, so make open source contribution a regular part of your work. Come learn more at my talk in Jenkins World.
This is a guest post by:
Open Source Initiative Leader