|
|
CTO ArticlesPublished in IT World
Beyond Business LogicBy Sean Mc Grath From time to time, a phrase comes along that purports to sum up a concept yet does absolutely no justice to the complexities of the concept supposedly described. Examples include 'financial derivatives', 'quantum mechanics' and 'good taste'. However, these concepts are mere intellectual trifles compared to the the phrase 'business logic'. If there was a prize for terminology that succeeds in sweeping reality under the carpet and perpetuating a simplicity where nothing but boundless complexity exists, 'business logic' would win it every time. It is the confident juxtaposition of the word 'business' and the word 'logic' that does the damage. Are the actions of business that we struggle to codify into computers mere matters of logic? Is it always possible to codify the rules in a way that a computer can readily understand? That is a bigger question that I do not propose to try to answer here. Instead, in a distinctly less serious mood, I would like to propose some phrases that we could use instead of 'business logic'. Phrases that more closely reflect the true meaning behind the buzz phrase. Lennon LogicThis type of business logic is named after John Lennon of Beetles fame, the author of a song called Imagine[1]. The lyrics consist of Lennon imagining various things that would be just great if they were true. Such as the lack of country boundaries, world hunger and so on. A practitioner of Lennon business logic simply imagines all the things about a proposed computer system that would be great if there were true. Current realities, the laws of physics, economics and so on are all ignored during the imaginings. A Lennon Logic engine would then turn the set of imaginings into something a computer could understand and execute to make all sorts of good things happen. Happy Hour Business Logic In this form, only rough sketches of the desired business rules are provided from the owners of the new application. This is justified on the basis that time is pressing and that the sooner work starts, the sooner it will end. This form of logic is particularly potent on Fridays. Alfred LogicNamed after the trusty butler in Batman, this form of logic is appropriate when the owners of a business application leave it to others in their charge to explain whatever rules they feel are appropriate. This works very well with very good Butlers (such as Alfred) but is known to produce very patchy results in all other cases. Symphonic Wave Logic Named after the characteristic hand waving of an orchestral conductor, this form of business logic consists of a number of sweeping generalities combined with microscopic detail in irrelevant areas. The intent is that a Symphonic Wave Logic processor should improvise and interpret the basic instructions. If the result is good, the conductor invariably claims that the interpretation has been correct. If the result is bad, the conductor blames the interpretation. MMP LogicMMP stands for Mere Matter of Programming. The idea is that given some work examples of the simple cases, the computer should be able to work out what to do in the complicated cases that account for 99.99 percent of all cases that actually occur in the real world. Chaotic Multiverse MMP Logic This is both the most potent form of business logic and the one most commonly encountered in the field today. The idea builds on MMP logic by asserting that the computer should figure out how to handle the general case - not only in this universe - but in every parallel universe that would exist due to changes in the initial conditions. That is, any changes to the business environment after system design has commenced. Sadly, the only form of logic that actually works with computers is known as if-then-else logic. It requires rigorous understanding of the problem domain, detailed identification of actors, actions and entities. It requires a stable set of initial conditions, extensive development time, extensive testing and a degree of good fortune. They say that I'm a dreamer... |