One of the issues which can limit LedgerSMB long-term is the question of areas of the software which may require periodic, locale-specific maintenance. These include areas like payroll reporting and revenue reporting to relevant tax authorities. The difficulty here is that typically in an open source model assuming that we aren't dealing with a lot of developers among our users, this creates an economic problem: Someone has to pay for the periodic changes to reporting formats, rules, etc. The ideal way to deal with this is through some sort of a subscription. You pay, you get the relevant updates, and nobody has to pay the fill cost of maintenance. The problem is making this work in an open source application which is community centered.
The problems that I see with localized features such as taxes (in any number of areas) is the fact that any default settings we are providing are getting dated quite quickly. Even with VAT we're already seeing this happen.
You write that the number of developers between our users is a problem. And in fact, it may be. However, what about actively advertizing that we're looking for vendors - people wanting to sell their services - to provide local and localization support?
If we were able to provide a way to allow users to script the tax calculations using parameterized calculation rules we frequently see in the typical areas of application, then the user may feel like he's specifying something as simple as an excel calculation rule. Most of our users understand how to do that.
I guess that for now I'm not really seeing where the difference between 'coding correct bulk payments and bulk payment reversals' and 'coding a system allowing locale specific tax and payroll calculations' comes in. In either case, a large effort is involved and nobody is (directly) paying for them - other than you and me taking the effort to make the investment.
The main problem that I see with the locale specific stuff is not to be able to code it, but to acquire the knowledge to do it correctly. I see that as a problem we can put on the shoulders of local vendors: people who should know their local markets.
I am looking at two options here.
The first is to create add-ons which do not inherit core modules but rather use them as an API. These by our current interpretations would not need to be under the GPL. My current thought at this point would be to release, say, annual updates to subscribing members under licenses which would revert to the GPL approx a year later. The expiration of the restrictions would be set in the license itself. The idea is that we would not be trying to perpetually hold the market, or even stifle open source efforts at such functionality, but just protecting our economic interest in a specific year's subscription updates.
The second is to create a contract which would tie restrictions on redistributing these addons to specific services offered, with the option of cancelling. The problem I have with this is that I think that in order to make this work, we'd have to bundle the updates with additional services, and we'd have to make the contract more restrictive than I would like. For example, we might make these available only to those with support agreements.
My sense though is that before I make such a decision, I would like to consult with the community, see what folks think. I don't want to come across the wrong way or be accused of pushing for crippleware. In fact, I would entirely support distributed approaches to these problems in competition to the services I am trying to develop. I just don't see the market supporting such right now.
Looking at the two options you have now, I'd like to go with the first option as well. However, I'd even more like people to donate money (or the effort/rules themselves) so we can implement the rule engine and the localized rules and release them with our software like we do with all other functionalities. Hmm. I see me iterating myself. I guess I'm not used to the idea yet.
What are your comments to my reaction?