The DMN TCK is a group of people united around a single desire: we want to see DMN succeed as a decision modeling paradigm. We want it to really work, and not simply be another passing fad. We want transparency of what the particular implementations can and can’t do, and we want an independent way to verify vendor claims. Do you have a vested interest in DMN? Maybe you should consider joining the TCK team to reduce your risk, and to assure the success of the DMN marketplace.
From all accounts DMN looks like a promising direction for modeling decisions. It goes beyond the simple decision tables, and allows you to link together a number of different logic formulations into a single structure. The goal is for this formulation of the decision to be portable and reusable both as a visually expressive models and also as executable programs.
The group developing the standard does not have the time (or possibly even the inclination) to provide a reference implementation. The DMN TCK is making a set of tests that will allow vendors to demonstrate precise behaviors across a broad range of functionality. Currently we have 576 distinct tests, and we continue to add more tests all the time.
Are you interested in DMN success?
Consider these questions:
- Do you have an investment in DMN modeling?
- Have you trained people, and are they developing DMN models?
- Do you want assurance that your models will run in the years to come?
- Would you like assurance that your models will run the same on different vendors?
- How certain are you that your developers are using DMN in the way that the designers of DMN anticipate you are using it.
- How certain are you that new versions of DMN will not invalidate your models?
- How much would you lose if your models became unusable or unreliable in the future?
Jumping onto a new technology always embodies a certain amount of risk. I have plenty battle wounds from adopting a new technology only to find the supporters go in an adverse direction incompatible to my use. Anyone in the industry more than a few years has similar scars. Maybe you already know that painful feeling when you are forced to decide to drop one (beloved) technology, and to re-code everything in a different one. Ouch!
Sometimes technology progresses in a direction because of a clear strategy that makes sense for the overall marketplace. Sometimes is goes in a direction simply because there is no clear direction, and one direction must be picked for better or worse.
Sharing is Insurance
The best way to make sure that the technology does not go in an adverse direction is share your existing DMN models with the vendors as a specific test cases. The model is accompanied with a set of inputs, and expected outputs. It is easy to run and verify this test case on each new release that comes out.
Existence of a concrete test case makes it much harder for a committee member, or a product vendor, to make a change that invalidates the test. The test makes the case real, everything else is hypothetical.
Sharing Improves the Quality
We are particularly looking for models that come from a real world application. We would like to see models from a broad variety of domains. Richer tests are better.
Most of the tests today focus on one or another specific language feature. It is not necessary for tests to be on an isolated feature. It is better, in fact, for tests to represent real world examples. Whether it is complex or simple, a model that uses DMN to solve a real world use case is better than any feature-focused test.
Users of DMN Technology
We welcome new members readily. We are specifically looking for users of DMN who can contribute DMN models as tests. Such a contribution is good in a number of ways:
- Your test case will be reviewed by experts for consistency with the current standard.
- As new versions of the vendor products come out, they will be tested against your model, to be sure that nothing you depend on is changed in any adverse way.
The risk you carry in your investment in DMN is reduced. At the same time, you are insuring that DMN as a market is more likely to succeed for the long term.
We also are looking to grow in the number of vendors supporting the TCK. All you have to do is to pull a copy of the tests; set up your own runner to run them and package the results in the proper CSV format; and submit the results back to GitHub as a pull request. You will benefit from the best and most complete set of DMN tests available. You results will be published along side all the other top DMN vendors. Simply participating at the minimal level shows that you are an essential player in the DMN field.
Contributing tests cases will also benefit you in the same way it benefits the users above: your investment in DMN details is more protected if there are running, reusable tests that run the way your software runs, and are available to all vendors to run. In the detailed areas that the written spec can not possibly cover, your contributed tests may actually be setting the standard in a very real way.
You will also benefit by joining into the weekly discussion of the current state of the DMN standard. Discussions of problems areas that others are encountering might be a tip to address those areas yourself before your user base gets there. Every vendor who has joined has invariably discovered gaps in their implementation that they were able to address quickly.
How do you Join?
Let me know:
- Who you are
- What organization you represent
- What your interest is
- Whether you are a user or vendor of DMN technology
Everything that the TCK team does is freely available to the public, so you don’t have to join to use the results. But you will gain by being part of the action to set the standard, and reduce your risk of adopting this new technology.