Are business domain tools necessary to enable a non-trivial development role for businesspeople?
Like many good questions the answer is complicated – in a way, both yes and no. I do agree with Mike that a non-trivial role for business people requires that the environment in which they work – in which they “develop” or “maintain” system components or services – must be domain-specific. For instance, If a customer service manager is to “maintain the rules for prioritizing calls” then it mus be in the context of their business domain. It must talk about customers the way they do, describe the various queues or representatives the way they would, allow them to specify the rules in a way that makes sense to them (perhaps natural or near-natural language, perhaps a flowchart) and so on. Does this mean that such an environment can only be developed using a call-center domain-specific environment? No, I don’t believe it does.
The major business rules management systems have a variety of ways of making sure that the environment used by business users to maintain rules can be made to look and feel domain-specific. ILOG offers their Business Action Language, Haley a natural language interface, Fair Isaac a template-driven environment. Each allows the use of the business owner’s terminology and further allows the structure – the bones if you like – of the rules to be kept out of sight. As long as the objective is collaboration – IT builds some of the elements, the business builds other elements – then this works just fine. Once the environment is set up, the business is in the driving seat.
Where business domain specific configurations have a clear advantage is where an organization wants to take control of a standard process. Using something like Experian’s product (credit focused) or Chordiant’s decision management platform (CRM focused) makes it possible for a business user to jump right in with less technical collaboration initially.
I have written about this before and summarized it in the wiki under business user rule maintenance