I'm currently part of a team developing a solution intended for small business. One of it's components is kind of a "dynamic business rules engine" (note the quotes) and because of it's nature we would like it to be highly configurable.
My idea was to implement/use an external DSL to write the rules with a simple configuration utility to create and edit them. We could also keep a set of "common" rules and distribute them with the application. An external DSL + the "editor" will allow us to fix or modify rules as needed, and our clients need that agility in their process.
My team members think that the best approach here is to provide the rules as plugins to the application and redeploy or upgrade those plugins, they argue that, in that way, we'll have better quality control given that testing the plugins will be easier than testing a DSL script. But in my opinion, maintaining a group of plugins, most of them in a "per client" basis will eventually become a living nightmare.
Bottomline my question is: Which solution do you think will work better with a small team of "jack of all trades" freelancers who have to develop/deploy/maintain/upgrade around four or five clients?