title: How can developers let business users define application logic?
body: <p>I'm working on a new application at work, and a manager is really pushing the concept of a business rules management system (BRMS) and a workflow management system, and I'm trying to figure out the best way of integrating these types of tools.</p>
  
  <p>With regard to these types of systems, I don't know what I don't know, so I'm trying to get other perspectives and information.</p>
  
  <p>The thing the manager is looking for is the ability for business users to change business rules or process flows without the need for developer time (or with minimal developer time).</p>
  
  <p>A BRMS is easier for me to understand when I think about how it would fit into code. It's pretty straightforward, and I can see how the logic could reside completely outside of an application. Since I haven't done much with these types of systems, I would appreciate any info on good products that integrate with .NET, or info on experiences. (We're looking at InRule, Blaze Advisor and ILOG Rules)</p>
  
  <p>What I'm less sure of is the workflow part.</p>
  
  <p>Workflow Foundation makes sense to me, as it's a known, defined workflow that's integrated into application code, but the manager isn't looking for a foundation, he wants a tool that lets business users define and update workflows. Any type of system that allows end users to dynamically create workflows makes less sense to me.</p>
  
  <p>I was asked to look at <a href="http://www.workflowgen.com/">WorkflowGen</a> as an example of a workflow engine. To me, it looks like it's completely self-contained unless a developer writes .NET code to interface with back-end systems.</p>
  
  <p>I can understand a workflow system that allows users to define specific, limited actions, like "e-mail so and so" and "require so and so to approve," but I have no idea how a workflow system that's supposed to dynamically define application flow can be integrated in to an application, or even how the more simplistic system I just described can display and update back-end data.</p>
  
  <p>I'm pushing for use cases so I can better understand what my manger is looking for in terms of moving these types of logic outside of application code, but in the meantime, I'd appreciate any info anyone has on these types of systems. As I said, I don't know what I don't know, and our business users seem to think our new application should support these types of tools. I want to make sure I'm limiting our functionality due to my lack of knowledge.</p>
  
  <p>Thanks for any information or advice.</p>