What can be shared are pieces of functional code that are generic, re-usable, commonly used and do not encapsulate business logic. And, most importantly, it need not be complete in itself. Notice that I say “code”. I am sure I will not use a chunk in binary created by anyone just because they claim it does what I need. It is important to have the code so I am assured that I can fall back on myself in case things don't work, and because I can tweak it to suit my needs.
Am I talking about Open Source? In a way, yes; but it is not free. No, I'm not thinking of a SourceForge clone where you have to pay for the projects. There are two large differences: Firstly, I don't want entire projects. I just need pieces of code that fill up holes in my system by providing certain functionality like the ones mentioned earlier. Secondly, I don't mind paying a little bit for it, perhaps even a little more if there is some a sense of confidence for that code.
Looking at it from the other end, since I've already written the two utilities mentioned above, I don't mind sharing that code with someone who needs it. I don't expect to be paid much by the first few people using the code. After all, they have no idea how reliable or useful it is. But as more and more people use it, they have the cumulative sense of usefulness and quality due to the people who have used it before. If my code has proven itself to be good, I would expect to be paid somewhat more by the later users because they already have some assurance for it.
[Part 1] [Part 2] [Part 3] [Part 4]
Tuesday, May 1, 2007