What It Means To Be Thinking In Rules
Thinking in rules in many respects is about decomposing business intent into a combination of conditions and actions. Business intent as it lives in the minds of subject matter experts (SMEs) can be ambiguous and difficult or even impossible to thoroughly express. Thinking in rules imposes an organizational structure on how we think about business intent. This structured migration toward conditions and actions inherently drives out ambiguity and complexity and leaves us with a sharable understanding of intent which is not only simpler to understand, but immediately verifiable and consumable. Thinking in rules is an approach which transforms domain knowledge into an applicable system of reasoning.
For SMEs, conditions and actions are at the core of thinking in rules. Thinking in rules breaks domain knowledge down and results in a list of what information is necessary to arrive at an action for a given situation. This is the foundation of automating decisions . For the consumer, thinking in rules results in cleanly structured questions and answers that encompass the use of the knowledge.
How would it be if you could define business agility
in terms of 'thinking in rules' with InRule?

Breaking intent into these core components is the foundation for unambiguously expressing and reusing domain knowledge. When thinking in rules, business domain knowledge becomes a system of reasoning which can answer the following fundamental question: “At this point, in this process, given this information, what action(s) should be taken?“
Thinking in rules causes a dimensional shift in the minds of subject matter experts, from explicit instance-oriented scenarios and respective solutions to the true requirements for the solution. The true requirements delineate what information and which potential actions are required, rather than specifically defining the logic itself. The process iteratively arrives at a vocabulary which can describe the logic as it stands today and how it might stand tomorrow. Thinking in rules causes one to consider how the problem is communicated and how the desired response is described as opposed to what the answer is. What the actual answer might be today is subject to change, but the information used to find the answer will not.
When thinking in rules, knowledge is expressed such that:
- It is reusable
- Has explicitly stated considerations
- Has explicitly stated actions
- Reduces or eliminates ambiguity
- Can be verified by the author
- Can be automatically applied
For developers, Thinking in Rules is about creating a window into the logic of an application so it can be maintained by the subject matter expert. Together the business and application developer determine where the application will Think in Rules and then work to define the information that is required for writing the conditions and actions. Once the contract between the application and authoring environment is established, the SME is in control of the decision logic.
Rete or Not?
A number of rule engines are built on the Rete algorithm. Is this the best approach for meeting your business requirements?
Read Rete or Not?
Using this approach, the developer is not checking if a text box is blank, instead, they simply ask if the data that is in the order is sufficient to proceed. This decision is built upon the shared vocabulary that is mutually understood by the software and the domain expert.
Thinking in rules is about articulating what to do in a structured format which can be applied automatically as needed. It breaks down business intent into a combination conditions and actions in such a way that there is no room for interpretation. The combination also servers to separate the concerns of definition and invocation which results in a transfer of ownership (e.g. from IT to the business) and decreased testing surface area. Most importantly, Thinking in Rules provides transparency from intent to execution which is required for today's complex, volatile, and heavily regulated business environments.
Read more about ...
Business Language Authoring
Business Logic Automation