Delivering Upgrades To Developers -- How?
Okay, put a developer hat on (even if not one) and imagine this scenario. Imagine you found a CRM-lite web app kind of thing, definitely FOSS, that would be perfect for your office, but you want to add about 2 months of customization to it. After two months, you're done. However, then, on the website where you downloaded that software, you hear that some updates are almost ready for the web app.
Given that scenario, how would you like to see those updates implemented? (It's okay to want to see them implemented in multiple ways at the same time.)
For instance, there are two problems with this:
* Developers who customize the application, especially an application designed intentionally to be customized, will have trouble integrating critical security and business logic patches in with their existing code. They can't just replace files because then they would lose their customization. (Luckily I have implemented a good deal of the project in objects so that one can choose to update objects they haven't touched and leave others alone because they have customized them.)
* I actually want to make money with FOSS by selling consulting services, a programmer manual, pre-installed rackmount servers and memory sticks, and media kits that include printed manuals. But if someone wants to download the app, it's free. So, given that, do you think that there is a problem with this kind of application in this kind of model? Do you think developers will want to get something that they cannot easily update? This is one reason I think why forks occur that can steal marketshare and potential revenue away from FOSS projects.
The products SugarCRM and vTiger are in competition with each other, and vTiger is its fork. There's also the rivalry between Joomla and Mambo, and phpBB and vBulletin. One wants to build something cool that people can use as an SDK, but they also want to pay for their development efforts.