DISCLAMER: This POST will provide in-depth explanation of Open Source, its etiquettes and might eventually make you fall in love 💙 with it too.
Let us understand this by an interesting example.
Hermione👒, a geek girl👩💻 who loves programming and building products📦. One fine day, she thought - why not build a Social Media Application for me and my friends to chit-chat. She started coding and made a pretty decent application named
WizChat - A Chat Application💬 for Wizards💫. But now, her ambitions were higher. She wanted
WizChat not to be limited to her friends' group; and wanted to scale it.
What did she do next?
She invited her fellow coder friends🎩 - Harry and Ron to accompany her. After some time, as the app was slowly getting more users🧑; the requirements to maintain the application and add features increased. It was time for adding new members on board.
Added new members; and repeated the same thing. Now the App was being used by the whole
Gryffindor house! Insane impact was getting created by her code to the Wizarding World. But ever rising requests, bugs, suggestions and maintenance issues bothered
WizChat's performance and User Experience.
What did she do next?
She made the project
In other words, now anyone who wants to code for
contribute to the Organization🏦 - regardless of their house, caste, creed, religion, country, status or qualifications. Hermione, Ron and Harry were
Maintainers of the Organization who reviewed✅ codes of the
contributors and merged🔃 them to the codebase.
Everyone who wanted to code for
WizChat, contributed via
WizHub (Github for Wizards). Also they were added to the WizCommunity, where all their doubts, queries, requests were addressed by the members of the community.
In this way, from a toy-app, with good execution and support from the community; today
WizChat is being used by everyone at
Hogwarts and has brought a change in the whole Wizarding World.
This is the power of Open Source Community! 🤯💥
In every sport🤾♀️, there is a spirit of the Game which all the good players religiously follow. Same applies in the world of Open Source. These Spirits actually are the reason why coders love Open Source Communities.
Below are the 7 Open Source Spirits which are must-haves for any Open Source enthusiast.
0. Collaborate🤝 First. Code💻 Second.
Suppose your Organization wants to develop X feature for the application. It might happen that you possess all the required skills to code the whole feature.
What should you do?
Instead of solving the X on your own, divide X into N sections/milestones and let everyone contribute to the project.
If you are skillful enough, request the maintainers to give you an opportunity to lead that particular feature.
Number of lines of code written by me => ❎
Number of contributors got their PR merged through me => ☑
Answer other's questions❔. Help your fellow coders by providing resources, solving their doubts etc.
1. Open Source is a Competition🏁! (in Parallel Universe🤭)
The most revered Open Source Spirit is non-competitiveness.
Everyone in your organization are your team members and you all come together to solve problems and build amazing stuff.
Quick Tips to follow🔢✅
If someone is assigned to an issue and hasn't yet completed, don't override and compete to solve it by yourself and make a PR. Think what the assigned person would feel? Isn't it unethical or insulting?
Don't get yourself assigned an issue unless you understand it properly.
Don't feel envy/jealous when someone is more skillful than you or has more contributions compared to that of yours.
2. Treat the Organization as your own
In my opinion, Open Source contributions is no less than doing an internship or working on a major project🚧. If you contribute regularly to an organization, your work⚒ does get considered significantly towards your experience.
Quick Tips to follow🔢✅
Whenever you are open sourcing, think as if the organization you are going to code for is your own. Have a personal connect with the project and the community. This will take your motivation and satisfaction to the next level🔝.
Have a team spirit✌ and work together.
Follow the code of conduct, instructions and the code-style of the project when working on an issue.
3. Non-technical💠 Contributions
Writing Code is one of the many ways you can contribute to the organization. Non-technical contributions are equally valuable and appreciable for the growth and development of the organization.
What can you do?🤔
- Report Bugs🐛 by testing the Software.
- Suggest improvements↗, request features or can also do product research. After all, the end goal🥅 is the benefit the organization.
- Propose improvements for UI/UX of the software if you are good at designing.
- Help other members in the community.
- Be active in the group chat and keep the community alive.
- Attend meetup calls📞 of the organization and be a part of conversation.
- Update User Documentation📄 of the Software.
- Write Blogs✍, tutorial etc. for the organization to promote and help the users to get familiar with the Open Source Software.
4. Coding Etiquettes
Generally the contributing guidelines and the code of conduct is provided in the
CODE_OF_CONDUCT.md file of the repository.
Follow these 👇
- If you are creating an issue⚠, provide clarity on the existing problem.
- If submitting a Bug Report🐜, mention steps to reproduce it with related references, screenshots, gifs or short videos📽 explaining the issue.
- If it is a Feature Request🆕, deliberately explain the benefits and concise description of it.
- If you are making a Pull Request, make sure there are no conflicts with the base branch.
- Write clean🧹 and well-commented code that is free from syntactical or logical errors⛔.
- Run unit tests🧪 and lint fixes before submitting a PR.
- Be quick to respond and patient to wait for the PR to get merged.
- React to the comments from the reviewers positively and politely.
5. Team Etiquettes
Open Source is all about team work. Any sort of help to the team members is highly appreciated. Be polite, kind and respectful along with being friendly.
Follow these 👇
- Greet👋 and welcome newly joined members.
- If some member is facing issues to set up dev environment, assist them.
- Someone made their first contribution? Congratulate🎉 and encourage them for their work.
- Don't be irresponsible for the assigned issues or tasks. If you don't have time⌛ work on them, un-assign and let others take charge of them.
- Don't use slangs or abusive language❌.
- Avoid using words like
Sir/Madam/Bro/Sis/Guys. Instead use the
first namefor personal message and use
Everyone/Folks/Communityetc. gender-neutral words to address team members.
- Don't be over-friendly with the members or personal message others without any reason.
6. Open Source is a Marathon!
It is not a 24 Hour Hackathon or a 3 Hour Coding Contest. Perceive this as an internship/job/personal project to which you are passionate about and would love to stay connected for a longer span of time.
Similar to a Marathon run🏃♂️; where you can increase and decrease your pace as per convenience, in Open Source too; you can scale up⬆ and down⬇ as per your convenience and schedules. It is probably the best part about Open Source.
There are a lot of Open Source Mentorship Programs such as GSOC, Outreachy, MLH, Season of KDE etc. organized throughout the year where selected students get opportunity to work on interesting projects of the corresponding organization and get mentored throughout the program.
But, in the end - these are all Open Source Organizations. Thus,
Open Source Spirit is utmost important for one to contribute in best possible way.
The contributions aren't limited to the coding period🕐 of Program. In real sense, these help one to contribute significantly to the project and in-turn making you an active member of the organization to stay connected with the community🏦 even after the coding period of the program is over.
Agreed, there is a insane amount of competition due to less number of slots and higher number of applicants. But let's not forget the
Open Source Spirit which makes all these programs amazing!
✔ Steep Learning Curve
✔ Improve Communication and Collaborative Skills
✔ Strong Networking with like-minded people
✔ Your code impacts large audience
✔ Job Opportunities from recruiters and users
✔ Looks amazing in your portfolio
✔ Expertise in Version Control and collaborative project management
✔ Makes you a Team Player
✔ No doubts on your skillset
A Concluding Quote...
If any day you feel the world is all hatred and negativity, then Join any Open Source Communities.
Irrespective of you skill, knowledge, background or anything, you would be welcomed with immense amount of positivity and gratitude by the people there.
I hope this post provided value and helped you to understand Open Source in much clearer sense.
Did this POST motivate you to start with Open Source?🧡
Also, if you think I missed any points in this post comment them below!
Thank you so much for reading.
So, until next time;
Keep Open Sourcing :)
And as always, feel free to reach out to me! 😊