James Taylor's Decision Management

James Taylor

Business Rules are a failed abstraction - so what?

user-pic
Vote 0 Votes

Jeff Attwood had a great post over on Coding Horror - All Abstractions Are Failed Abstractions in which he discussed a Joel Spolsky article in which that states

All non-trivial abstractions, to some degree, are leaky.

At some level, of course, this is true and Jeff goes on to say

But I'd also argue that virtually all good programming abstractions are failed abstractions. I don't think I've ever used one that didn't leak like a sieve. But I think that's an awfully architecture astronaut way of looking at things. Instead, let's ask ourselves a more pragmatic question:

Does this abstraction make our code at least a little easier to write? To understand? To troubleshoot? Are we better off with this abstraction than we were without it?

And that, of course, is the critical question. And that brings me to business rules. Business rules, especially when business users are brought into the picture to collaborate on their creation and maintenance, are an abstraction for the hard-code logic that will be executed. And they almost certainly meet this definition of a failed, leaky abstraction. Many programmers reject the use of business rules because of this.

When a programming blog linked to my article on using business rules rather than soft-coding lots of programmers responded. Underlying the reasons they gave for rejecting business rules (which I discussed in a series of posts - 1,2,3) was a sense that business rules are an unnecessary and failed/leaky abstraction. But if you ask the question Jeff asks - does it make the business logic easier to write, to understand and to trouble shoot - then business rules are, as I argued, a compelling abstraction. In particular:

  • Business rules use fewer words, fewer lines of "code" to describe complex logic than procedural languages do
  • Business rules are easier for those who understand the business to understand and thus to validate (and who else is really in a position to tell if you if the logic is what the business needs)
  • Because they are atomic and independent, business rules either fire or don't fire and so troubleshooting is easier.

So are business rules a "failed" and "leaky" abstraction? Probably. Should you use them anyway? Yup.

No TrackBacks

TrackBack URL: http://www.ebizq.net/MT4/mt-tb.cgi/15840

Leave a comment

A blog about the use of decision management technologies like predictive analytics and business rules to deliver agility, improve business processes and bring intelligent automation to SOA.

James Taylor

James Taylor blogs on decision management for ebizQ, and is an independent consultant on decision management, predictive analytics, business rules, and related topics. View more

Sponsored Links

Fico

Subscribe

 Subscribe to this blog by RSS
Subscribe by email:

Recently Commented On

Tag Cloud

adaptive control, agile, agility, analytics, application development, BDM, BI, bi, bpm, bpms, BRE, bre, BRMS, brms, busines rules, business agility, business alignment, business analyst, business analytics, business intelligence, business process, business process management, business rules, business rules engine, business rules management, business rules management system, business user, case management, CEP, change, collaboration, complex event processing, compliance, consumer, context, customer experience, customer-centric, data, data mining, decision, decision agent, decision making, Decision Management, decision management, decision model, decision service, decision table, decision tree, decision-centric, decisioning, declarative, development, domain specific language, drools, dsl, eda, EDM, event processing, extreme personalization, hard coding, IASA, In Database Analytics, inferencing, insurance, intelligence, intelligent agent, interaction, jboss, kpi, legacy, legacy modernization, location, mainframe, marketing, MDE, metrics, micro decision, model-driven, multi-channel, operational BI, operational decision, optimization, performance management, personalization, Pervasive BI, predictive analytics, predictive enterprise, predictive model, process, programmer, programming, real-time, recommendation engine, report, requirements, retail, rete, rule set, rule sheet, scenario, Sensor, service, simulation, smart (enough) systems, smartenoughsystems, smarter systems, SME, soa, software development, statistics, Teradata, transparency, use case, visualization,

Monthly Archives

ADVERTISEMENT