Before I started to build my app, I debated whether I should release my code to the public. This was quite a scary thought at first but after researching and going back and forth between closed source and open source, I ended up going for the latter. Here are 5 reasons why I will open source my app.
1. Give back to the community
When developers tell you that they were ‘self-taught’, they are most definitely wrong. Self-taught developers have been trained by the millions of people that have written blog posts, created videos, build documentation and open sourced their code.
These people have given so much value to you, they have spent countless hours building stuff to support your progression as a developer so you should do the same.
Yes, open sourcing your project will take a small amount of your time but the advantages that it has on others (and you) far outweigh this issue.
2. Build better code
When open sourcing an app, you need to make sure that your code is understandable by other developers. This means that you must write clear code and simple documentation.
Especially for those like me who are building a project alone, it’s easy to skip documentation since you know what you’ve built and have forgotten the learning curve required if another developer decided to join your project. Even in a team, developers may regard something as being common sense when someone new may not have a clue.
When you open up your project for other developers to peer into, it forces you to think differently. Is this code easy to understand? Should my documentation be clearer? How can this be made simpler?
I think some developers (myself included) can become lazy with building readable code. This mindset shift when you realise that someone you’ve never met should be able to understand your code is a drastic advantage to building maintainable and sustainable code.
3. Nobody can steal your business
One of the reasons why I considered not to open source my app was because I worried that someone could take my code and ‘copy’ my idea.
Since developers spend lots of time and effort into their projects, there is a fear that someone will steal your hard work if you were to open source. I came to a sudden realisation that it doesn’t matter.
There’s more to a business than just code, the community you build is something which others simply can’t copy.
It can be difficult when you have lots of pride in your work but spending the time to build your following and interact with your community will ensure that you have something which no other business can emulate.
If you’re worried that a competitor will copy your idea, then remember that they can still copy your idea if your code isn’t available to them. Even so, it doesn’t make it easier when you code is open sourced since they have to remodel your idea to work with their project.
4. Free tools!
Some businesses in the development space like to give back to the open source community, so they give away their tools for free.
The biggest of these tools is clearly GitHub. It’s solid platform and 14 million users (as of April 2016) shows that it’s the best place to host your project.
Another popular tool is Travis CI which makes testing your project straightforward. Almost every project I see on GitHub uses Travis CI. Its setup is incredibly simple and is hosted for you for free if your project is open source.
One last tool is Canny (it used to be called Product Pains) which helps you to interact with your community and discover areas in your project that can be improved. The only downside to using this tool is that they only allow you to go for their open source plan if you aren’t a product, meaning that your project should be for helping the development community.
There are several other tools which are free if you are open source, I recommend you research what tools you need and check if there is a free open source solution.
5. Learn from your community
When working on a project in isolation, you’re limited to your ideas and knowledge. This can be a hindrance to your business, which is why more companies are listening to their communities by open sourcing their products. Companies like Facebook and Google are at the forefront of open source but even non-tech companies are doing this. If this isn’t a sign that open source is here now, then I don’t know what will be.
By releasing your code to the public, you show that you care. While the community for my project isn’t necessarily developers, there are developers who care about the same issues as you do. Their ideas can help shape your product for the better and improve your business.
While open source is difficult in the short term, it’s the benefits in the long term that will make your efforts worthwhile.