Open source funding is a huge and complicated problem. That problem does not have any clear solution yet. However, there is simple advice that can help: do not work for free.
Software development is hard work. It requires skill, persistence and a lot of time. Open source development is no exception. However, many open source developers are volunteers and enthusiasts that do not profit from their work. Many open source developers are dedicating huge amounts of their free time to do open source work. The developers feel responsible for their projects. They fix bugs and implement new features that are requested by community. As the project grows, more and more free time is taken by project maintenance. This often leads to personal of mental health problems. This model is clearly not sustainable way to maintain an open source project.
I do not claim to know how to make all open source projects sustainable. We found one method to do it. Many years ago we established Evolveum, a company dedicated to development of open source identity management products. Evolveum is a huge success and this model of open source development works very well for us. But the early years of Evolveum were extremely hard. Establishing even a small business requires skills and experience that open source developers usually do not have. And it becomes even harder as the business grows.
However, there is one advice that seems to apply universally to all open source developers: do not work for free. Life in this world is not cheap. You have to pay your bills. If someone wants your time, then it is perfectly OK to ask for money. Of course, people will complain. They will argue that they do not have any budget, that there is a lot of paperwork to do, that there is an enormous potential in the future or that they will get into a really bad trouble. None of that is your problem. These are often just excuses and psychological pressure. It is not a fair trade. Do not give in – for the sake of your health, for the sake of your family and friends. If someone really needs your time, then he will find a way to compensate you for your work.
Do not get me wrong. I’m not saying that you have to abandon your project if nobody pays you. Nothing like that. Go ahead and maintain, fix and extend your project. Just do it at your own pace. Do not give in to the pressure. Fix the issues that affect you. Implement the features that you like. Improve parts of the project that you think are problematic.
The most important thing is to dedicate comfortable amount of your time to the project. Do not spend too much time on it. It is your hobby, not your work. Do not mind those hundreds of bug reports. That is pretty normal. Every software has bugs. It is not your responsibility to fix them all. Do not give in to people demanding that you just have to implement this particular feature. It is not your job to do it. This is an open source project. Everybody is free to contribute. You are not the only person who can do it. Just keep calm and slow down. Nobody has the right to demand anything from you.
I’m not saying that you should ignore the community. Quite the opposite. Listen to the users. Many of them will come up with really bright ideas. Some users will test your system thoroughly and create good bug reports. All of that is very useful. Just keep in mind that it is you who decides when to implement that feature or fix the bug. It may be tomorrow, it may be in five years or it may be never. It is your choice. Nobody has any right to demand that you do it right now.
Do not work for free. Just don’t. Go ahead and have fun with your project. Spend reasonable and comfortable amount of time on your project. But nothing more. Spend enjoyable time, but do not work. Do not give in to requests of other people. If people want you to work, do not be afraid to openly ask for money. If someone really needs you to work, he is supposed to pay you a fair price. They will find a way to pay you. It is their responsibility to do so. Not yours.
(This post was inspired by open source funding discussion on EU-FOSSA 2 Hackathon.)