Go To? No, Come From! — The True Tale of Business Rule Software
Soon after I learned programming (more years ago than I care to admit), I was enlightened as to the evils of the Go To command. Long story short (you probably know it), Go To gave god-like capacity to programmers to write incomprehensible programs. Spaghetti code.
Somewhere during those early years, I had the idea of an inverted form of Go To, which naturally enough would be called Come From. Maybe others had the idea too; I don't know. The Come From command would permit out-of-control procedures to escape black holes of logic, like airplanes magically extracted from death spirals.
How would the Come From command work? If a procedure stepped over the line of acceptable or desirable business behavior, a Come From command would snatch it from mid-execution like a digital butterfly net. Then the state of affairs would be reset, and with that return to normalcy, the butterfly released. If that sounds like a behavioral business rule to you, you can guess where I'm going with this.
A Go To command is a simpleton. A procedure simply branches when execution arrives there. There's no foresight or awareness involved whatsoever. Nothing oversees whether the branching is desirable. There's no cop on the block.
A Come From command would be far more sophisticated. It must be active rather than passive. It is always watching on-going execution for violations to occur. Since it can't know when those violations might occur, it must be constantly vigilant so as to preempt control should the necessity arise. Its responsibility is to ensure the business always gets what it wants in the face of erratic behavior. That puts the cop on the block.
Yes, the world has moved way beyond Go To's (or at least I hope so!). Yes, publish-subscribe mechanisms have been around for years that might internally enable Come From's.
But they're not yet automatic for behavioral business rules, the kind that you find in contracts, agreements, regulations, laws, MOUs, certifications, etc., etc. Those are the one-of-a-kind rules that decision models and current rule engines don't handle well at all. Such rules are legion. For them to be automatic, you need software capable of evaluating rule statements semantically to set up programmer-free Come-From zones.
Are you a glass-half-empty kind of person or a glass-half-full kind? The glass-half-empty view sees the lack of support for programmer-free Come-From zones as the greatest current failure of the software industry for business logic. No matter how sophisticated your software platforms are today, we are still flatly in programming mode for your many, many thousands of behavioral business rules. It's spaghetti code even without Go To's (no matter how fast you can redeploy it).
The glass-half-full view sees programmer-free Come-From zones as the biggest remaining opportunity to achieve order-of-magnitude improvements in the production of truly agile business software. I say, give us our cop on the block!
# # #