I’ve been using FLOSS (Free/Libre and Open-Source Software) for almost two decades now and from time to time, I’ve been thinking about contributing to “return the favour”.
When I joined Fediverse, it struck me how many interesting projects there were and how much time people dedicated to work on them. Now I would really love to join and get active, but it’s very hard to find the time.
Not long ago I’ve got an idea to ask software engineers who are already active in FLOSS projects about that. How they find the time, organize their work and achieve life-work-FLOSS balance. So I did just that.
I’ve asked Mark Felder (FreeBSD port maintainer and Pleroma developer), Shawn Webb (co-founder of HardenedBSD, maintainer of several security-oriented software projects), lain (main Pleroma developer), Mateusz Piotrowski (also a FreeBSD port maintainer) and Michał Herda (a Common Lisp hacker).
Each of them has provided some interesting insights, so I’d like to take a look at the most interesting ones and some of the recurring topics mentioned by them.
FLOSS at work or as a hobby
I’ve noticed two approaches there: working on FLOSS projects at work if you’re lucky to have an employer who wills to pay for that, or doing it as a hobby, which I guess happens most of the time and in most of the projects out there, with only exceptions being huge projects backed by entire organizations (e.g. GNU/Linux, Mozilla Firefox).
Convincing one’s boss that FLOSS contributions pay off is not a piece of cake, so we can change perspective a bit here. We can choose employers who are willing to contribute to FLOSS.
There are many ways to contribute
As Shawn Webb points out, contributing to FLOSS is not limited to writing source code.
Advocacy. Talk to people about the cool things you’re doing with the project. Talk to them about how it has solved real-world problems for you.
Donate. This is a huge one. Donate hardware, software, and/or money. A lot of developers work on their projects in their spare time, like me, with spare resources. Donating funds allows them to pay for hosting services, DNS, etc. Donating hardware allows them to test their code in a variety of ways.
Document. Every project’s documentation could be improved in some way. Whether it be through translation or enhancements to any existing documents, help with documentation will always be gladly received.
Development. If you do have time to develop (though this question is about not having the time), do it! If you use the project at work, perhaps you can have your employer slice off some paid time for fixing bugs.
I think this is a very important thing to keep in mind. Not everybody has to write source code. Instead, those who benefit from that code being written could show appreciation with their donations.
Furthermore, supporting those who solve technical problems by adjusting documentation and spreading the word about their achievements might sometimes increase popularity, leading to more donations, more volunteer developers, etc.
Scratch your own itch
When it comes to developing software or documentation, it might be a good idea to start with software that you already use. You’ll probably know the issues and will find it easier than finding a project, learning about it and then supporting it this way or another.
The benefits of contributing
First of all, this is about getting more experience and learning in general. It is much better to learn by solving concrete problems rather than writing a “Hello World” app in your spare time. Hello Worlds rarely show you any useful tricks or complex problems. Bug reports from actual users will be real-life challenges – much more rewarding to solve and growth-provoking.
It’s not only the FLOSS source code we might learn from. Working with other engineers, each of which has different experience, is a great opportunity to learn as well.
Another point is that FLOSS contributions are often a very good way to provide potential employers with a sample of your work, showing your capabilities and style.
Don’t be afraid
Sometimes software engineers working on all those FLOSS projects seem to be so experienced and have so much knowledge, that it might demotivate one to get in touch and start getting things done. However, my experience proves that they don’t bite! It’s the opposite: each of the engineers I sent my questions to was so open and encouraging that their responses alone made me want to contribute!
Sometimes there are going to be longer periods of no meaningful results or hard problems to solve that would require a lot of work. It might happen and it’s fine. Having clear goals will help a lot. Also, it’s important to remember why we are doingn it – for instance, a common cause is to give back to the community.
Reading all the replies I’ve got was an incredible experience and I’m thankful to all those who replied. Now I’m goinig to take the advice and start learning by doing.