At my day job as a software engineer most of our projects are done in contracts for work. After a few years I realised, that doing core components in contracts for work is bad for quality, because there are too many compromises:
- Budget
- Deadlines
- IT environment of the customer
- Bad political decisions
- Shortcuts that backfire
So I decided to do the core components for concrete clouds as open source and free from any obligations, on my own, at my own schedule. So far I did progress well: The first module, chirp, is finished. The reason for open source is that you need a purpose and feedback. You can't develop anything for years without input and a short term purpose. So I cut up the project in many small general purpose modules that can be done fast and already be used for any type of cluster application. And of course I believe in open source. Now the core components have a high quality and you only have to compromise on the high-level modules that are customised for the client.
Ownership
As soon as we will use some of the modules for customer projects there will be a client that won't accept the AGPL license. Usually for stupid political reasons, but sometimes semi-valid SLA and continuity reasons. Therefore I decided to own the most important modules, so I can issue proprietary licenses. I will price these licenses so that it will be cheaper to go with AGPL, if the customer insists we earn good money to continue the work on concrete clouds, so it is a win-win for the customer and open source.
Contribution
How can you contribute to concrete clouds?
- Use it and report bugs
- If you want to send a bugfix I will ask you to to sign a contract to transfer ownership to concrete clouds
- So you usually just want to report bugs
What if you have an idea for a bigger contribution?
It is actually quite simple, since concrete clouds is very modular, you just start your own module building upon concrete clouds. You can have your own AGPL compatible license. Work at your own pace and have your own design. If I happen to need your module for a customer who doesn't want AGPL, we might be able to agree on a price for a proprietary license.
If I get you to know well and you're working steadily on your modules we even might do a co-ownership contract. So you can issue proprietary licenses for the concrete clouds modules and your modules become part of concrete clouds.
Your license model is greedy and not in the open source spirit!
I don't think so, putting a price on not using open source, will facilitate management decisions toward open source. I am hoping that I never have to do any proprietary licenses. I'm a software engineer, business is not my business. But if proprietary licenses happen they might even support a freelance open source developer.