Radovan's Blog

MidPrivacy: Data Provenance Prototype

I have spent quite a lot of my time in last 6 months on one interesting project: Data provenance prototype. This was an experimental project aimed at metadata functionality in identity management. There were many interesting results of the project that I have summarized in my Evolveum blog post.

This was also my first project that was mostly funded by European community money. I have to say that it was quite a nice experience overall. There was some paperwork, but not too much. There is kind of tradition in my coutry that the European should be spent instead of used, therefore I did not know what to expect in this project. But this was international NGI project and not an ordinary national project. It was different. We felt a lot of pressure to deliver tangible results, which I undestand and fully support. This atmosphere produced excellent results. We even ended up using our own money on top of EU funding to improve the results, even though we were not expected to. The project was a success on all fronts. I just wish that more EU-funded projects could be like this one.

Open Source Is Not A Business Model

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)

Dear open source developers, do not work for free

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)

See all posts