I want to share some frustration and thoughts I have about what the process of making small open source projects should be, specially how to have a good start with money involved.
My frustrationI decided to build a simple marketing tool to send bulk text messages to phones (I intend to make some money out of this desktop software). But to get that software working I need a library that encapsulates the usage of a GSM modem to a level where I can easily send/receive SMS.
I found some libraries like: jsms, smslib and attention.
Jsms is a nice finished product that does just what I want, but I have to pay a licence of about 400 USD to be able to develop with their library, and then a runtime licence of 40 USD for each JVM that runs with their software. Because I want to go cheaper that market value, paying a licence for each sale that I have does not make much sense.
Smslib is open source and lacks good documentation with samples that covers all features of the framework and I don't want to go to the forums when all I want is to understand the API.
Attention just works for the actual decoding and encoding of the PDUs and it's not a finished library.
I am the kind of person who wants to use the open source version of a software just for fun, to learn and to contribute, but sometimes we just need at hand a enterprise-grade product to have a fast go with our projects. Because of that most decide to go for the paid libraries, or paid products (which I am still evaluating to do too). But...
. Why can't we have enterprise-like libraries/products in small open source projects?
. Why is it that the one project we so need to use just lack something like high quality documentation covering all features and various use cases?
. Why is it that the one project we so need to use just lack some working examples to have a jump start for all the features of the project?
. Why is it that the base of the project is hard to understand and it's a bit hard to dive into the source code just easily?
It could be you started a small useful project for yourself in your free time and it happened to be really useful for a handful of other people too. Then new features are requested..., a better idea of how it should be implemented comes in, but you already have users, so breaking API changes are hard decisions to make. You still want to work on it because you are PASSIONATE about it, but you are still doing it in your FREE time... so you can't devote enough time to think, implement and document a good idea well.
I think that when you hit this dilemma the only way to do well is to be paid to work on it. This is not a revolutionary idea, people is starting to use croud-sourced funding to do great projects that end up being FREE, but they don't work for free :)
So what do you think ? If you get paid to work on what you are passionate about while providing a high open source value to the community, isn't this a win-win situation ?
Should we start opensource projects with money at hand, and in exchange provide a liberal licenced piece of software that is polished like enterprise-grade products that will run for itself in the comunity once you finish the version 1?