11 Mar 2020
Open source is not a business model. This may sound like a strange statement from a founder of a successful company which is firmly based on open source. But it is true. Open source is not a business model. But there are many ways how to build a business around open source software.
Evolveum is an open source company which I have co-founded in 2011. We focus our energy to build and maintain midPoint - open source identity management and governance system. Open source approach is embedded deep in the fabric of our company. MidPoint was an open source product since the day one. MidPoint is pure open source, without any paid features, enterprise editions or any other limitation. Everything is open. Despite that, we are profitable and midPoint is stronger than ever.
But making that happen was no walk in a rose garden. The beginning was very hard. The technology was not the problem. There were good engineers in Evolveum team even in the early days. We were used to deal with problems of technology. That part went quite well. The business side was the problem. How can one make a living by developing an open source software? We had some idea, but it was not working as well as we expected. We were struggling, experimenting, trying and failing. But after all those years the solution was clearly in front of us. We just could not see it.
The problem was that we were trying to monetize open source software. How do you monetize something that is freely available to everybody without any serious limitations? We were struggling with that question for years. Yet, I guess that if you ask young kids they can easily answer the question. Because in fact, the answer is trivial: you don't. You can't monetize open source software.
But do not worry. Open source developers are not going to starve to death. There is a nice way how to earn money. The solution is quite simple. Do not monetize on software. Monetize on services.
Software is not a static thing. Software is changing all the time. There are bugfixes, new features, improvements and documentation updates. Software has to adapt to new environments, new business requirements and regulations. Software is a living thing that changes all the time. A software that cannot change is as good as dead. It may work today, but will it work tomorrow?
There is always a lot of work to maintain the software. Therefore software maintenance is a service. And it looks like the people are willing to pay for that service. People will pay to get a fix for a problem that affects them. People will pay to get a feature that they need. People will pay for an improvement that makes their life easier. People will pay for the knowledge. They will pay for a training, for the privilege to gave their questions answered quickly, for ad-hoc documentation updates. Or they will just pay to have their backs covered. People will pay for services.
That is the answer that is perfectly obvious, but we could not see it for such a long time:
Our software is free. Both free as in speech and free as in beer. You can take it, deploy it, run it, modify it and you do not have to pay anybody to do that.
But our services are not free. Do you want a single minute of our time? You have to pay for that. Do not expect any free lunch here. Not even a free snack.
We are not selling the software. We are selling services. In fact, open source software is pretty much just a byproduct of those services. Open source is not a business model. But a viable business can be built on services around open source software.
(Reposted from Evolveum blog)
04 Mar 2020
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.)
(Reposted from Evolveum blog)
12 Feb 2020
My blog has been silent for more than three years. In fact, the whole site was neglected for much longer than I care to admit. It was just about time to do something about it.
My old site was created back in times when WWW was still quite new and exciting technology. The pages were generated by a patchy Perl script that I wrote more than twenty years ago. That old excuse for a web site went out of fashion a long time ago. Don't get me wrong, there is nothing inherently wrong with going out of fashion. In fact it is a sign of longevity. However, twenty years is a quite an age for a completely custom script, especially if the script was shamefully neglected by its author for half of its lifetime (at least). That old thing was no longer maintainable, therefore it was time to put it to rest.
This site is created using Jekyll, which I find quite fascinating. It is using the same principle as my antiquated Perl script, but Jekyll is doing it in style. It is definitely a major improvement.
Do not expect anything great over here. This is just my personal blog. If you are interested in the serious things that I do during my daytime you should head to Evolveum blog. I plan to keep this blog more personal, but some of my work is quite likely to leak here as well.
Whatever. Stay tuned if you are up to the challenge. Just remember: HC SVNT DRACONES