How To Succeed With Open Source Projects: A blog about open source software and how to able to excel in it by offering code reviews, code lines of helpful discussion and feedback.
Why do we write blogs?
In our experience, the best way to make the most of your time is to write down what you have learned from the work you have done. Writing a blog post allows you to share your work with others and get feedback on it. Even if you don’t have time to write a full post, sharing a link to something interesting is worthwhile.
What do I need to get started?
All you need is a GitHub account. If you don’t already have one, sign up for a free account here. (We recommend using your real name.) Once you’ve logged in, create a new repository called username.github.io, where username is your username (or organization name) on GitHub. You’ll now be able to access your site via http://username.github.io from any browser!
How do I publish my first post?
To make your first post, create a file called index.html in the root directory of your repository and push it to GitHub:
$ echo “Hello World” > index.html
This is a blog about open source software and how to be able to excel in it by offering code reviews, code lines of helpful discussion and feedback.
In this post, I am going to share some of the tips that I have learned over the years on how to succeed with open source projects.
You should start small.
The best way to learn how to get good at writing open source software is to start small. It’s really easy to get overwhelmed by the sheer amount of code that you need to write when you are trying to build something big. Instead, you should focus on building something small and simple first.
This will give you a chance to understand how things work and what needs to be done in order for the project to succeed. You may even find that there are already existing solutions out there for your problem!
Don’t make assumptions about what others think or feel about your code!
It’s important not to assume anything about other people’s opinions or feelings about your code. If someone gives you a negative review, don’t take it personally – they probably just had a bad day and didn’t want their opinion reflected back onto them negatively.
Give your reviewers plenty of time and space
How To Succeed With An Open Source Project: A blog about open source software and how to successfully contribute to it by offering code reviews, useful lines of discussion, and feedback.
The first step in the process is understanding what makes a good project in the world of open-source software. A good project has both a clear vision for what it wants to achieve, and an active community that can implement this vision. The second step is finding one of these projects that you feel passionate about contributing to. Find your passion and go for it!
Once you’ve found a project with a great community, make sure to read their contribution guidelines before submitting any pull requests. This will usually be under some kind of “contributing” section in their README file, but sometimes they have dedicated documents or pages on their website as well.
If you have any questions along the way that aren’t answered in these guidelines do not hesitate to reach out directly using the contact information provided in them (usually email). Do not just submit your PR without first having confirmation from someone on the team that it’s okay!
After submitting your proposal with all of these things done correctly now all there left is waiting patiently while they review your code and merge it, if they like it!
Open source gets a bad rap for being hostile to newcomers, but in reality it’s only about 10% of open source projects that are elitist. For the vast majority of projects, the maintainers are eager to get contributions from anyone who can improve their project.
The key is finding those maintainers who want your help and learning how to work with them to get your contributions merged into their projects.
Over the past few years, I’ve been working with students as part of my job as an instructor at Code Chrysalis, an advanced programming school in Tokyo. While most of our students go on to become professional developers, many also decide to contribute to open source projects. These contributions have ranged from simple changes like adding tests or fixing spelling mistakes in READMEs, all the way up to massive refactors and rewrites.
We’ve learned a lot through this process about how to be helpful and make meaningful contributions that actually get merged into a project – even if you’re a complete beginner!
Open source software has a reputation for “scratching an itch” – that is, being created because the developer wanted to solve a problem they had. This is true, but it’s also not the whole story.
Most of the people who contribute to open source projects are not doing so to scratch their own itches. They’re contributing to projects because they benefit from them in some way. The benefits can be:
The ability to reach a large audience. If you’re trying to build a business around your code, that’s one of the easiest ways to do it!
A way for people to discover your work and hire you for something else. A lot of people are hired off of their open source contributions.
A platform for learning and experimenting. If you want to learn how to do something, working on an open source project is a great way to get started, as long as you’re willing to learn from others’ feedback and critique. It’s also nice because you can always revert or delete your changes – there’s no worry about messing up someone else’s stuff or getting fired for making mistakes!
A way of giving back and helping other people out with problems that have already been solved by someone else. Open Source Software is all about sharing knowledge –
Why do so many open source projects fail? For the same reason that many startups do, and many other endeavors which are run as business partnerships or collaborations.
The most important cause of failure is disagreement about what the project should be. In fact it’s usually not a single disagreement but multiple disagreements, with respect to both the short-term and long-term goals of the project.
I’ve seen this happen in a number of cases where I was involved in the early stages of open source projects, but perhaps the most dramatic case was MongoDB. The early developers had different ideas about what MongoDB should be. I thought it should be a database optimized for web apps (and I still think this would have been a good idea), others wanted something more general purpose. The result was that MongoDB was neither sufficiently web oriented nor sufficiently general purpose, and now there’s debate about how (or whether) to fix it.
Another cause of failure is irreconcilable differences between people on the core team. This is common enough in startups that we have a phrase for it: dysfunction at the top. Sometimes you can solve this by firing people, but often you can’t, because one or more of the people involved has veto power over the project as a whole.
The first thing to realize is that if you are submitting a patch, you are in the driver’s seat. You’re being paid to do the work, so let everyone else know what you need from them.
When sending patches, label it clearly as “RFC” (Request For Comments). This means that you want to get feedback and discussion, but don’t want people to apply it yet. This gives other people a chance to comment on the code before it gets merged. It also avoids having your code reviewed multiple times. Anything which gets merged is going to be subject to review again; don’t waste people’s time by asking for pre-merge review too.
If you do this correctly, other people will start giving you feedback about your code very quickly. If not, then no one is going to care about your patch.