We’ve previously discussed the benefits of using open source software, but what about the other way around: contributing to them? There are many reasons why people might do so, from the ideology to more practical gains.
While these benefits may include earning money, there’s far more to it than that. You can learn many different life skills, important in today’s world, by assisting these projects. This isn’t restricted to coding either — even things like donations can help you develop them.
The climate of the internet is shaky at best. Many things usually not said face to face are quite common online. Tempers can easily flare up from a misspoken word, or social faux pas. It’s these sorts of personalities you might need to deal with while collaborating on an open source project (or any sort of online work for that matter).
Working together is not always easy, even when you have the same goal in mind. Each and every person is unique, with different experiences about what’s worked best for them in the past, along with their own agendas. It’s no wonder that in an environment where everyone can have a say, conflicts can bubble up.
The above snippet of text came from Linus Torvalds, the creator of the Linux kernel. Any proposed changes to it must go through Linus before being accepted, and sometimes, they don’t, or are even explosively rejected.
It takes a thick skin to accept these sorts of words, common to many online mediums. Especially when there’s no actual face attached to them. However, if you want to make progress, there’s nothing to do except listen, and handle such conflicts calmly.
Similarly, you’ll find varieties of people in life, who you’ll get along with to varying degrees. With enough diplomacy though, it’s easy to avoid any social problems.
Many projects tend to have multiple milestones to achieve, as a way of keeping development focused. Like in life, the more tangible, well defined targets are more ideal, since it gives a sense of direction to contributors.
This can be more clearly seen in large scale works, such as web browsers. While there will be a few broad goals — the things people ultimately want to achieve — they’ll need to be split up into sensible chunks. This prevents contributors from being overwhelmed by details and noise, and focus on what’s important.
For example, Mozilla Firefox uses an annual road-map as a way of publicly announcing where they will be going. It details potential major changes in the browser, along with the versions and time frame they expect them at. Something important for add-on developers to note is the phasing out of old extensions in favor of Web Extensions.
With this general focus set, everything else tends to fall into place. Problems can now be solved by importance to one’s overarching goals, with others at a lower priority. And sometimes that’s how life works. With multiple obligations swirling around, it can be very easy to lose track of what you’re doing in the first place. And that’s where goals come in.
Many open source projects attract people from around the world. As a result, opinions on how things should be can be wildly different, and even divisive. It can take hard work to put aside some of these disagreements, in exchange for the general well-being of a project.
For example, the community around Debian is built on top of a strong ethos of discussion alongside a strong group of administrators. People are encouraged to settle disputes constructively and without rancor. This helps keep an environment of cooperation with each other, and larger authorities focused.
If such problems can’t be solved personally, they are processed formally by Debian’s higher ups: the Technical Committee. Involved parties are meant to interact with each other here, now being properly mediated and judged.
Along with this, there’s also the matter of language barriers. Popular works can easily become a global affair, meaning that there may be people of multilingual descent. While English is generally known by many, people’s fluency can vary wildly.
A certain level of courtesy should be expected between people in communication. Whether that stems from language difficulties or more lofty, opposing ideals, it’s important to work together, and cooperate. Life works better connected, after all.
Many open source projects are driven by people with a desire they want fulfilled. There are many reasons someone would decide to start contributing. Anything from fixing a bug in their favorite program, or adding in a new feature might be the trigger.
For example, as a response to the bad support of Android file transfers on Linux, a single person developed an easy, graphical solution, similar to the Android File Transfer app on macOS. Solved problems include things such as properly recognized album art, along with random crashes. As such, the program was made to work simply, without any hassles.
While not everyone has the ability to write programs themselves, it’s fairly easy to bring attention to bugs and suchlike. It can be difficult for developers to keep track of problems, especially if they’re hard to find. Taking the first step of pointing them out may not be very technical, but it’s extremely important to do.
Likewise, life is much better off when you decide to take matters into your own hands. Actively seeking out and asking for things can do a lot to improve yourself. After all, nothing really changes if you don’t try to do so.
A Lesson Learned
Contributing to software isn’t just great for the community, but for yourself as well. There are a number of important skills you can pick up which can be carried over to the rest of your life:
- Meeting goals
- Working proactively
These are all qualities that can help in your personal life, and professionally.
What has open source software taught you? Did you develop any new qualities? Tell us how your open source contribution helped you grow.
Image Credit: ra2studio via Shutterstock.com