Requirements, Qualities and Dr. Kano
Ever heard of Noriako Kano? In the 80s he was thinking about customer satisfaction and came up with the theory that there are must-be qualities of a product (they are often taken for granted but you’ll be really unhappy if a product doesn’t have them) and attractive qualities (they are not expected but they will surprise you).
Oracle Service Bus’ XQuery Mapper
Today I finished a milestone in a large SOA project for a big logistics company. The project intensively uses Oracle Service Bus 11g and the OEPE based XQuery mapper which brought Dr Kano back to my mind…
The XQuery mapper comes with some attractive qualities. Did you ever map elements and later discover that they are repeating and are part of sequence? Just map the enclosing sequence and all depending elements will be magically corrected. Try it yourself and examine the generated XQuery code to fully appreciate it!
However, there are far too many must-be qualities missing! Everybody creating something bigger than a hello-word example will discover them (I ended up with some 1200 lines of XQuery code).
1.) There is no “Find” for the graphical view. Find is essential. Often technical design documents describe mappings in an Excel sheet and you get insane when searching for 500 elements on the graphical mapper.
2.) You cannot access the type of an element directly from the graphical view. The pop up window that appears when you hover over an element is a okay start but what is really missing is to get to the XSD in another tab with one click. Manually switching to source view cannot be an option for 500 elements.
It works for Java and we need the same for the graphical XQuery mapper.
3.) There is no clever way to print a graphical mapping. Possibly that’s an attractive requirement. Hmm? I’d enjoy it (to show off those monster mappings).
4.) There is no Find in the “Testing” tab either.
from here on, things get much worse:
5.) The XQuery mapper will remove your custom XQuery code! There is a a lot of work beyond simple dragging and dropping lines from one element to another in real projects – so removing manually written XQuery code is not acceptable.
Even a simple comment will be removed. Wow.
Yes, in real simple examples you would start with the graphical mapper first and then code the rest. In many real life examples “the rest” could be more than 50%. Note, I am not complaining that the mapper obivously won’t be able to display your custom XQuery code.
6. The mapper refuses to map e.g. an integer type to a string. If you drag it to the Expression tab you can still do it. Why the workaround that requires an extra “save”? We not asking me if I know what I am trying to do, and from then on just do it?
Gossip says that Oracle SOA Suite 12c beta test is currently running. SOA Suite 12c will be JDeveloper based, so it’s fresh start! Let’s hope we will see all these issues ironed out in 12c, after all they are must-be qualities.
Do you experience other mapper issues? Drop a comment here!
ps. I am not beta testing SOA Suite 12c, so I don’t know more about it than anybody else.