Even if a company unifies the technology for integration, they run into problems with differences in business process and conceptual dissonance with the
data. One division of the company may think a customer is someone with
whom it has a current agreement; another division also counts those that had a
contract but don’t any longer; another counts product sales but not service
sales. That may sound easy to sort out, but when you have hundreds of records
in which every field can have a subtly different meaning, the sheer size of the
problem becomes a challenge—even if the only person who knows what the
field really means is still with the company. (And, of course, all of this changes
without warning.) As a result, data has to be constantly read, munged, and
written in all sorts of different syntactic and semantic formats.
Then there’s the matter of what comes under the term “business logic.” I
find this a curious term because there are few things that are less logical than
business logic. When you build an operating system you strive to keep the
whole thing logical. But business rules are just given to you, and without major
political effort there’s nothing you can do to change them. You have to deal
with a haphazard array of strange conditions that often interact with each
other in surprising ways. Of course, they got that way for a reason: Some
salesman negotiated to have a certain yearly payment two days later than
usual because that fit with his customer’s accounting cycle and thus won a couple of million dollars in business. A few thousand of these one-off special cases
is what leads to the complex business “illogic” that makes business software so
difficult. In this situation you have to organize the business logic as effectively
as you can, because the only certain thing is that the logic will change over
time
Comments
Post a Comment