Thursday, November 29, 2007


OK, what does it mean to be a Senior anything? In the normal use of the word, a Senior Citizen is someone over 50. That's the only qualification - age. However, in the technical world, usually it means 10+ (sometimes 15 or 20) years of experience AND someone who is at the top of their profession. In the Java world, a Senior Consultant is "normally" someone who knows OO design, most of the Java API, is usually (not always) certified at one level or the other, and has been a team lead on at least one enterprise project using Java and/or J2EE and/or Spring, etc.

But what about the rulebase world? Where do we draw the line between a "Senior Consultant" and an "Architect" - or is there any difference? What follows here are just my thoughts and not anywhere referenced - so feel free to reference this blog as authoritative. Since I'm over 40 (OK, over 50) and have 23 years experience in IT (yes, since 1984) and another 10+ years prior to that with experience in Electrical Engineering - so I have the longevity if nothing else. Does that alone make me a "Senior" anything? Nope. Not even the 15 or 20 published articles and white papers would server to "officially" make me a Senior consultant without considering their context, audience, etc.

General Patton once commented that he had a mule that had been through two world wars and many battles, but the mule was still a mule. Time alone is not sufficient. The "Senior" rulebase consultant must have been recognized by his/her peers (in the industry, not just with in the company) as someone with exceptional expertise in something to do with rules and/or a rulebased system. And, that person should have experience with MORE than just one particular rulebase tool or one vendor. In addition, that person should have experience with presentations, demonstrations, talks, and, mot of all, at lease ONE SUCCESSFUL enterprise design work that has held up for several years. Installing a rulebase system is easy - any Java monkey can mimic what has been learned in a one-week class and install a system. BUT that system should still be in place, albeit with modifications, two or three years later.

So, what can we, as the industry "leaders" do to correct this all-too-obvious problem? We can demand (probably without results but we don't know until we try) to have a certification board across all vendors that would be vendor-agnostic that would verify and validate a candidate. A written exam is a rather silly way to do this since we have proven over and over (Microsoft and Sun are the latest victims of this craze) that written exams mean nothing. I have seen non-programmers study for and take the Sun Java Programmer certification and pass the first time. I have also seen experienced Java programmers, who did not study for the exam, fail.

Some of the best consultants in the rulebase industry have not one single written exam proclamation on their wall to proclaim their proclivity and productivity in a given field. Except, maybe, for a Masters Degree or a Ph.D. - but even that is not usually on the wall. No, what we need is to have agreement among the techies of all of the vendors (something close to Nirvana) that would be sufficient to satisfy all. I'm thinking of something like a Master's degree thesis or a Ph.D. thesis level of a white paper submitted to the panel - not some project paper but something that requires thinking and thought application.

So, here's my suggestion: Take this idea to the President or CEO of your company and explain that a "Senior" position means nothing today. But, if we could all get agreement on the meaning of that title and validate that person's claims to being a "Senior Consultant" then the company would be able to charge basically twice what they have been getting in the past for the services of that person. Customer would benefit because they KNOW that the person on their project has been examined (not tested - examined) and found to be one of the best in the world. This would mean that a potential rulebase project would have a 90% or better chance of success rather than the 40% or less that we are getting today. Now, how much is a 50% probability of success worth to a client or to a vendor? Let's have some fun and find out.


James Taylor said...

Check out what the folks at SABAP are doing or talk to the folks at IASA who are keen to include rules in their model of architect certification

Yaakov said...

James et al:

This is pretty much what I am campaigning AGAINST - the normal, crank'em-in and crank'em-out kind of classes. They begin with the highest expectations but, sooner or later, everyone comes to know what to expect on the "final exam" - the "final exam" is taught in the class - and they pretty much study for answers; just like the Sun Java exams and all of the Microsoft exams. It would become nothing more than "get the diploma and ask for more money." Why? Because if someone is paying good money for a class they have come to expect a certificate to hang on the wall. And a course like Sun or Microsoft presents must have a high success rate to ensure that more and more people apply.

The SABAP is tool-specific to Fair Isaac Blaze Advisor; another reason NOT to go that route, admirable as it may be. I will say, however, that the application procedure is exactly what I am talking about in the original post. IASA seems to be another "pay your fee and get your 'B'" kind of course - the student begins to "expect" to get a diploma because they paid good money for the diploma. Except, of course, that the course if for instructors, not students. I am fairly confident that the folks at IASA feel that they have a really good course, but if the passing rate is above 75% then it is not weeding out the "test takers" who specialize at this kind of thing without knowing much about anything.

I would think that a vendor-agnostic panel staffed with top-level professionals would be able to either validate or not validate a candidate with NO EXPLANATION afterward (OK, they might have the main contact explain what the candidate needed to do to improve the work) if and only if the panel were staffed with competent, industry-recognized professionals. For example, Dr. Charles Forgy, Dr. Anoop Gupta, Mark Proctor, Paul Haley, Dr. Friedman-Hill, Dr. Joseph Giarratano, Gary Riley, just to name a few. Admittedly, not all would serve at one time but they would be on the panel for at least one year in three or four or even five.

As I said before, the exam itself would be assigned to the individual based on that person's experience and what the industry needs. It would NOT be a standard multiple choice or fill in the blank nor answering questions. It would be much like a thesis or a white paper that could be published. Maybe even patentable BUT I personally don't favor that kind of thing. The patent, IMHO, should be assigned to the organization and be Apache Open Source if there is one involved.

And it would be expected that the failure rate will be something on the order of 75% to 90% of the applicants. Not making the grade one time would mean ONLY having to wait another year to apply again. I tried to do this here in DFW area but the Java programmers did not want a "guild" approach - they wanted a standard testing procedure for which they could study and be almost guaranteed of passing and getting a silly piece of paper to hang on the wall.

Well, those are my thoughts anyway.


Bubba De Katt said...

To me, the answer to your question is simple - please SHOW me what you have contributed to the field.

Yaakov said...

Personally, I would like for this to go something like:

Status : Description

A : Apprentice, undeclared
AU : Apprentice, Accepted but not assigned to Mentor
AA : Apprentice, Assigned to Mentor
J : Journeyman (has passed written and oral exams)
M : Mentor (or Master) but limited to the very few who have shown extreme excellence in the field over a wide range of subjects AND is an approved mentor.

First, a person would apply to become part of the program and, if accepted, would be classified as 'A'.

Next, that person would take a specially designed written exam to become an Apprentice and, if successful, would become "AU"

Next, the "AU" would be assigned to a Mentor and would become an "AA" - meaning that the Mentor would show that person how to do proper research, where to publish, what needs to be done, and assign to that person a project of sufficient complexity that, normally, it would take up to three or four years to complete. During the initial stages of this period the person would be a JUNIOR RULEBASE CONSULTANT and in the final stages a RULEBASE CONSULTANT.

Then, upon completion of the course of study as outlined by the Mentor, and after examination by the Board of Mentors, that person would be a fully licensed (don't really like that word but it's all that I have right now) to be a SENIOR RULEBASE CONSULTANT.

Finally, if the person wishes to server on the board and be a Mentor, then the person would apply to the board for acceptance. Whether that person would have to do something else, such as more contributions to the industry, more study, whatever, would be determined by the board. The Board of Mentors could just promote that person automatically to the position of Mentor. An example of this would be Dr. Forgy or Dr. Friedman-Hill, Dr Giarrataon, Gary Riley, Paul Haley, etc., any of which could be "J" or "M" without doing anything since their contributions are already paramount in the rulebase industry and self evident. The problem here is do they, or anyone else in that position, have the time to mentor at least one individual to ensure that our organization grows and we have Mentors coming on-line to take the place of those who will, eventually, die off?

But, most of all, we need buy-in from someone somewhere so that we can provide funds for this puppy to get it off the ground. The donations would be just that; donations, not a fee for any services rendered. Now THAT's going to be a hard sell but I think that we, the geeks in this industry, can pull it off.


woolfel said...

Going by that measurement, more than half the rule consultants out there aren't qualified. I've interviewed quite a few rule consultants over the last year and many don't have basic understanding of rule engine theory or pattern matching algorithms. Most only know the tool and which buttons to click.

I find that more than 80% couldn't draw the RETE network for a given rule. Even fewer know when RETE is appropriate and when it isn't. Even people who have read Dr. Forgy's paper don't understand how to compile a rule properly to RETE network.

In fact, look at Jena2 for example. It claims to implement RETE and uses Doorenbos' design, but they get it completely wrong. Many RDF folks map EAV (entity, attribute, value) to Doorenbos IAV (identifier, attribute, value) without realizing it's completely wrong. Since RDF is modeling entity objects, they should use Dr. Forgy's design instead. This way, the engine doesn't have to decompose an object into multiple triplets and force the engine to do more joins than needed.

of course, if you ask the developers of Jena2 or Pychinko, they'll say the implemented RETE. Not many people can tell the difference and many simply get it wrong.

My bias opinion is it takes years of dedicated study and practice to become a solid rule consultant.

Yaakov said...

Concerning the Rete Algorithm - much has been said and written but I have YET to run across anyone who has actually read the thesis other then Peter Lin, myself, Dr. Friedman-Hill and Dr. Forgy who wrote the blooming thing back in 79. Probably Dr. Giarratano and Gary Riley had to read through it just to do CLIPS and maybe Mark Proctor. I have even asked engineers from vendors of rulebased products who claim to have implemented the Rete Algorithm and they can not explain it - it "just happened over time" or "it's just magic."

Good Grief, Charlie Brown!! I have run into Senior Consultant after Senior Consultant after Senior Consultant who remark that no one is concerned with that any more. What is WRONG with this world when the heart and soul of an engine is no longer of concern. I could understand that attitude from someone who just wants to work for a company, but NOT from anyone who has the word "Senior" in their title and it refers to a rulebase consultant.

So, Peter - It looks like the two of us (along with Mark Proctor and five other fools) are the last of a dying breed. Keep the faith - and now I think we have beat this one to death. The next blog on the subject will be something like, "Senior Rulebase Consulting Group - the Beginning" Look for it next week.


woolfel said...

I'll be blunt. I could understand Dr. forgy's thesis the first 4 readings. Before i read the thesis, I read the shorter paper published in AI journal. If I had to count how many times i read both, it would be over 100. Not necessarily cover to cover each time, but going over various paragraphs and sentences to make sure i really understood it. I also read doorenbos paper about 30 times, before I realized why Pychinko and Jena2 got it so wrong.

The funny thing is, I've had debates with people who read the paper 2-3 times and say they understand it. A few have said to me "RETE is easy to understand, what's so difficult?"

If it was so easy, Microsoft wouldn't have spent 5 years on BRE. And oracle wouldn't have spent 4 years and then licensed JESS.

Yaakov said...

Peter et al:

Yep, I've been through the thesis many times myself - and I did not get it right the first time I went through it. I had to start actually teaching it before I began to understand it. Now I'm moving all of the code shown in the thesis to Java and it's quite a trick. But, I'm having fun doing it and still making the text in the thesis correct at the same time. :-)


woolfel said...

I just noticed my typo :) should have been "couldn't". Glad to hear you also had a hard time understanding the thesis the first time. I don't feel quite so stupid for not understanding the thesis the first couple of readings. The shorter paper is a great introduction, but it definitely doesn't go in depth like the thesis does. Alot of the duck-typing ideas I've discussed on my blog are from the thesis. It's funny when people think I invented something new. Usually I politely point out dr. forgy already thought of it. I'm just recycling his work. It's a shame that many universities have stopped researching and pushing RETE algorithm. I think there is alot more in RETE than people realize.