Prominent and prolific contributor to the field of decision management and business rules, Jacob Feldman, has recently written a guide to decision modelling that is approachable, focused, intensely practical and engaging. An ideal read for the newcomer who wants to start building models quickly. Read our full review exclusively here.
Practical books on Decision Modelling are in short supply and until now it’s been a choice between two substantive volumes: Bruce Silver’s DMN Method and Style and our own Real-World Decision Modeling with DMN. However, last month Jacob Feldman has added a more compact book to the Decision Modeling shelf.
First Thoughts
Jacob’s book quickly gets to the point. Assuming the reader is already aware of the motivation, aims, benefits and process of decision modelling, the book launches straight into the practicalities of building the reader’s first OpenRules decision model by page 14 and completes it twenty pages later. Despite this swift pace and directness, the text is written in a light, easy-to-read style using a stylized conversation between the author and a reader (rather like a Socratic dialogue). It is split into seven dialogues, each featuring hands-on, OpenRules exercises of increasing complexity from a variety of business domains. Each dialogue has clear goals and is designed be completed in one sitting. The book uses the exercises to cover the core concepts of the Decision Model and Notation (DMN), a decision modelling standard defined by the Object Management Group. At 149 pages in total, the entire book can be read in a day or two.
Strong Points
The book uses a step-by-step approach to expressing business logic, using authentically worded requirements, that arms the attentive reader with the pragmatic essentials of decision modelling. It also tackles a few more challenging techniques, on the edge of the current definition of the DMN standard, such as iteration. Much of the material can be understood by readers with no technical experience (‘non-programmers’).
The practically of the book is enhanced by the fact that all the featured exercises and the OpenRules software can be downloaded—encouraging readers to get some hands-on experience of decision modelling by experimentation. I was very pleased that the book promotes a test-driven approach to decision modelling and quickly illustrates the importance of establishing a glossary and a set of test cases to underpin decision models. The book’s website companion also allows the behaviour of the models to be analysed—a real boon to learning.
Beware
Although OpenRules is based on the Decision Model and Notation (DMN), there are key differences between them and OpenRules deviates from the standard in a number of areas. As models are developed in the book, the author explains some of these differences but not all of them and the explanations provided tend to be rather OpenRules-centric. It’s possible for a reader with no background in DMN to get a partial or the wrong impression of the standard and receive a shock when using a tools that are more complaint to the standard (e.g., Trisotech, Signavio or IBM Decision Composer). Some of these differences are merely matters of notation, for instance: the use of relationships between Business Knowledge Models and Input Data in the DRD, see for example Figure 1-2, that do not confirm to the standard; the unconventional arrangement of decision tables, such as Figure 1-7, which occur throughout; and the way in which defaults are defined. In other cases the OpenRules marks a wholesale departure from DMN, such as: the way it allows side effects during Decision Table execution, something forbidden in DMN; OpenRules absence of a DRG; the fact that OpenRules’ hit policies are entirely different from the standard; and the manner in which sequences of decision executions are defined.
The book is aimed at non-programmers and yet some sections feature Java snippets, data types and response objects which will be unfamiliar to some business analysts. Although these never dominate the text, neither do they seem especially relevant or advantageous when compared to equivalent expressions in the DMN expression language, FEEL. Some may feel, as I do, that Java tends to obscure business requirements.
Although the main benefit of the book is its sharp focus and approachable size, I was disappointed that it did not cover DMN concepts like the Knowledge Source, contexts and path expressions all of which add considerably to DMN’s power.
Conclusion
The brevity, easy-going style and practical approach of the book make it an effective means of learning the foundations of decision modelling with OpenRules in a short time. I would heartily recommend it to anyone needing to build OpenRules fluency or get to grips with the practical impact of Decision Modeling on a tight time budget.
Jan, thank you for your thoughtful review. I wrote my own “Beware” clause in the preface of the book that may clarify some questions. So, here it goes:
“I want to warn the readers that this guide by no means is a DMN textbook as it does not cover all the items introduced in the DMN standard. On the contrary, it concentrates on the most frequently used decision modeling constructs described in DMN and uses their particular implementations in the OpenRules formats.
As the AUTHOR, I took a liberty of choosing the DMN concepts that are most frequently used and helpful and those which should be avoided. I simply don’t mention some concepts currently included in the DMN standard which I do not recommend for use. In particular, the AUTHOR will not talk about hit policies with priorities or about pure programming constructs such as loops or if-then-else statements included in the DMN Friendly Enough Expression Language (FEEL). As the AUTHOR, I promised the READER to stay away from programming, and I will try to stick to this promise over the course of all (well, almost all) dialog-sessions. At the same time, the READER and I will actively use the FEEL syntax to represent various business expressions and calculation formulas.
The nice thing about the DMN standard is that it allows vendors to compete on different representations of the same DMN concepts as long as they have the same semantic meaning. The reader may find that OpenRules graphical representations of some DMN concepts are slightly different from examples included in the current DMN specification. For instance, we do not use single-character and double-character abbreviations for hit policies which are supposed to be placed into a separate cell of every decision table. Instead, we use keywords such as “DecisionTableSingleHit” or “DecisionTableMultiHit” in decision table titles.”
Jacob,
Thanks for your reply. It was a pleasure to review the book.
I did see the disclaimer in the preface of the book and I agree that it constitutes a clear warning that the book departs from DMN in specific areas. However, I wonder how many newcomers to DMN would understand the full implications of this statement at this point in the book. Also the preface is easily overlooked; many readers I know skip over the preamble in order to get to the meat of a book.
I think it would have been instructive to mention the differences between OpenRules’ representations of some concepts and the corresponding concepts in DMN, so that readers were aware of the specific differences. I can understand why you wouldn’t want to place these explanations inline. It would be inappropriate and slow the (excellent) pace of the book unduly. However you could perhaps use numerical references to an appendix describing these differences, explaining how these OpenRules concepts map onto DMN and clarifying which OpenRules features are new. You could even describe the motivation for these differences which many, myself included, would find fascinating. It’s not that I disagree with the OpenRules’ variations; I think some of them have merit. It’s that I wished the differences between OpenRules and DMN had been made more explicit.
I have two concerns about the points raised in your final paragraph. Firstly I didn’t really get the impression from reading the standard that the authors were encouraging vendor-specific variations in the representations of decision models, although they were open to extensions. My understanding was they were trying to establish a standard notation to allow business analysts (and other DMN users) to collaborate effectively and to reduce vendor lock-in. Having vendor specific variations seems to impede this. Secondly, my understanding is that some of the variations in OpenRules have different semantics than standard DMN. I felt these differences should have been made clear for a book with “DMN” in the title.
Having said all this, I still think this work is an excellent introduction to the concepts of decision modelling and a quick way to bootstrap one’s understanding of the topic.